当前位置:首页 » 新媒体运营 » 正文

延迟抖动是什么意思,RTP 协议详解

5477 人参与  2022年04月26日 10:30  分类 : 新媒体运营  评论

概述:

实时传送协议(Real-time Transport Protocol或简写RTP,也可以写成RTTP)是一个网络传输协议,它是由IETF的多媒体传输工作小组年在RFC 中公布的。

RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。它一开始被设计为一个多播协议,但后来被用在很多单播应用中。RTP协议常用于流媒体系统(配合RTCP协议或者RTSP协议)。因为RTP自身具有Time stamp所以在ffmpeg 中被用做一种formate.

RTP协议格式:

    
                                
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |V=|P|X| CC |M| PT | sequence number |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | timestamp |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | synchronization source (SSRC) identifier |
 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
 | contributing source (CSRC) identifiers |
 | .... |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
上图引自rfc,由上图中可知道RTP报文由两个部分构成--RTP报头和RTP的负载:

RTP报文由两部分组成:报头和有效载荷。RTP报头格式如图.所示,其中:

.V:RTP协议的版本号,占位,当前协议版本号为。

. P:填充标志,占位,如果P=,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。

. X:扩展标志,占位,如果X=,则在RTP报头后跟有一个扩展报头。

. CC:CSRC计数器,占位,指示CSRC 标识符的个数。

. M: 标记,占位,不同的有效载荷有不同的含义,对于视频,标记一帧的结束;对于音频,标记会话的开始。

. PT: 有效载荷类型,占位,用于说明RTP报文中有效载荷的类型,如GSM音频、JPEM图像等,在流媒体中大部分是用来区分音频流和视频流的,这样便于客户端进行解析。

. 序列号:占位,用于标识发送者所发送的RTP报文的序列号,每发送一个报文,序列号增。这个字段当下层的承载协议用UDP的时候,网络状况不好的时候可以用来检查丢包。同时出现网络抖动的情况可以用来对数据进行重新排序,在helix服务器中这个字段是从开始的,同时音频包和视频包的sequence是分别记数的。

. 时戳(Timestamp):占位,时戳反映了该RTP报文的第一个八位组的采样时刻。接收者使用时戳来计算延迟和延迟抖动,并进行同步控制。

. 同步信源(SSRC)标识符:占位,用于标识同步信源。该标识符是随机选择的,参加同一视频会议的两个同步信源不能有相同的SSRC。

. 特约信源(CSRC)标识符:每个CSRC标识符占位,可以有~个。每个CSRC标识了包含在该RTP报文有效载荷中的所有特约信源。

如果扩展标志被置位则说明紧跟在报头后面是一个头扩展,其格式如下:

    
                                
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | defined by profile | length |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | header extension |
 | .... |

RTP协议的用途:

概述中已经基本阐述了RTP协议的用途了,其主要用于在互联网上传递音频和视频的标准数据包。在当前三网融合中RTP可以用来承载TS流,进行电视媒体数据的传播。RTP可以用来传送像TS流这种自身已经具有formate的媒体流,同时也可以用来承载AVC,AAC等去除了fromate的媒体流,这时rtp协议可被看做为一种formate,这种形式最少常见于helix 流媒体服务器的rtp流。其控制流由RTSP协议来提供。

RTP协议的使用:

RTP 协议详解


RTP的使用实例之一如上图:

上面是某省IPTV2.0早期的一个数据包的情况。从包中可以看出RTP是怎么和RTSP配合一起使用的。从包到为RTSP的协商过程,RTSP在PLAYer命令后数据包就到来。紧跟其后包就是一个mpeg 的PES包,它是有由rtp来承载的TS来形成。从在包中就可以更加清析的看出这个RTP流的情况。其PT即payload type为mpeg transport streams 也就是ts流,其SSRC为:xDc,其Seq号为,从中也可以看出对于一个RTP流其SEQ号可以开始于一个随机的数值,但是肯定是逐包递增的。下图为包的展开图:

RTP 协议详解


从中可以看出承载RTP的为UDP的数据流这个包中有x标志位为则说明其有 header extensions.其header extensions为最下面。extension 的 profile为,长度为:内容如上图最后两部分。

本文链接:https://www.woshiqian.com/post/95880.html

百度分享获取地址:https://share.baidu.com/code
延迟抖动是什么意思  

我是钱微信/QQ:5087088

广告位、广告合作QQ:5087088

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

       

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。