关于RTSP_RTP_RTCP协议的深刻初步介绍

供稿:hz-xin.com     日期:2025-01-13
实时流传输协议(RTSP)是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学、网景和RealNetworks公司提交的IETF RFC标准。该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP完成数据传输。

实时传输协议(RTP)是由IETF的多媒体传输工作小组1996年在RFC 1889中公布的。RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。它是创建在UDP协议上的。

实时传输控制协议(RTCP)是实时传输协议(RTP)的一个姐妹协议。RTCP由RFC 3550定义(取代作废的RFC 1889)。RTP使用一个偶数UDP端口号;而RTCP则使用RTP的下一个端口号,也就是一个奇数端口号。RTCP与RTP联合工作,RTP实施实际数据的传输,RTCP则负责将控制包送至电话中的每个人。其主要功能是就RTP正在提供的服务质量做出反馈。

这三个协议相辅相成,RTSP负责定义具体的控制信息、操作方法、状态码,以及描述与RTP之间的交互操作。RTSP传输的一般是TS、MP4格式的流,其传输一般需要2~3个通道,命令和数据通道分离。使用RTSP协议传输流媒体数据需要有专门的媒体播放器和媒体服务器,也就是需要支持RTSP协议的客户端和服务器。

RTP协议负责对流媒体数据进行封包并实现媒体流的实时传输,即它按照RPT数据包格式来封装流媒体数据,并利用与它绑定的协议进行数据包的传输。RTP在端口号1025到65535之间选择一个未使用的偶数UDP端口号,而在同一次会话中的RTCP则使用下一个基数UDP端口号。RTP默认端口号5004,所以RTCP端口号默认为5005。

RTCP协议是用UDP来传送的,但RTCP封装的仅仅是一些控制信息,因而分组很短,所以可以将多个RTCP分组封装在一个UDP包中。RTCP有如下五种分组类型:发送端报告包(SR)、接收者报告包(RR)、源描述包(SDES)、断开RTCP包(BYE)和应用特定函数(APP)。

时间戳是RTP首部中说明数据包时间的同步信息,是数据能以正确的时间顺序恢复的关键。时间戳的值给出了分组中数据的第一个字节的采样时间,要求发送方时间戳的时钟是连续、单调增长的,即使在没有数据输入或发送数据时也是如此。在静默时,发送方不必发送数据,保持时间戳的增长,在接收端,由于接收到的数据分组的序号没有丢失,就知道没有发生数据丢失,而且只要比较前后分组的时间戳的差异,就可以确定输出的时间间隔。

RTCP中的SR控制分组包含NTP(网络时间)时间戳和RTP时间戳可用于同步音视频媒体流。RTP时间戳是依据邻近的RTP数据包中的时间戳结合NTP时间差得到的。

影响时延的因素有多个方面,其中有些是固定时延,如编解码网络速率等;有些是变化的,如防抖动缓冲等。固定的时延可以通过改变编解码方式和提高网络速率来改变,而变化时延通常采用提高转发效率来提高。

到达时刻抖动J的定义:一对包中接收机相对发射机的时间跨度差值的平均偏差。该值等于两个包相对传输时间的差值,相对传输时间是指包的RTP时间标志和到达时刻接收机时钟,以同一单位的差值。若Si是包i的RTP时间标志,Ri是包i以RTP时间标志单位的到达时刻值。对于两个包i和j,D可以表达为:D(i,j) = (Rj - Ri) - (Sj - Si) = (Rj - Sj) - (Ri - Si)。

到达时刻抖动可以在收到从源SSRC_n来的每个数据包i后连续计算,利用该包和前一包i-1的偏差D。根据公式J(i) = J(i-1) + (|D(i-1,i)| - J(i-1))/16计算。

丢包率是通过计算接收包数量和发送包数量的比率得到。发送方和接收方都需要定期更新丢包率,并通过RTCP报文发送给对方。

SIP协议(会话初始协议)是由IETF制定的多媒体通信协议。它是一个基于文本的应用层控制协议,用于创建、修改和释放一个或多个参与者的会话。

SDP(会话描述协议)是一个用来描述多媒体会话的应用层控制协议,它是一个基于文本的协议,用于会话建立过程中的媒体类型和编码方案的协商等。

在实际应用中,RTSP先于RTP使用,SIP和SDP在构建会话和描述媒体流时起关键作用。了解这些协议的使用流程有助于更高效地进行多媒体通信。

流媒体协议RTP、RTSP、RTMP、HLS、SRT、WebRTC全面分析
RTP和RTCP是一对组合,前者负责实时数据传输,后者监控服务质量。RTP基于UDP,提供时间戳和保证实时性的技术,RTCP则收集信息以动态调整传输质量。RTSP作为应用层协议,可选择多种传输机制,支持远程控制功能,如直播点播操作。RTMP是Adobe开发的协议,适合Flash播放,基于TCP,具有低延迟,但协议相对老旧,连接...

