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

📄 rfc3016_5.c

📁 rfc3016中文版, rfc3016中文版
💻 C
📖 第 1 页 / 共 3 页
字号:
组织:中国互动出版网(http://www.china-pub.com/)
RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
译者: 李超(licc_li ,licc_li@sina.com)
译文发布时间:2001-4-26
版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须
保留本文档的翻译及版权信息。




Network Working Group                                         Y. Kikuchi
Request for Comments: 3016                                       Toshiba
Category: Standards Track                                      T. Nomura
                                                                     NEC
                                                             S. Fukunaga
                                                                     Oki
                                                               Y. Matsui
                                                              Matsushita
                                                               H. Kimata
                                                                     NTT
                                                           November 2000

用于MPEG-4视听流的RTP负载格式
(RRC3016 RTP Payload Format for MPEG-4 Audio/Visual Streams)


本备忘录的状态
  本文档讲述了一种Internet社区的Internet标准跟踪协议,它需要进一步进行讨论和建议以
得到改进。请参考最新版的“Internet正式协议标准” (STD1)来获得本协议的标准化程度
和状态。本备忘录的发布不受任何限制。
版权声明
   Copyright (C) The Internet Society (2000).  All Rights Reserved.
摘要
   本文描述了在不使用MPEG-4系统的情况下携带MPEG-4音频和视觉码流的RTP负载格式。为了能
直接将MPEG-4音频/视觉码流映射到RTP包上,它提供了RTP包头字段的使用规范和分片规则。同
时文档中还规定了MIME类型注册和会话描述协议(SDP)的使用。
目录
本备忘录的状态	1
版权声明	1
摘要	1
1. 介绍	2
1.1 MPEG-4视觉RTP负载格式	3
1.2 MPEG-4音频RTP负载格式	3
2. 要求的术语	4
3. MPEG-4视觉码流的RTP组包	4
3.1 MPEG-4视觉中RTP头字段的使用	4
3.2 MPEG-4视觉码流分片	5
3.3 MPEG-4视觉码流组包示例	6
4. MPEG-4音频码流的RTP组包	7
4.1 RTP包格式	7
4.2 MPEG-4音频中RTP头字段的使用	8
4.3 MPEG-4音频码流分片	9
5. MPEG-4视听流MIME类型注册	9
5.1 MPEG-4视觉MIME类型注册	9
5.2 MPEG-4视觉中SDP的用法	10
5.3 MPEG-4音频MIME类型登记	11
5.4 SDP usage of MPEG-4 Audio	12
6. 安全性考虑	13
7. 参考文献	13
8. 作者地址	13
9. 版权声明	14
致谢	14

1. 介绍
本文描述的RTP负载格式规定了如何对MPEG-4音频流[3][5]和MPEG-4视觉流[2][4]进行分
片并直接映射到RTP包中。
	通过定义这些RTP负载格式,应用在不使用MPEG-4系统同步和流管理功能的情况下也能直接
传输MPEG-4音频/视觉流。本文的RTP负载格式可应用于那些本身有流管理功能且不需要MPEG-4
系统中类似功能的系统。例如H.323终端,其MPEG-4音/视频流的管理就不通过MPEG-4系统对象描
述符进行管理,而是使用了H.245。流直接映射到RTP包中,并没有使用MPEG-4系统同步层。其它
例子包括SIP和RTSP,它们使用了MIME和SDP。本文所述之RTP负载格式定义了MIME类型和SDP的用
法,直接规定了不使用MPEG-4系统时的音/视觉流属性(如,媒体类型,打包格式和编码配置)。
这样做明显的优点在于可以象对付那些非MPEG-4编码格式一样,采用一种通用的方法来对这些
MPEG-4音频/视觉RTP负载格式进行处理。而缺点在于同基于MPEG-4系统环境的互操作可能会比较
困难,其它负载格式则更适用于这些应用。
	在此情况下,RTP包头的语义必须定义的非常清晰,其中包括MPEG-4音/视频数据元素的关
系。此外,为了增强错误恢复能力,在MPEG-4视频流内部提供错误恢复工具,最好能为MPEG-4
视频流定义好RTP包的分片规则。
1.1 MPEG-4视觉RTP负载格式
MPEG-4视觉是一种视觉编码标准,它具有如下新特征:高编码效率;高错误恢复性;基于
多样的,任意形的对象编码;等等[2]。其速率范围介于数Kbps到几Mbps。并且它能适应从无差
错网络到高错误率的移动网络等多种网络类型。
针对本文中定义的MPEG-4视觉码流的分片规则我们应当注意到,由于MPEG-4视觉将用于多
种网络类型,因此在分片方面不应有太多的限制。诸如“单个视频包需映射到单个RTP包”这样
的分片规则是不合理的。另一方面,大意,以及未知媒体分片也可能导致错误恢复率和带宽利用
率的下降。本文描述的分片规则十分灵活,但在应用MPEG-4视觉错误恢复功能时为了避免无意义
的分片也要定义一个最小的规则集。
分片规则建议不要在一个RTP包中映射多个VOP,这样可以保证RTP时间戳能唯一地表示VOP
分帧时间。而相反地,由于MPEG-4视频可以产生非常小的VOP,如一个只包含VOP头的空VOP 
(vop_coded=0)或者一个仅有少量码块的任意形VOP。为了减低开销,分片规则应允许将多个VOP
连接到一个RTP包中。(参见3.2节分片规则(4)和3.1节标志位和时间戳)
在H.261或MPEG-1/2等视频编码工具中往往通过所定义的额外媒体RTP包头来帮助在包丢失
时恢复损坏的图片包头,而MPEG-4视觉已经为此提供了错误恢复功能,它们可用于RTP/IP网络,
也可用于其它网络(H.223/Mobile,MPEG-2/TS等)。因此,无需在MPEG-4视觉RTP负载格式中定
义额外的RTP包头。
1.2 MPEG-4音频RTP负载格式
   MPEG-4音频是一种集成了多种类型音频编码工具的新型音频标准。LATM(低负担MPEG-4音频传
输复用)通过相当小的耗费来管理音频数据序列。对那些仅有音频的应用,不使用MPEG-4系统而
采用直接将基于LATM的MPEG-4音频码流映射到RTP包的方式是很值得的。
	LATM有如下几项复用特性:
   -  在音频数据中携带配置信息,
   -  将多个音频帧连接到一个音频流中,
   -  多对象(程序)复用
   -  可伸缩层的复用,
	在RTP传输中不需要最后两项性质。因此,基于本文规定的RTP组包原则的应用程序不能使
用这两个性质。由于LATM是为自然音频编码工具所开发,而非为合成工具开发,要用其来传输结
构化音频(SA)数据和文语转换接口(TTSI)数据是很困难的。所以不能通过本文档的RTP组包方法
传输SA数据和TTSI数据。
	为了传输可伸缩流,每层的音频数据都应当打包到不同的RTP包,如此才可保证在IP层对不
同层有不同的处理,比如通过一些区分服务。另一方面,可伸缩流的所有配置数据都包含于一个
LATM配置数据"SteamMuxConfig"中,并且每一层共享该 StreamMuxConfig。层与其配置数据的映
射是通过音频数据附带的LATM头信息来完成的。为了表示可缩放流的依赖信息,还针对负载类型
(PT)值(见4.2节)的动态分配规则使用了一种限制措施。
对于MPEG-4音频编码工具而言,如果负载为单个音频帧,则包的丢失不会影响邻近包的解
码。这同样也适用于其它音频编码器。因此MPEG-4音频不需要附加的用于错误恢复的媒体特定头。
可采用已经存在的一些RTP保护机制来提高错误恢复率,如通用前向纠错(RFC 2733)和冗余音频
数据(RFC 2198)。
2. 要求的术语
本文中的关键字“必须”,“必须不”,“要求的”,“应该”,“不应该”,“会”,“不会”,
“建议”,“或许”,“可选的”在 RFC 2119 中解释。   
3. MPEG-4视觉码流的RTP组包
	本节规定了MPEG-4视觉内容的RTP组包规则。一个MPEG-4视觉码流可直接映射到RTP包而不
需要增加额外的头字段或者删除任何视觉语法元素。为了将基本流的配置信息在相同的RTP端口
上传送,必须使用合并配置/基本流模式。(参见ISO/IEC 14496-2[2][9][4]中6.2.1"开始编码")
配置信息可以通过带外方式规定。对于H.323终端,必须使用H.245码
点"decoderConfigurationInformation"。如果系统使用MIME内容类型和SDP参数,如SIP和RTSP,
则必须用可选参数"config"来规定配置信息(参见5.1和5.2)。
	当使用了短视频头模式时,应该H.263的RTP负载格式(建议使用RFC2429定义的格式,但也
可使用RFC2190格式以实现同旧系统的兼容性)。
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P|X|  CC   |M|     PT      |       sequence number         | RTP
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           timestamp                           | Header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           synchronization source (SSRC) identifier            |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|            contributing source (CSRC) identifiers             |
|                             ....                              |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|                                                               | RTP
|       MPEG-4 Visual stream (byte aligned)                     | Pay-
|                                                               | load
|                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               :...OPTIONAL RTP padding        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

     Figure 1 – 一个MPEG-4视觉流的RTP包
3.1 MPEG-4视觉中RTP头字段的使用
   负载类型(PT): 为新的包格式分配RTP负载类型超出了本文的范畴,不在此赘述。特定类
型应用程序的RTP框架应该负责负载类型的分配,如若不能则应该通过带外信令协议(如,
H.245,SIP等)在动态范围内选择一个负载类型。
   扩展位(Extension-X bit): 由使用的RTP框架定义。
   序列号(Sequence Number): 为了安全从一个随机初始化值开始,每发送一个RTP数据包加1。
   标志位(Marker-M) bit: 标志位设为1标志这是VOP的最后一个(或仅有一个)RTP包。若一
个RTP包中携带有多个VOP则标志位也设为1。
   时间戳(Timestamp): 时间戳表示RTP包中的VOP采样时间。为了安全,加上了一个随机常数
偏移。
   -  当一个RTP包携带多个VOP时,时间戳表示其中最早的一个VOP的时间。其它VOP的时间戳信
息通过VOP头的时间戳字段可得(modulo_time_base和vop_time_increment)。
   -  如果RTP包只含有配置信息或Group_of_VideoObjectPlane()字段,使用编码队列中下一个
VOP的时间戳。
-	如果RTP包仅含有visual_object_sequence_end_code信息,使用编码队列中前一个VOP
的时间戳。
除非由带外方式规定,时间戳分辨率设为缺省值90KHz。
   其它头字段的使用见RFC 1889 [8]。
3.2 MPEG-4视觉码流分片
   使用合并配置/基本流模式,经过分片的MPEG-4视觉码流直接映射到RTP负载而不用增加任何
额外头字段或者删除视觉语法元素。分片时可应用如下规则。
   下文中,头(Header)可能表示如下信息:
   -  配置信息(视觉对象序列头,视觉对象头和视频对象层头)
   -  visual_object_sequence_end_code
   -  基本流的进入点函数头(Group_of_VideoObjectPlane(),
      video_plane_with_short_header(), MeshObject()或FaceObject())
   -  视频包头 (video_packet_header(),next_resync_marker()除外)
   -  gob_layer()头
      配置信息和进入点函数的定义参见ISO/IEC 14496-2 [2][9][4]的6.2.1 "开始编码"
   (1) 配置信息和Group_of_VideoObjectPlane()字段应位于RTP负载的开始位置或在语法上的
上层函数头之后。 
   (2) 如果RTP负载中存在一个或多个头,则RTP负载应从语法上的最高函数头开始。
   注意: visual_object_sequence_end_code作为最低函数。
   (3) 一个头不应分到多个RTP包中。
   (4) 不同的VOP应该分片为不同的RTP包,一个RTP包只包括与唯一VOP的时间相关的数据(在
RTP包头的时间戳字段中指出)。例外情况是如果VOP很小,则单个RTP包携带多个按解码顺序连
续的VOP。

⌨️ 快捷键说明

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