少尉

嗯。

 

RTP/RTCP协议介绍

 

RTP/RTCP协议介绍

分类: 流媒体 19人阅读 评论(0) 收藏 举报

1流媒体协议

       当前在Internet上传输音频和视频等信息主要有两种方式:下载和流式传输。

下载情况下,用户需要先下载整个媒体文件到本地,然后才能播放媒体文件。流式传输是指传输之前首先对多媒体进行预处理(降低质量和高效压缩),然后使用缓存系统来保证数据连续正确地进行传输。使用流式传输可以边下载边观看流媒体节目,可以实现网上直播、视频会议等。

目前,支持流媒体传输的协议主要有:实时传输协议RTP、实时传输控制协议RTCP和实时流协议RTSP(Real-time Streaming Protocol) 等,此类协议在IP/TCP协议中的位置如图1所示。


图1流媒体协议在IP/TCP协议中的位置

2 RTP/RTCP协议

       RTP协议是IEIF提出的标准,对应的RFC文档为RFC3550。如图1所示,RTP 为实时应用提供端到端的数据运输,但不提供任何服务质量的保证,服务质量由RTCP来提供。从应用开发者的角度看,RTP 应当是应用层的一部分。在应用的发送端,开发者必须编写用 RTP 封装分组的程序代码,然后把 RTP 分组交给 UDP 插口接口。在接收端,RTP 分组通过 UDP 插口接口进入应用层后,还要利用开发者编写的程序代码从 RTP 分组中把应用数据块提取出来。

       RTP的工作机制为:当应用程序建立一个RTP会话时,应用程序将确定一对目的传输地址。目的传输地址由一个网络地址和一对端口组成,有两个端口:一个给RTP包,一个给RTCP包,使得RTP/RTCP数据能够正确发送。RTP数据发向偶数的UDP端口,而对应的控制信号RTCP数据发向相邻的奇数UDP端口(偶数的UDP端口+1),这样就构成一个UDP端口对。 RTP的发送过程如下,接收过程则相反。

       1) RTP协议从上层接收流媒体信息码流(如H.263),封装成RTP数据包;RTCP从上层接收控制信息,封装成RTCP控制包。

       2) RTP将RTP 数据包发往UDP端口对中偶数端口;RTCP将RTCP控制包发往UDP端口对中的奇数端口。

       RTP分组只包含RTP数据,而控制是由RTCP协议提供。RTP在1025到65535之间选择一个未使用的偶数UDP端口号,而在同一次会话中的RTCP则使用下一个奇数UDP端口号。端口号5004和5005分别用作RTP和RTCP的默认端口号。RTP分组的首部格式如图2所示,其中前12个字节是必须的。


图2RTP分组的首部格式

       RTCP 协议的主要功能是:服务质量的监视与反馈、媒体间的同步,以及多播组中成员的标识。RTCP 分组也使用 UDP 传送,但 RTCP 并不对声音或视像分组进行封装。可将多个 RTCP 分组封装在一个 UDP 用户数据报中。RTCP 分组周期性地在网上传送,它带有发送端和接收端对服务质量的统计信息报告。

       RTCP包含五种分组类型

1)结束分组 BYE 表示关闭一个数据流。

2)特定应用分组 APP 使应用程序能够定义新的分组类型。

3)接收端报告分组 RR 用来使接收端周期性地向所有的点用多播方式进行报告。

4)发送端报告分组 SR 用来使发送端周期性地向所有接收端用多播方式进行报告。

5)源点描述分组 SDES 给出会话中参加者的描述。


posted on   moonvan  阅读(13936)  评论(0编辑  收藏  举报

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架

导航

统计

点击右上角即可分享
微信分享提示