1、H.264的NAL解析

在有序字节流格式的H.264码流中,我们可以根据前缀起始码0x 00 00 01或0x 00 00 01获取到一个完整的NAL Unit所包含的的字节数据。H.264码流中的每一个NAL Unit的作用并不是相同的,而是根据不同的类型起不同的作用。因此将H.264的码流解析为NAL Unit之后,下一步将是对NAL Unit中的数据进行解析。

NAL Unit结构
H.264标准中规定的一个NAL Unit的结构如下图:

一个NAL Unit都是由一个NAL Header和一个NAL Body组成。对于基本版本的H.264标准(不考虑SVC和MVC扩展),一个NAL Header的长度固定为1,即8bit。这8bit的含义分别为:

forbidden_zero_bit:每一个NAL Header的第一个bit,规定必须为0;
nal_ref_idc:第2和3位,主要表示NAL的优先级。当该值为正时,表示当前NAL Unit中包含了SPS、PPS和作为参考帧的Slice等重要数据。
nal_unit_type:表示NAL Unit的类型,包括VCL层和非VCL层的多种数据类型。常见的nal_unit_type取值有:7表示SPS,8表示PPS,5表示IDR帧,1表示非IDR帧等。

2、H.265的NAL解析

首先来介绍下h265(HEVC)nal单元头,与h264的nal层相比,h265的nal unit header有两个字节构成

从图中可以看出hHEVC的nal包结构与h264有明显的不同,hevc加入了nal所在的时间层的ID,取去除了nal_ref_idc,此信息合并到了naltype中,

通常情况下F为0,layerid为0,  TID为1。

H265 帧类型判断:和H264的&0x1f不同。H265是 :int type = (code & 0x7E)>>1;

#define HEVC_VPS  0x40
#define HEVC_SPS  0x42
#define HEVC_PPS  0x44
#define HEVC_SEI  0x4E
#define HEVC_IDR  0x26
#define HEVC_PSLICE  0x02

H.264/H265的NAL解析相关推荐

  1. H.264/H265码流解析

    H.264/H265码流解析 一.H.264码流解析 一个原始的H.264 NALU 单元常由 [StartCode] [NALU Header] [NALU Payload] 三部分组成 一个原始的 ...

  2. H.264码流结构解析

    大概前五六年之前写过的一个大体分析H.264格式,不是很详细,可以大致看看有哪些格式.  H.264码流结构解析 那个时候上传的百度文库,以前记得有多积分,现在都不能下载了,还要充钱才可以.真是~~~ ...

  3. 基于android手机实时监控ipcam视频之三:H.264的RTP打包解析

    因为项目中,ipcam的视频编码方式主要是基于H.264,因此ipcam出来的H.264码流会按照协议rfc3984来打包,mediastream2中收到rtp recv filter的数据后,必须先 ...

  4. 视音频数据处理入门:H.264视频码流解析(java)

    参考文献 : 视音频数据处理入门:H.264视频码流解析 测试文件:H264文件 链接:https://pan.baidu.com/s/1eRTJwTsXTgHf2Ez8Inab1A  提取码:1c7 ...

  5. 视音频数据处理入门:H.264视频码流解析

    ===================================================== 视音频数据处理入门系列文章:视音频数据处理入门:RGB.YUV像素数据处理视音频数据处理入门 ...

  6. 十一、H.264的Slice Header解析

    GitHub代码地址:点击这里 H.264中的条带(Slice) 1. Slice的概念 我们已经知道,整个H.264的码流结构可以分为两层:网络抽象层NAL和视频编码层VCL.在NAL层,H.264 ...

  7. H.264 中的 NAL 技术

    1.NAL 概述 NAL 全称 Network Abstract Layer,即网络抽象层.在 H.264/AVC 视频编码标准中,整个系统框架被分为 了两个层面:视频编码层面(VCL)和网络抽象层面 ...

  8. H.264中的NAL技术

    NAL技术 1.NAL概述 NAL全称Network Abstract Layer, 即网络抽象层. 在H.264/AVC视频编码标准中,整个系统框架被分为了两个层面:视频编码层面(VCL)和网络抽象 ...

  9. 【H.264】码流解析 annexb vs avcc

    H264码流解析及NALU AVCC和ANNEXB 前者是FLV容器.mp4 常用的. 后者 是实时传输使用,所以是TS 一类的标准. VLC显示AVC1就是AVCC AVCC格式 也叫AVC1格式, ...

最新文章

  1. 第九十六题(编写strcpy 函数)
  2. 学会这些套路和用词,Discussion不愁没思路
  3. Unity4.3 遮挡剔除:基本知识
  4. linux中hadoop环境变量配置文件,Ubuntu中关于hadoop环境变量的设置方法
  5. java利用数组随机抽取幸运观众_java利用数组随机抽取幸运观众
  6. java基础-冒泡排序
  7. Matplotlib模块的使用
  8. linux mongo 添加用户名和密码,mongodb3.4 安装及用户名密码设置
  9. android textview 淡入淡出,TextView淡入淡出效果
  10. 【渝粤题库】陕西师范大学165210 国际人力资源管理 作业(专升本)
  11. linux redis5.0 集群搭建
  12. Aziz 的 UiPath 工具面试经验
  13. Lua开发--lua变量
  14. ipad还能横行霸道多久
  15. BATJ大数据架构师带你领略实时计算框架Flink的魅力!
  16. 关于化工行业如何报警
  17. Java学习路线总结,逆袭Java架构师
  18. outlook邮箱发送邮件时出错,报告错误(0x800ccc78)“无法发送此邮件。请在账户属性中验证电子邮件地址”,解决方法...
  19. 【GCC】1: RTCP RR接收端生成
  20. mysql从一个表中查询数据插入到另一个表中

热门文章

  1. 北京本科计算机学校有哪些,北京二本学校有哪些 北京二本院校名单汇总
  2. Fortify漏洞修复总结
  3. sublime text3 怎么配置、运行python3
  4. 个人笔记——PointNet++初读
  5. Java面试之场景题(精准到阿里看到都哇哇完)
  6. 摩托罗拉edge系列双新机发布,打造亿级像素轻薄新旗舰
  7. 某年中某周的开始与结束日期以及某月的开始结束
  8. Android 应用加固?
  9. 为什么计算机播放音乐不响,酷狗音乐开启以后为什么点选播放没有声音
  10. 广州粤语和Hong Kong粤语区别整理