RTP中的FUs打包与NAL的关系

转载 2015年11月19日 22:35:43
NALU打包成RTP的方式有三种: 
.1、 单一 NAL 单元模式

 即一个 RTP 包仅由一个完整的 NALU 组成. 这种情况下 RTP NAL 头类型字段和原始的 H.264的
NALU 头类型字段是一样的.

2. 组合封包模式
    即可能是由多个 NAL 单元组成一个 RTP 包. 分别有4种组合方式: STAP-A, STAP-B, MTAP16, MTAP24.
那么这里的类型值分别是 24, 25, 26 以及 27.

3. 分片封包模式
    用于把一个 NALU 单元封装成多个 RTP 包. 存在两种类型 FU-A 和 FU-B. 类型值分别是 28 和 29.

在rtp打包时,如果一个NALU放在一个RTP包里,可以使用NALU的nal_unit_type,但是当需要把多个NALU打包成一个RTP包,或者需要把一个NALU打包成多个RTP包时,就定义新的type来标识

3 Fragmentation Units (FUs).

而当 NALU 的长度超过 MTU 时, 就必须对 NALU 单元进行分片封包. 也称为 Fragmentation Units (FUs).

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | FU indicator |   FU header   |                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
      |                                                               |
      |                         FU payload                            |
      |                                                               |
      |                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                               :...OPTIONAL RTP padding        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Figure 14. RTP payload format for FU-A

   FU indicator有以下格式:
      +---------------+
      |0|1|2|3|4|5|6|7|
      +-+-+-+-+-+-+-+-+
      |F|NRI|  Type   |
      +---------------+
   FU指示字节的类型域 Type=28表示FU-A。。NRI域的值必须根据分片NAL单元的NRI域的值设置。
 
   FU header的格式如下:
      +---------------+
      |0|1|2|3|4|5|6|7|
      +-+-+-+-+-+-+-+-+
      |S|E|R|  Type   |
      +---------------+
   S: 1 bit
   当设置成1,开始位指示分片NAL单元的开始。当跟随的FU荷载不是分片NAL单元荷载的开始,开始位设为0。
   E: 1 bit
   当设置成1, 结束位指示分片NAL单元的结束,即, 荷载的最后字节也是分片NAL单元的最后一个字节。当跟随的FU荷载不是分片NAL单元的最后分片,结束位设置为0。
   R: 1 bit
   保留位必须设置为0,接收者必须忽略该位。
   Type: 5 bits

三、拆包和解包

拆包:当编码器在编码时需要将原有一个NAL按照FU-A进行分片,原有的NAL的单元头与分片后的FU-A的单元头有如下关系:
原始的NAL头的前三位为FU indicator的前三位,原始的NAL头的后五位为FU header的后五位,FU indicator与FU header的剩余位数根据实际情况决定。
 
解包:当接收端收到FU-A的分片数据,需要将所有的分片包组合还原成原始的NAl包时,FU-A的单元头与还原后的NAL的关系如下:
还原后的NAL头的八位是由FU indicator的前三位加FU header的后五位组成,即:
nal_unit_type = (fu_indicator & 0xe0) | (fu_header & 0x1f)

H.264 NAL层解析(0x00000001,编码,打包,NALU)

H.264 NAL层解析(0x00000001,编码,打包,NALU)   1.引言 H.264的主要目标: 1.高的视频压缩比 2.良好的网络亲和性 解决方案: VCL  video ...
  • wudebao5220150
  • wudebao5220150
  • 2013年10月31日 19:59
  • 10025

将H264码流打包成RTP包

H264码流打包成RTP包的代码如下:
  • chenchong_219
  • chenchong_219
  • 2014年07月20日 20:30
  • 16912

讲的比较好的NALU格式文章--H.264NAL层解析(转载)

.引言 H.264的主要目标: 1.高的视频压缩比 2.良好的网络亲和性 解决方案: VCL video coding layer 视频编码层 NAL network abstra...
  • justmeloo
  • justmeloo
  • 2014年12月21日 22:37
  • 677

H.264 NAL基本概念收集及其头部字段介绍

一些基本概念 1、NAL(Network Abstract Layer) 即网络抽象层。        在H.264/AVC视频编码标准中,整个系统框架被分为了两个层面:视频编码层面(VCL)和网...
  • zhengyuan0518
  • zhengyuan0518
  • 2013年01月14日 15:13
  • 1318

RTP的几种封包方式

5.7.1. 单时间聚合包    单时刻聚合包(STAP)应该用于当聚合在一起的NAL单元共享相同的NALU时刻。STAP-A荷载不包括DON,至少包含一个单时刻聚合单元    见图4. STAP...
  • d_l_u_f
  • d_l_u_f
  • 2015年04月14日 19:21
  • 1658

(三)H264NAL的分析处理

 转载  增加一些说明 ------------------------------ H.264的NAL层处理 ------------------------------ H26...
  • Climber_KinG
  • Climber_KinG
  • 2016年01月18日 22:49
  • 1413

FU-A分包方式,以及从RTP包里面得到H.264数据和AAC数据的方法

FU-A分包方式,以及从RTP包里面得到H.264数据和AAC数据的方法 RFC3984是H.264的baseline码流在RTP方式下传输的规范,这里只讨论FU-A分包方式,以及从RTP包里面...
  • wudebao5220150
  • wudebao5220150
  • 2013年10月31日 20:07
  • 4476

ffmpeg对H.264进行rtp打包

ffmpeg对h.264进行RTP打包 ffmpeg -i test22.264 -f rtp rtp://10.102.5.226:15000 会报如下错误:Output f...
  • wh8_2011
  • wh8_2011
  • 2016年02月17日 11:49
  • 952

关于Rtp封包方式之一的 FU-A分包方式

RFC3984是H.264的baseline码流在RTP方式下传输的规范,这里只讨论FU-A分包方式,因为工作上刚刚用到,就记下来。        FU_A一种分片封包的方式,就是将一个过大的NAL...
  • duan_jin_hui
  • duan_jin_hui
  • 2017年03月28日 16:08
  • 396

分享一段H264视频和AAC音频的RTP封包代码

1. H264视频的RTP封包static int h264_parse(Track *tr, uint8_t *data, size_t len) { h264_priv *priv =...
  • moruite
  • moruite
  • 2010年12月28日 14:29
  • 11632
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:RTP中的FUs打包与NAL的关系
举报原因:
原因补充:

(最多只允许输入30个字)