音视频高手课07-视频流H264码流分析实战

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ahYhw27s-1649949572379)(img/70.png)]

  1. 2.1 H.264码流结构图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m0RFjX5f-1649949572380)(img/71.png)]

起始码:如果NALU对应的Slice为一帧的开始,则用4字节表示,即0x00000001;否则用3字节表示,0x000001。 NAL Header:forbidden_bit,nal_reference_bit(优先级),nal_unit_type(类型)。 脱壳操作:为了使NALU主体不包括起始码,在编码时每遇到两个字节(连续)的0,就插入一字节0x03,以和起始码相区别。解码时,则将相应的0x03删除掉。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-THdX3cfP-1649949572381)(img/72.png)]

H.264解码 NAL头信息的nal_referrence_idc(NRI)用于在重建过程中标记一个NAL单元的重要性,

  1. 值为0表示这个NAL单元没有用预测,因此可以被解码器抛弃而不会有错误扩散;
  2. 值高于0表示NAL单元要用于无漂移重构,且值越高,对此NAL单元丢失的影响越大。
  3. NAL头信息的隐藏比特位,在H.264编码器中默认为0,当网络识别到单元中存在比特错误时 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》开源 ,可将其置为1。隐藏比特位主要用于适应不同种类的网络环境(比如 Android开源项目:ali1024.coding.net/public/P7/Android/git 有线无线相结合的环境)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qzkLKPs4-1649949572383)(img/73.png)]

NAL单元解码的流程为:首先从NAL单元中提取出RBSP语法结构,然后按照如图4所示的流程处理RBSP语法结构。输入的是NAL单元,输出结果是经过解码的当前图像的样值点。 NAL单元中分别包含了序列参数集和图像参数集。图像参数集和序列参数集在其他NAL单元传输过程中作为参考使用,在这些数据NAL单元的片头中,通过语法元素pic_parameter_set_id设置它们所使用的图像参数集编号;而相应的每个图像参数集中,通过语法元素seq_paramter_set_id设置他们使用的序列参数集编号。

几个例子:

img

3、 ffmpeg解析H264流程分析

这是一段实际的码流

扫描二维码关注公众号,回复: 14995834 查看本文章

img

最后

最后这里放上我这段时间复习的资料,这个资料也是偶然一位朋友分享给我的,里面包含了腾讯、字节跳动、阿里、百度2020-2021面试真题解析,并且把每个技术点整理成了视频和PDF(知识脉络 + 诸多细节)。

还有 高级架构技术进阶脑图、高级进阶架构资料 帮助大家学习提升进阶,这里我也免费分享给大家也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

一起互勉~

[外链图片转存中…(img-gu43bgGG-1649949572384)]

一起互勉~

猜你喜欢

转载自blog.csdn.net/m0_61111814/article/details/124184599
今日推荐