基于H.264的RTP打包原理和FU-A分片实例分析

1. H.264码流结构

  H.264编码规范从逻辑上划分为视频编码层(VCL)和网络提取层(NAL)。
  VCL数据是由编码器直接输出的原始数据比特串(SODB),它表示图像被压缩后的编码比特流。
  VCL数据要在网络上传输或者存储到磁盘上之前,需要先被封装或映射进NAL单元(NALU)中,每个NAL单元之前需要添加StartCodePrefix,最后形成H.264码流,H.264码流结构如图1-1所示(annex-b byte stream format,详见H.264建议书附录B部分)。
这里写图片描述

图1-1 H.264码流结构

  关于H.264码流结构的详细内容可以参考我的另一篇文章:
  《 H.264码流格式

2. NALU结构

  H.264码流由NALU序列组成,通过RTP协议封装和传输H.264码流实际上就是对H.264序列中NALU的封装和传输。在介绍RTP打包封装H.264码流之前,我们先来简单了解NALU的结构。
  NAL单元(NAL Unit,简称NALU)由1个NAL头(NAL Header)和1个RBSP(或EBSP)组成。
  NAL头(NAL Header)长度为1个字节,由“forbidden_zero_bit”、“nal_ref_idc”和“nal_unit_type”三个字段组成。NAL Header结构如果图2-1所示:
这里写图片描述

图2-1 NAL Header结构

  F:forbidden_zero_bit,1位,初始为0,当NAL单元在网络传输过程中识别为错误时,可设置该字段为 1,以便接收方纠错或丢掉该单元。
  NRI:nal_ref_idc,2 位,用来指示该NALU 的重要性等级。值越大,越重要,解码器在解码处理不过来的时候,可以丢掉重要性为0的NALU
  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值