RFC2250中文版
- 格式:pdf
- 大小:332.72 KB
- 文档页数:9
基于MPEG的RTP负载格式............................................................................................ 2
前言.......................................................................................................................... 2
1. 简介 ..................................................................................................................... 2
2.MPEG系统和传输流 .............................................................................................. 3
2.1.RTP头部的使用 ......................................................................................... 3
3. MPEG基本流的封包.............................................................................................. 4
3.1MPEG视频基本流 ......................................................................................... 4
3.2MPEG视频基本流 ......................................................................................... 5
3.3RTP固定头部的ES流封包 ............................................................................ 5
3.4MPEG视频标准头部...................................................................................... 5
3.4.1MPEG2视频标准头部扩展 .......................................................................... 6
4. Security Considerations............................................................................................ 7
5.错误恢复和再同步策略. .......................................................................................... 8
基于MPEG的RTP负载格式
前言
这篇文章描述了MPEG视频和音频的打包格式。这种格式可以在RTP传输层协议的基础
上来传输这种音视频。一共描述了两种方法。第一种设计用来支持MPEG系统环境的最大
互操作性。第二种设计用来支持RTP内置媒体流协议的最大兼容性。
这个备忘录是RFC2038的最新修改版,一个因特网标准协议。在这个修改版本中,在
3.4节描述的包丢失重建机制被扩展,MPEG2要求加入额外的图片头部信息。另外新加入了
对于负载的安全考虑。
1. 简介
MPEG协会已经定义了MPEG1和MPEG2标准。这个备忘录描述了它们在RTP协议基
础上的打包过程。 MPEG1标准分成了三个部分:系统,音频和视频。它的设计主要是为了来使用CD-ROM
的应用。最理想的情况下可以达到1.5M/S的数据传输率。标准中的音视频部分主要描述了
音频和视频流的基本包格式。这些格式定义叫做Elementary Streams (ES). MPEG1系统定义了ES流的封装,它包括描述时间戳Presentation Time Stamps (PTS),解码时间戳Decoding Time Stamps 和系统时间戳System Clock references, 并且完成了用户数据在MPEG1中的音
视频的多路复用技术。
MPEG2标准的构成和MPEG1相似。但是,它没有研制在CD-ROM应用中。它也定义
了两个系统流格式:传输流MPEG2 Transport Stream (MTS)和程序流MPEG2 Program
Stream(MPS)。MTS流的设计初衷是为了适应在错误发生率较高的环境中交换和存储数据。
MPS流的设计是适应相对稳定的环境。我们试图达到在以下描述的四种类型终点系统之间
的互操作性。这四种类型是:
1. 传输网络单元Transmitting Interworking Unit (TIU) 从本地传输流系统中接收到MPEG信息,这些系统使用本地的RTP系统层次来传输包。
例如:实时编码,卫星链路到因特网的传输流,用传输流编码的视频服务器。
2. 接受交互单元Receiving Interworking Unit (RIU)
在一个基于RTP的网络中实时接收MPEG信息,例如:一个网络视频服务器通过电缆接
入到一个工厂。
3. 传输网络终点系统Transmitting Internet End-System (TAES)
传输或者接收网络上的视频信息。例如:视频服务器
4.接受终点系统Receiving Internet End-System (RAES)
每两种传输者必须和相应类型的接受者可以一起工作。因为有很大的可能性,TEAS和RAES
都会基于现存的网络连接计算机。在RTP的基础上设计可互操作性的协议是很值得去做的。
根据MPEG流的应用范围,我们建议使用两种负载包格式。
MPEG团体对MPEG编码有很大的兴趣,因此,在2小节,我们会对介绍在RTP上的
MPEG系统流的封包,MPEG传输流和程序流的封包。这个轮廓支持MPEG系统的所有语
义,并且提供了在四种类型中的基本互操作性。当在internet-based end-systems (i.e., TAES and
RAES)的时候,负载格式提供了比互联网架构期望更高的兼容性。
在第3小节,我们建议了一种对压缩音视频(基本流)的封包格式(referred to in MPEG
documentation as "Elementary Streams" (ES)),它可以在MPEG1和MPEG2中使用。在这
里,MPEG1和MPEG2都没有使用,它们直接把ES流封装在RTP的包中。
贯穿这个标准,我们广泛使用了MPEG的术语。读者需要查阅相关的MPEG文档。
2.MPEG系统和传输流
每个RTP包都会包含发送者90kHZ时钟参考下的时间戳。时钟的同步通过系统流的程序时
钟引用 Program Clock Reference (PCR) 或者统时钟引用 System Clock Reference (SCR)和
RTP负载的第一个字节的采样时间。RTP时间戳不会传递给MPEG的解码端。这种时间戳
的使用方式跟RTP正常情况下的使用有点不一样。它不会被认为是媒体显示或者采样时间。 RTP时间戳的重要作用是,用来估计和减少网络抖动和同步发送者和接受者之间的相关时间
漂移。
对于MPEG2传输流,RTP负载将会包含一个传送MPEG包的整体的数目。为了避免
终点系统的低效率,很多小的MTS传输流(188个字节)就被放在一个单独的RTP包中。
容纳的小包数目可以通过计算有多少个188字节。 对于MPEG2程序流和MPEG1系统流,没有封包限制,这些流被当成已经封好包的字
节流来对待。
2.1.RTP头部的使用
RTP的使用方式如下:
负载类型:有区别的负载类型应该设置它MPEG1系统流,MPEG2程序流,MPEG2传
输流 See [4] for payload type assignments.
M位: 当时间戳是不连续的时候设置为1(这在发送端改变数据源的时候会发生),这
样就允许接受者和中间的RTP混频器和同步后的转换器来忽略现在的时间戳和当前的时间
戳的不同。
时间戳:32位 表示包中第一个字节的采样时间
3. MPEG基本流的封包
以下基本流直接封装在RTP中:
(a) MPEG1 Video (ISO/IEC 11172-2)
(b) MPEG2 Video (ISO/IEC 13818-2) (c) MPEG1 Audio (ISO/IEC 11172-3) (d) MPEG2 Audio (ISO/IEC 13818-3)
要为不同MPEG1/MPEG2 Video和MPEG1/MPEG2 Audio分别设置RTP负载类型。更详细的封包类型不用在封包的头部标出。因为这些信息在ES流的头部是可以看到的。 90 kHz 准确定的32位的描述时间戳应该包含在RTP的头部中。所有组成同一帧
音视频的包都拥有同样的时间戳。
3.1MPEG视频基本流
MPEG1视频可以从视频序列的头部区分出来。例如,MPEG2视频 sequence_header()
的后面是sequence_extension()。MPEG2视频的重要特征是由sequence_extension 中的
profile_and_level_indicator域来决定的。MPEG比特流部分是来使用错误率相对小的环境中
使用的。流之间有重要的从属关系,如果中间有一部分数据丢失,那么其余的数据也会变成
无用。
包格式定义为:
封包使用应用层的架构和RTP包头部的流格式,可以达到一定的恢复机制。
Appendix 1基于这种封包方式建议了几种恢复策略。由于MPEG画面可以是很大,因此,
它们可能被分成小于MTU的很多小段。可以使用如下的几种分段方式:‘
1.MPEG的Video_Sequence_Header总是在RTP负载的开始; 2. MPEG GOP_header,或者出现在RTP的开始,或者跟在Video_Sequence_Header
的后部。
3. MPEG Picture_Header,在RTP负载的开始,或者跟在GOP_header的后面
每个ES流的头部必须完整的包含在每个包中。因此,一个最小的RTP负载大小
261个字节必须支持在ES中的最大单个头部定义。(意思是extension_data()包含quant_matrix_extension())。
在MPEG中,每个图片是由一个或者多个切片组成的,一个切片是可以恢复或者
损毁的单位。如果在一个流中遇到错误,MPEG解码器前进到下一个切片。在封包的头部提
供MPEG切片开始和结束位来达到这个功能。切片的开始或者是包中数据的开始,或者必
须在整数个切片的后面。这个要求确保了一个切片的下一个切片的开始如果包含一个丢失包
就可以发现。而不用去扫描整个包的内容。切片也可能跨越包,只要上面的所要规则都符合。
基于这种封包的一种实现假设Video_Sequence_Header在MPEG流中是周期性重复
的出现。在实际中(尽管MPEG标准没有要求)这种方式常用来允许信道转换和接收和开