基于RTP的视音频数据PS封装
基于RTP的PS封装首先按照ISO/IEC 13818-1:2000 将视音频流封装成PS包,再将PS包以负载的方式封装成RTP包
进行PS封装时,应将每个视频帧封装为一个PS包,且每个关键帧的PS包中应包含系统头(System Header)和PSM(Program Stream Map),系统头和PSM放置于PS包头之后、第一个PES包之前。
典型的视频关键帧PS包结构如图C.1所示,其中PESV为视频PES包,PESA为音频PES包,视频非关键帧的PS包结构中一般不包含系统头和PSM。PS包中各部分的具体数据结构参见ISO/IEC13818-1:2000 中的相关描述。
--------------------------------------------------------------
| PS包头 | System Header | PSM | PESV | PESA |
--------------------------------------------------------------
图C.1 典型的视频关键帧PS包结构
系统头应包含对PS包中码流种类的描述,其中视频和音频的流ID(stream_id)取值如下:
- 视频流ID: 0xE0
- 音频流ID: 0xC0
针对本文档规定的几种音频格式,PSM中流类型(stream_type)的取值如下:
- MPEG-4 视频流:0x10
- H.264 视频流:0x1B
- SVAC 视频流:0x80
- G.711 音频流:0x90
- G.722.1 音频流:0x92
- G.723.1 音频流:0x93
- G.729 音频流:0x99
- SVAC 音频流:0x9B
PS包封装的其他具体技术规范详见ISO/IEC 13818-1:2000
PS包的RTP封装格式参照IETF RFC2250,RTP的主要参数设置如下:
- 负载类型(payload type):96
- 编码名称(encoding name):PS
- 时钟频率(clock rate): 90 kHz
- SDP描述中“m”字段的 “media”项:video
基于RTP的视音频基本流封装
该方式直接将视音频数据以负载的方式封装成RTP包
MPEG-4 视频流的RTP封装
MPEG-4视频流的RTP封装格式应符合IETF RFC 3016协议中相关规定
MEPG-4视频流RTP包的负载类型(Payload Type)标识号选定:从IETF RFC 3551-2003表5中的动态范围(96~127)中选择,建议定为97
H.264视频流的RTP封装
H.264的RTP载荷格式应符合IETF RFC 3984中的相关规定
H.264视频流RTP包的负载类型(Payload Type)标识号选定:从IETF RFC 3551-2003表5中的动态范围(96~127)中选择,建议定为98
SVAC视频流的RTP封装
SVAC的RTP载荷格式应符合IETF RFC 3984中的相关规定
SVAC视频流RTP包的负载类型(Payload Type)标识号选定:从IETF RFC 3551-2003表5中的动态范围(96~127)中选择,建议定为99
音频流的RTP封装
语音比特流宜采用标准的RTP协议进行打包
在一个RTP包中,音频载荷数据应为整数个音频编码帧,且时间长度在20ms~180ms之间。音频载荷数据的RTP封装参数如下:
G.711的主要参数
G.711 A律语音编码RTP包的负载类型(Payload Type)的参数规定如下(见IETF RFC 3551-2003中的表4):- 负载类型(PT):8
- 编码名称(encoding name): PCMA
- 时钟频率(clock rate):8kHz
- 通道数: 1
- SDP描述中“m"字段的"media"项:audio
SVAC音频的主要参数
SVAC语音编码RTP包的负载类型(Payload Type)的参数规定如下:- 负载类型(PT):20
- 编码名称(encoding name):SVACA
- 时钟频率(clock rate):8kHz
- 通道数: 1
- SDP描述中"m"字段的"media"项:audio
G.723.1的主要参数
G.723.1语音编码RTP包的负载类型(Payload Type)的参数规定参照IETF RFC 3551-2003表4中的G.723,具体如下:- 负载类型(PT):4
- 编码名称(encoding name): G723
- 时钟频率(clock rate):8kHz
- 通道数: 1
- SDP描述中“m"字段的"media"项:audio
G.729的主要参数
G.729语音编码RTP包的负载类型(Payload Type)的参数规定如下(见IETF RFC 3551-2003中的表4):- 负载类型(PT):18
- 编码名称(encoding name): G729
- 时钟频率(clock rate):8kHz
- 通道数: 1
- SDP描述中“m"字段的"media"项:audio
G.722.1的主要参数
G.722.1语音编码RTP包的负载类型(Payload Type)的参数规定参照IETF RFC 3551-2003表4中的G.722,具体如下:- 负载类型(PT):9
- 编码名称(encoding name): G722
- 时钟频率(clock rate):8kHz
- 通道数: 1
- SDP描述中“m"字段的"media"项:audio