⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc3984(for264).txt

📁 H.264 RTP 打包格式中文译稿
💻 TXT
📖 第 1 页 / 共 5 页
字号:
      |                                                               |      |                single-time aggregation units                  |      |                                                               |      |                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |                               :      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                 图 5.  STAP-B 荷载格式   DON域指定STAP-B传输顺序中第一个NAL单元的DON值. 对每个后续出现在STAP-B中的NAL单元,它的DON值等于   (STAP-B中前一个NAL的DON值+1)%65535, %是取模运算。   单时刻聚合单元有一个16位无符号大小信息(网络字节序),他指示后续NAL单元的大小(以字节为单位)(不包括   这两个字节,但包括NAL单元类型字节),后面紧跟NAL单元本身, 包括它的NAL单元类型字节. 单时刻聚合单元在RTP荷载   中是字节对齐的,单可以不是32位字边界对齐。图6 表示单时刻聚合单元的结构。       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      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                      :        NAL unit size          |               |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               |      |                                                               |      |                           NAL unit                            |      |                                                               |      |                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |                               :      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+              图 6.  单时刻聚合单元的结构   图 7表示一个例子--一个RTP包包含一个STAP-A. STAP包含两个单时刻聚合单元, 在图中用1,2标记。       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      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |                          RTP Header                           |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |STAP-A NAL HDR |         NALU 1 Size           | NALU 1 HDR    |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |                         NALU 1 Data                           |      :                                                               :      +               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |               | NALU 2 Size                   | NALU 2 HDR    |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |                         NALU 2 Data                           |      :                                                               :      |                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |                               :...OPTIONAL RTP padding        |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      图 7.  RTP包包含一个STAP-A. STAP包含两个单时刻聚合单元   图 8 表示一个RTP包包含一个STAP-B. STAP包含两个单时刻聚合单元, 用 1,2标记。       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      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |                          RTP Header                           |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |STAP-B NAL HDR | DON                           | NALU 1 Size   |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      | NALU 1 Size   | NALU 1 HDR    | NALU 1 Data                   |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +      :                                                               :      +               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |               | NALU 2 Size                   | NALU 2 HDR    |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |                       NALU 2 Data                             |      :                                                               :      |                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |                               :...OPTIONAL RTP padding        |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      图 8.  一个RTP包包含一个STAP-B. STAP包含两个单时刻聚合单元例子5.7.2.  多时刻聚合包(MTAPs)   多时刻聚合包的NAL单元荷载有16位的无符号解码顺序号基址(DONB) (网络字节序)以及一个或多个多时刻聚合单元,如   图9表示。DONB 必须包含MTAP中NAL单元的第一个NAL的DON的值。      注释:NAL解码顺序中的第一个NAL单元不必要是封装在MTAP中的第一个NAL单元。       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      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                      :  decoding order number base   |               |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               |      |                                                               |      |                 multi-time aggregation units                  |      |                                                               |      |                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |                               :      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+           图 9. MTAP的NAL单元荷载格式   本规范定义两个不同多时刻聚合单元。两个都有16位的无符号大小信息用于后续NAL单元(网络字节序),一个8位无符号解码序号   差值(DOND), 和n位 (网络字节序) 时戳位移(TS 位移)用于本NAL单元,n可以是16/24. 不同MTAP类型的选择是应用相关的(MTAP16   /MTAP24): 时戳位移越大, MTAP的灵活性越大, 但是负担也越大。   MTAP16/MTAP24多时刻聚合单元的结构分别在图 10 ,11表示。一个包中的聚合单元的开始/结束不要求位于32位的边界。   跟随NAL单元的DON 等于(DONB + DOND) % 65536,  %代表取摸操作. 本文没有指定MTAP内的NAL单元如何排序,但大多数   情况,应该使用NAL单元解码顺序。      时戳位移域必须设置成等于以下公式的值:如果NALU-time大于等于包的RTP时戳,则时戳位移等于(NALU-time - 包的RTP时戳).   如果NALU-time小于包的RTP时戳,则时戳位移等于 NALU-time + (2^32 - 包的RTP时戳).       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      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      :        NAL unit size          |      DOND     |  TS offset    |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |  TS offset    |                                               |      +-+-+-+-+-+-+-+-+              NAL unit                         |      |                                                               |      |                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |                               :      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                  图 10.  MTAP16多时刻聚合单元       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      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      :        NALU unit size         |      DOND     |  TS offset    |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |         TS offset             |                               |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |      |                              NAL unit                         |      |                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |                               :      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                 图 11.  MTAP24多时刻聚合单元   一个MTAP中的最早的聚合单元时戳位移必须为0。因此, MTAP的RTP时戳和最早NALU-time相同.      注释: 最早多时刻聚合单元是MTAP中所有聚合单元的扩展RTP时戳中的最小者,如果聚合单元封装在单个NAL单元包中。      扩展时戳是有多于32位的时戳,有能力计算时戳域的饶回,因此时戳如果绕回能够确定时戳的最小值。这样的“最早“聚合      单元可以不是封装在MTAP中的第一个聚合单元,最早NAL单元不必和NAL解码顺序的第一个NAL单元相同。   图 12 表示一个例子,一个RTP包包含一个多时刻MTAP16类型的聚合包,包括两个多时刻聚合单元,分别用1,2标记。       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      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |                          RTP Header                           |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |MTAP16 NAL HDR |  decoding order number base   | NALU 1 Size   |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |  NALU 1 Size  |  NALU 1 DOND  |       NALU 1 TS offset        |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |  NALU 1 HDR   |  NALU 1 DATA                                  |      +-+-+-+-+-+-+-+-+                                               +      :                                                               :      +               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |               | NALU 2 SIZE                   |  NALU 2 DOND  |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |       NALU 2 TS offset        |  NALU 2 HDR   |  NALU 2 DATA  |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               |      :                                                               :      |                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |                               :...OPTIONAL RTP padding        |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      图 12. 一个RTP包包含一个多时刻MTAP16类型的聚合包,包括两个多时刻聚合单元   图 13 表示一个例子,一个RTP包包含一个多时刻MTAP24类型的聚合包,包括两个多时刻聚合单元,分别用1,2标记。       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      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |                          RTP Header                           |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |MTAP24 NAL HDR |  decoding order number base   | NALU 1 Size   |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |  NALU 1 Size  |  NALU 1 DOND  |       NALU 1 TS offs          |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |NALU 1 TS offs |  NALU 1 HDR   |  NALU 1 DATA                  |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +      :                                                               :      +               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |               | NALU 2 SIZE                   |  NALU 2 DOND  |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |       NALU 2 TS offset                        |  NALU 2 HDR   |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |  NALU 2 DATA                                                  |      :                                                               :      |                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |                               :...OPTIONAL RTP padding        |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      图 13.  RTP包包含一个多时刻MTAP24类型的聚合包,包括两个多时刻聚合单元5.8.  分片单元 (FUs)   本荷载类型允许分片一个NAL单元到几个RTP包中。在应用层这样做比依赖于底层(IP)的分片有以下好处:   o  荷载格式有能力传输NAL单元大于64K字节的单元通过IPv4网络,或许存在预编码的视频,特别在高清格式 (      每个图像的分片数目有限制,导致每个图像的NAL单元数目的限制, 从而导致大的 NAL单元).   o  分派机制允许分片单个图像并且采用一般向前的纠错像12.5描述的那样.   分片只定义于单个NAL单元不用于任何聚合包。NAL单元的一个分片由整数个连续NAL单元字节组成. 每个NAL单元字节   必须正好是该NAL单元一个分片的一部分。相同NAL单元的分片必须使用递增的RTP序号连续顺序发送(第一和最后分片之间   没有其他的RTP包)。相似, NAL单元必须按照RTP顺序号的顺序装配。   当一个NAL单元被分片运送在分片单元(FUs)中时,被引用为分片NAL单元。STAPs,MTAP不可以被分片。 FUs不可以嵌套。   即, 一个FU 不可以包含另一个FU.   运送FU的RTP时戳被设置成分片NAL单元的NALU时刻.   图 14 表示FU-A的RTP荷载格式。FU-A由1字节的分片单元指示,1字节的分片单元头,和分片单元荷载组成。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -