ThinkSSL🔒 一键申购 5分钟快速签发 30天无理由退款 购买更放心 广告
[TOC] > [RFC 3550协议中文文档](http://www.gpssoft.cn/download/protocol/RFC-3550-%E4%B8%AD%E6%96%87%E7%89%88.pdf) ## 概述 RTP全名是Real-time Transport Protocol(实时传输协议)。它是IETF提出的一个标准,对应的RFC文档为RFC3550(RFC1889为其过期版本) RTP用来为IP网上的语音、图像、传真等多种需要实时传输的多媒体数据提供端到端的实时传输服务。RTP为Internet上端到端的实时传输提供时间信息和流同步,但并不保证服务质量,服务质量由RTCP来提供 音视频在RTP 中的表现 如果在一次会议中同时使用了音频和视频会议,这两种媒体将分别在不同的RTP会话中传送,每一个会话使用不同的传输地址(IP地址+端口)。如果一个用户同时使用了两个会话,则每个会话对应的RTCP包都使用规范化名字CNAME(Canonical Name)。与会者可以根据RTCP包中的CNAME来获取相关联的音频和视频,然后根据RTCP包中的计时信息(Network time protocol)来实现音频和视频的同步 ## 协议 ![](https://img.kancloud.cn/2f/6d/2f6d0e160749186bfb7f5017ee3171de_1972x632.png) * Version 表示 RTP 协议的版本,目前版本为 2。 * P (Padding) 表示 RT(D)P 包末尾是否有 padding bytes,且 padding bytes 的最后一个 byte 表示 bytes 的数量。Padding 可以被用来填充数据块,比如加密算法可能会用到。 * X (Extension) 表示是否有头部扩展,头部扩展可以用于存储信息,比如视频旋转角度。 * CC (CSRC count) 表示红色部分的 CSRC(参见下文)数量,显然最多只能有 15 个 CSRC。 * M (Marker) 表示当前数据是否与应用程序有某种特殊的相关性。比如传输的是一些私有数据,或者数据中的某些标志位具有特殊的作用。 * PT (Payload type) 表示 payload 的数据类型,音视频的默认映射格式可参见[RFC 3551](https://tools.ietf.org/html/rfc3551#page-32)。 * Sequence number 是递增的序列号,用于标记每一个被发送的 RT(D)P 包。接收方可以根据序列号按顺序重新组包,以及识别是否有丢包。序列号的初始值应当是随机的(不可预测的),从而增加明文攻击的难度。 * Timestamp 即时间戳,接收方根据其来回放音视频。时间戳的间隔由传输的数据类型(或具体的应用场景)确定,比如音频通常以 125µs(8kHz)的时钟频率进行采样,而视频则以 90kHz 的时钟频率采样。这里时间戳的初始值也是随机选取的,是一种相对时间戳。 * SSRC (Synchronization source) 即同步源标识符。RTP传输session的ID,相同 RTP 会话中的 SSRC 是唯一的,且生成的 SSRC 也需要保持随机。尽管多个源选中同一个标识符的概率很低,但具体实现时仍然需要这种情况发生,即避免碰撞。 * CSRC (Contributing source) 在 MCU 混流时使用,表示混流出的新的音视频流的 SSRC 是由哪些源 SSRC 贡献的。根据上述 CC 得知,我们最多可以同时混 15 路音视频流。 * Extension header 即头部扩展,包含了音视频的一些额外信息,比如视频旋转角度。 ## PT 类型 ``` PT encoding media type clock rate channels name (Hz) ___________________________________________________ 0 PCMU A 8,000 1 1 reserved A 2 reserved A 3 GSM A 8,000 1 4 G723 A 8,000 1 5 DVI4 A 8,000 1 6 DVI4 A 16,000 1 7 LPC A 8,000 1 8 PCMA A 8,000 1 9 G722 A 8,000 1 10 L16 A 44,100 2 11 L16 A 44,100 1 12 QCELP A 8,000 1 13 CN A 8,000 1 14 MPA A 90,000 (see text) 15 G728 A 8,000 1 16 DVI4 A 11,025 1 17 DVI4 A 22,050 1 18 G729 A 8,000 1 19 reserved A 20 unassigned A 21 unassigned A 22 unassigned A 23 unassigned A dyn G726-40 A 8,000 1 dyn G726-32 A 8,000 1 dyn G726-24 A 8,000 1 dyn G726-16 A 8,000 1 dyn G729D A 8,000 1 dyn G729E A 8,000 1 dyn GSM-EFR A 8,000 1 dyn L8 A var. var. dyn RED A (see text) dyn VDVI A var. 1 Table 4: Payload types (PT) for audio encodings ``` **视频多媒体类型** ``` PT encoding media type clock rate name (Hz) _____________________________________________ 24 unassigned V 25 CelB V 90,000 26 JPEG V 90,000 27 unassigned V 28 nv V 90,000 29 unassigned V 30 unassigned V 31 H261 V 90,000 32 MPV V 90,000 33 MP2T AV 90,000 34 H263 V 90,000 35-71 unassigned ? 72-76 reserved N/A N/A 77-95 unassigned ? 96-127 dynamic ? dyn H263-1998 V 90,000 ``` |负载类型| 编码名称| 时钟频率| 通道数| SDD描述中m字段的media项| |---|---|---|---|---| |4| G.723| 8k HZ| 1| audio| |8| PCMA(G.711 A)| 8k HZ| 1| audio| |9| G722| 8k HZ| 1| audio| |18| G.729| 8k HZ| 1| audio| |20| SVACA(SVAC音频)| 8k HZ| 1| audio| |96| PS| 90k HZ|| video| |97| MPEG-4||| video| |98| H.264|| |99| SAVC(SVAC视频)| |