流媒体协议有哪些
问题九:实时流媒体RTSP协议的开发,该看哪些书籍?可以参考live555代码库,其中包括了RTSP协议的开发和实现。此外,如果要做流媒体客户端,可能会用到directshow。问题十:移动流媒体的控制协议 移动流媒体使用的特有的应用和控制协议有RTP\/RTCP、RSVP和RTSP。RTP\/RTCP支持实时数据的传输和反馈,RSVP允许数据...

流媒体协议RTP、RTSP、RTMP、HLS、SRT、WebRTC​全面分析
关键在于实时传输和顺序传输的区别,这里我们将介绍RTP、RTSP、RTMP、HLS、SRT和WebRTC等几种常见的流媒体技术。首先,理解网络分层模型至关重要,所有协议都对应特定层次。在选择传输协议TCP或UDP时,需考虑应用场景:TCP提供可靠连接,适用于文件传输,而UDP则适用于实时应用,如直播。RTP与RTCP一起工作,...

音视频直播——HTTP\/RTSP\/RTMP协议的区别
RTSP、RTCP、RTP分别作为实时流协议、控制协议和数据协议,它们共同构建了音视频直播的基础,适用于不同的应用场景和需求。RTSP为实时流媒体提供受控和点播机制,是流媒体表示协议的核心,负责定义控制消息、操作方法和状态码,与RTP交互以实现播放、暂停和快进等功能。RTCP与RTP配合工作,确保按序传输数据包...

HTTP、RTSP、RTMP、RTP,RTCP,HLS,MMS的概念、区别、用法
RTSP是实时流传输协议,适用于点播和直播,公开维护,支持TS和MP4格式。与HTTP不同,RTSP是流媒体协议,通过2-3个通道传输,且数据和命令在同一通道。RTMP是Adobe私有的实时消息传输协议,主要用于直播,传输flv和f4v格式。它使用单通道,提供流媒体支持,但协议细节未公开。RTCP作为RTSP和RTP的控制协议,...

移动流媒体的控制协议
流媒体使用的特有的应用和控制协议有RTP\/RTCP、RSVP和RTSP。(1)实时传输协议(RTP)和实时控制协议(RTCP)。RTP\/RTCP是基于IP的应用层协议,支持实时数据(音频、视频流)的传输,其思想是传输实时数据的同时发送一些关于传输和接收的质量的反馈信息,这两个任务分别由RTP和RTCP完成。RTP提供一些机制用于...

RTSP\/RTP、HLS、RIST、SRT、RTMP傻傻分不清
RTSP负责控制传输,RTP传输媒体数据,而RTCP则是对RTP的监控和控制。HLS是Apple的协议,通过Web服务器提供非实时的流媒体服务,客户端通过索引文件获取媒体文件。SRT由Haivision和Wowza开发,是点对点的UDP协议,适合复杂网络环境,延迟控制优于RTMP。RTMP由Adobe设计,适用于服务器与Flash播放器之间的实时传输,...

视频流介绍 RTP\/RTCP\/RTSP\/WebRTC\/RTMP\/HLS
RTCP (Real-time Transport Control Protocol)RTCP作为RTP的补充,提供实时传输控制,支持双向通信,常用于视频会议等场景,与RTP共同确保流媒体传输的实时性。RTSP (Real Time Streaming Protocol)RTSP用于控制流媒体的传输,双向协议,支持点播和直播,可选择多种传输通道,适合IPTV,但延迟相对较高。WebRTC...

...RTSP协议熟不熟,但我还是想问一下:rtsp与rtcp,rtp有什么关系?_百度...
通常RTCP会采用与RTP相同的分发机制,向会话中的所有成员周期性地发送控制信息,应用程序通过接收这些数据,从中获取会话参与者的相关资料,以及网络状况、分组丢失概率等反馈信息,从而能够对服务质量进行控制或者对网络状况进行诊断。RTCP协议的功能是通过不同的RTCP数据报来实现的,主要有如下几种类型:SR:...

rtmp, rtsp, webrtc 简单的关系总结
RTSP协议,以客户端方式工作,提供播放、暂停、后退、前进等流媒体操作。RTSP负责控制信息、操作方法、状态码以及与RTP的交互操作。RTSP主要控制实时数据的发送,自身不传输流媒体数据,需要依赖RTP\/RTCP协议完成。RTMP,基于TCP,是实时消息传输协议,用于Flash\/AIR平台与流媒体\/交互服务器之间的音视频数据通信...