一 NALU头部解析



F: 必须为0,为1表示语法错误。整包将被丢弃

NalType:nalu包的类型,其中VCL NAL和non-VCL NAL各有32类。0-31是vcl nal单元;32-63,是非vcl nal单元。VCL是指携带编码数据的数据流,而non-VCL则是控制数据流.

LayerId:表示NAL所在的Access unit所属的层,该字段是为了HEVC的继续扩展设置。也就是目前都是0,以后的扩展可能会用到。

TID:

此字段指定nal单元加1的时间标识符。时间id的值等于tid-1,tid的值为0是非法的,以确保nal单元报头中至少只有一个比特等于1,以便能够在nal单元头和nal单元有效负载数据中独立考虑启动代码仿真。

当head为40 01 ====》0100 0000 0000 0001时,解析如下

F 0
NalType 100 0000 32/VPS
LayerId 0 0000 0 0
TID 001 1

二 NALU type 解析nalu type的计算方式

在每一帧的起始码(00 00 00 01)之后取到nalu头部code 两个字节

用该公式计算nalutype :int type = (code & 0x7E)>>1;Nalu type

val nal



non-vcl nalu



常用nalu type

语义为视频参数集 VPS

HEVC_NAL_VPS 32

语义为序列参数集 SPS

HEVC_NAL_SPS 33

语义为图像参数集 PPS

HEVC_NAL_PPS 34

语义为补充增强信息 SEI

HEVC_NAL_SEI_PREFIX 39HEVC_NAL_SEI_SUFFIX 40

视频帧数据流IDR ------ 下列均为视频帧,若要区分I B P 需要进一步分析

HEVC_NAL_TRAIL_N 0

HEVC_NAL_TRAIL_R 1

HEVC_NAL_TSA_N 2

HEVC_NAL_TSA_R 3

HEVC_NAL_STSA_N 4

HEVC_NAL_STSA_R 5

HEVC_NAL_BLA_W_LP 16

HEVC_NAL_BLA_W_RADL 17

HEVC_NAL_BLA_N_LP 18

HEVC_NAL_IDR_W_RADL 19

HEVC_NAL_IDR_N_LP 20

HEVC_NAL_CRA_NUT 21

HEVC_NAL_RADL_N 6

HEVC_NAL_RADL_R 7

HEVC_NAL_RASL_N 8

HEVC_NAL_RASL_R 9

SPS PPS和VPS的关系

三 参考代码

h265nalu头部的解析可参考ffmpeg代码

hevc_parser.c的parse_nal_units函数

H265Nalu头部解析的更多相关文章

  1. 重大漏洞!PHP multipart/form-data头部解析远程拒绝服务漏洞

    "有些人看不懂,简单比喻来说吧:目前刚出的任何安全防护都不会拦,网站类专属漏洞 畸形数据包,2KB随机数据包,2M网速打死各种网站,cdn通挂!"PHP multipart/for ...

  2. H264Nalu头部解析

    一 NALU头部解析 F: forbidden_zero_bit. 在 H.264 规范中规定了这一位必须为 0. NRI: nal_ref_idc. 取00~11,似乎指示这个NALU的重要性,如0 ...

  3. 音频文件解析(一):WAV格式文件头部解析

    WAV为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF(Resource Interchange File Format)文件规范,用于保存Windows平台的音频信息资源. 文 ...

  4. [VB.NET][C#]WAV格式文件头部解析

    简介 WAV 为微软开发的一种声音文件格式,它符合 RIFF(Resource Interchange File Format)文件规范,用于保存 Windows 平台的音频信息资源. 第一节 文件头 ...

  5. http 请求头部解析

    作者:知乎用户链接:https://www.zhihu.com/question/42696895/answer/109035792来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...

  6. Python - 头部解析

    背景 写 python 的时候,基本都要加两个头部注释,这到底有啥用呢? #!usr/bin/env python # -*- coding:utf-8 _*- print("hello-w ...

  7. HTTP头部解析

    当我们打开一个网页时,浏览器要向网站服务器发送一个HTTP请求头,然后网站服务器根据HTTP请求头的内容生成当次请求的内容发送给浏览器.你明白HTTP请求头的具体含意吗?下面一条条的为你详细解读,先看 ...

  8. PHP模拟发送POST请求之一、HTTP协议头部解析

    WEB开发中信息基本全是在POST与GET请求与响应中进行,GET因其基于URL的直观,易被我们了解,可POST请求因其信息的隐蔽,在安全的同时,也给开发者们模拟发送带来了麻烦.接下来的几篇博文中,我 ...

  9. JPEG头部解析

    6.3 JPEG格式       6.3.1简介  微处理机中的存放顺序有正序(big endian)和逆序(little endian)之分.正序存放就是高字节存放在前低字节在后,而逆序存放就是低字 ...

随机推荐

  1. spring boot: 设计接口站api的版本号,支持次版本号(spring boot 2.3.2)

    一,为什么接口站的api要使用版本号? 1,当服务端接口的功能发生改进后, 客户端如果不更新版本,    则服务端返回的功能可能不能使用,    所以在服务端功能升级后,     客户端也要相应的使用 ...

  2. centos8安装lvs

    一,配置ip转发 [root@localhost sysctl.d]# sysctl -a | grep ip_forward net.ipv4.ip_forward = 1 说明:如果net.ipv ...

  3. gin+gorm 用户服务

    package main import ( "fmt" "github.com/gin-gonic/gin" "github.com/jinzhu/g ...

  4. echo 输出颜色

    shell脚本里使用echo输出颜色       echo命令颜色显示: echo:      -n:  不换行.      -e:让转移符生效. \t(tab) \n (换行) 实例: $ echo ...

  5. ImageMagick:用identify得到图片的平均颜色(基本颜色/主色调)

    一,平均颜色的用途: 很多app在流式的展示图片时, 在图片没加载出来之前, 不是使用统一的背景图, 而是先显示一个纯色的背景, 而背景色和图片的颜色非常接近, 这样给用户的体验会更好. 我们这里演示 ...

  6. 笔趣阁小说 selenium爬取

    import re from time import sleep from lxml import etree from selenium import webdriver options = web ...

  7. document.all.WebBrowser为空或不是对象

    项目中也想用这个功能,发现出错,经过测试,一定要加<object id="WebBrowser" width=0 height=0 classid="CLSID:8 ...

  8. B站弹幕爬取

    B站弹幕爬取 单个视频弹幕的爬取 ​ B站弹幕都是以xml文件的形式存在的,而xml文件的请求地址是如下形式: http://comment.bilibili.com/233182992.xml ​ ...

  9. windows10下IntelliJ IDEA使用logback设置日志输出目录

    1.在项目的src/main/resources目录下新建文件:logback-spring.xml 2:在logback-spring.xml中进行如下配置: <?xml version=&q ...

  10. this.属性

    this是属于一个具体对象的,而不是属于一个类的. 当你创建了一个对象时,this自动的给你带过来了. this只能在类定义的方法中使用,不能在类定义的外部使用. class Person { //成 ...