RTSP协议学习笔记
- 格式:doc
- 大小:3.03 MB
- 文档页数:26
几种常见音视频传输协议使用总结在音视频传输领域,有多种常见的协议被用于在网络中传输音视频数据。
每种协议都有其独特的特点和适用范围。
下面将对其中几种常见音视频传输协议进行总结。
RTP是一种用于实时传输音视频数据的协议。
它提供了时间戳、序列号、同步源标识等功能,以确保音视频数据能够准确有序地传输。
RTP协议通常与RTCP(RTP Control Protocol)一起使用,后者用于监控数据质量、同步参与者等。
RTP适用于对实时性要求较高的音视频应用,如WebRTC、视频会议等。
2. RTSP(Real-Time Streaming Protocol)RTSP是一种基于客户端-服务端模型的流媒体控制协议。
它允许客户端向服务器发送命令,控制流媒体的播放、暂停、停止等操作。
RTSP常用于流媒体服务器和播放器之间的控制通信,如IP摄像头、网络电视等。
3. SIP(Session Initiation Protocol)5. HTTP Live Streaming(HLS)HLS是一种基于HTTP的流媒体传输协议。
它将整个音视频文件切分成多个小的TS(Transport Stream)分片文件,并使用M3U8文件来描述这些分片的信息和顺序。
HLS适用于优化大规模流媒体内容的传输,如在线直播、点播,以及移动端的流媒体传输。
6. RTP over UDP/TCPRTP协议通常在UDP(User Datagram Protocol)或TCP (Transmission Control Protocol)协议上运行。
使用UDP时,RTP提供了实时性高、延迟低的优势,适用于对数据准确性要求不高的应用。
而使用TCP时,RTP可以提供可靠性,保证音视频数据的有序性和完整性,适用于对数据准确性要求较高的应用。
综上所述,不同的音视频传输协议适用于不同的应用场景。
RTP和RTSP适用于流媒体的实时传输和控制;SIP和WebRTC适用于实时通信应用;HLS适用于优化大规模流媒体传输;而RTP over UDP/TCP则根据应用的具体需求选择不同的传输方式。
以前但凡我所到过的网吧,无论多正规多大的网吧没有一家的影院没有被搞定的,今天碰到类似于“rtsp://192.168.0.238/smil/SHARE/9815/1.smi”这种协议的还是第一次,,,差点难住了。
(我喜欢用PMP看电影电视剧,如果全靠下载,我出不起这个钱,通常我是直接去网吧拷,,如果出了新电影,我就留言给网管让他们更新上,然后我接着拷。
呵呵~)对于rtsp 这种协议的链接,我们只需要把链接的“rtsp”改为“http”,其它不用改,把复制后的的地址直接复制到浏览器,打开它,然后查看该页面的源文件,即可得到真实的地址。
这个smi 文件格式实则其中包含了真实的电影地址。
具体操作容我下面的讲解。
楼上几位朋友后谈到地址摸不到,看不到剪辑来源,我了解,很多网吧的影院播放器是采取“内镶式”的,不是外部播放器,没有菜单栏,右键也几乎没有,这的确难到了不少修干翻剪辑信息的朋友。
其实方法有很多,这里,我教大家一个万能法:采用数据包嗅探!即可把地址翻出来。
这样的软件多如牛毛。
比如“影音神探”。
打开软件,点击嗅探,然后它就在后台时刻准备着捕捉新的数据,你此时用正常的方法去网吧电影网页里打开电影看,当电影打开后,软件就自动捕捉到电影地址,并用红色标记出来,你右键复制出来即可。
----2009-11-14 20:48 | 回复将修改后的地址放到浏览器浏览没有反映是怎么回事 ,麻烦请告诉我,发送到我邮箱吧----回复这位朋友,你把改过后的地址复制到地址栏后,点击转到,打开它,但是没有反映对不对?很好,这就对了,此时,你点击浏览器中的“查看”,里面有个“查看源文件”,此时你就可以看到类似于(以我这为例)【<smil> <body> <video src="file:\\192.168.0.238\CnnipMovie_E$\[C][欧美]叛狱风云DVD\01.rmvb" /> </body></smil>】这样的地址,那么此片真实地址就出来了!好,说到这里我们要学会举一反三触类旁通,当你嗅探出此片的真实地址的同时,也象征着此网吧的电影已经被你拿下了!为什么这么讲,好吧我们可以从上面地址分析得出,此网吧的电影服务器地址就是“\\192.168.0.238\CnnipMovie_E$”此网吧的电影存放文件夹地址,复制到我的电脑上面的地址栏,转到,即可直接进入文件夹,看到没,电影全部出来了,直接点击复制!这个文件夹里的电影有可能是该网吧电影服务器里的所有电影,也有可能是其中某一个系列的电影,比如这个“CnnipMovie”文件夹里有可能装的全部是欧美片,那么此时,必定还存在其他文件夹,一个网吧里不可能只有一种电影,其它文件夹名字我们不知道,电影文件夹的根目录又不能进,那么此时,你就需要点击多个不同类型的电影,经过上面那些步骤后,如果得到的IP地址后面的名字不同之前获取的那个地址,那么可以肯定这个文件夹里又存有不少东东~~~ 用此方法可以一一把该网吧里的电影文件夹全给翻出来!!!!只不过步骤稍微多了点,但毕竟电影嘛也就那么几种风格,要不了几分钟,,,呵呵,全弄出来。
RTMP、RTSP、HTTP视频协议详解(附:直播流地址、播放软件)⼀、RTMP、RTSP、HTTP协议这三个协议都属于互联⽹ TCP/IP 五层体系结构中应⽤层的协议。
理论上这三种都可以⽤来做视频直播或点播。
但通常来说,直播⼀般⽤ RTMP、RTSP。
⽽点播⽤ HTTP。
下⾯分别介绍下三者的特点。
1,RTMP协议(1)是流媒体协议。
(2)RTMP协议是 Adobe 的私有协议,未完全公开。
(3)RTMP协议⼀般传输的是 flv,f4v 格式流。
(4)RTMP⼀般在 TCP 1个通道上传输命令和数据。
2,RTSP协议(1)是流媒体协议。
(2)RTSP协议是共有协议,并有专门机构做维护。
.(3)RTSP协议⼀般传输的是 ts、mp4 格式的流。
(4)RTSP传输⼀般需要 2-3 个通道,命令和数据通道分离。
3,HTTP协议(1)不是是流媒体协议。
(2)HTTP协议是共有协议,并有专门机构做维护。
(3)HTTP协议没有特定的传输流。
(4)HTTP传输⼀般需要 2-3 个通道,命令和数据通道分离。
⼆、可⽤的直播流地址通常我们进⾏ RTMP/RTSP 开发时,除了可以⾃⼰搭建视频服务器来进⾏测试外。
也可以直接使⽤⼀些电视台的直播地址,省时省⼒。
下⾯是我收集汇总的⼀些视频直播地址,亲测可⽤。
1,RTMP协议直播源⾹港卫视:rtmp:///live/hks2,RTSP协议直播源珠海过澳门⼤厅摄像头监控:rtsp://218.204.223.237:554/live/1/66251FC11353191F/e7ooqwcfbqjoo80j.sdp⼤熊兔(点播):rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov3,HTTP协议直播源⾹港卫视:/live/hks/playlist.m3u8CCTV1⾼清:/hls/cctv1hd.m3u8CCTV3⾼清:/hls/cctv3hd.m3u8CCTV5⾼清:/hls/cctv5hd.m3u8CCTV5+⾼清:/hls/cctv5phd.m3u8CCTV6⾼清:/hls/cctv6hd.m3u8苹果提供的测试源(点播):/streaming/examples/bipbop_4x3/gear2/prog_index.m3u8三、播放软件推荐:VLC要播放视频直播流,或者测试⼀个直播视频地址是否可以使⽤。
RTSP协议范文RTSP(Real Time Streaming Protocol)是一种用于控制实时流媒体传输的应用层协议。
它提供了用于发送和接收媒体数据的控制信令,可以用于实现实时音视频的传输和控制。
本文将介绍RTSP协议的基本原理、工作过程以及其在网络中的应用。
一、RTSP协议的基本原理二、RTSP协议的工作过程1.建立连接:客户端首先与服务器建立TCP连接。
通常使用默认的RTSP端口(554)进行连接。
客户端发送一个OPTIONS请求给服务器,以了解服务器支持的RTSP方法和协议版本。
2.描述会话:客户端发送一个DESCRIBE请求给服务器,请求指定媒体的描述信息。
服务器返回一个包含媒体描述的响应。
客户端根据描述信息选择合适的媒体流。
3.创建会话:客户端发送一个SETUP请求给服务器,请求创建一个媒体会话。
客户端可以选择单播、组播或混合模式的传输。
服务器返回一个包含传输地址和服务器端口的响应。
4.控制媒体:客户端发送PLAY、PAUSE、TEARDOWN等请求给服务器来控制媒体的播放和暂停。
服务器根据请求对媒体进行相应的操作。
5.关闭会话:客户端发送一个TEARDOWN请求给服务器,请求关闭媒体会话。
服务器返回一个响应来确认关闭。
三、RTSP协议在网络中的应用1.直播和点播:RTSP协议可以用于直播和点播的实时流媒体传输。
客户端可以使用RTSP协议与服务器建立连接,并控制媒体的播放、暂停和停止。
2.视频监控:RTSP协议可以用于视频监控系统中的流媒体传输。
监控摄像头可以将实时视频流通过RTSP协议发送到监控中心,监控中心可以使用RTSP协议进行控制和管理。
3.视频会议:RTSP协议可以用于视频会议系统中的实时流媒体传输。
参与者可以通过RTSP协议建立连接,并进行视频传输和控制。
4.多媒体广告:RTSP协议可以用于多媒体广告系统中的实时流媒体传输。
广告服务器可以使用RTSP协议将广告内容发送到终端设备,并进行控制和管理。
RTSP协议详解中文版RTSP(Real Time Streaming Protocol)是一种用于控制实时流媒体的应用层协议,用于在客户端和服务器之间进行媒体资源的传输和控制。
它工作在TCP或UDP上,并且可以与各种流媒体服务器和客户端软件兼容。
RTSP协议的通信模型是基于客户端和服务器之间的请求和响应。
客户端通过发送请求来向服务器发送控制指令,服务器则通过发送响应来告知客户端请求的结果。
请求和响应是基于文本的,并且使用类似于HTTP的格式。
RTSP协议的请求由方法、URL和协议版本组成。
常见的请求方法包括DESCRIBE、SETUP、PLAY、PAUSE、TEARDOWN等。
DESCRIBE方法用于获取媒体资源的描述信息,SETUP方法用于建立与服务器的连接,PLAY方法用于开始播放,PAUSE方法用于暂停播放,TEARDOWN方法用于关闭连接。
RTSP协议的响应由状态码、状态描述和协议版本组成。
常见的状态码包括200 OK,表示请求成功;401 Unauthorized,表示未经授权;404 Not Found,表示资源不存在等。
状态码和状态描述用于告知客户端请求的结果。
RTSP协议还支持使用SDP(Session Description Protocol)来描述媒体资源。
SDP是一种用于描述会话信息的协议,它可以描述媒体资源的类型、媒体格式、传输地址等。
客户端可以使用DESCRIBE方法获取媒体资源的SDP描述,从而可以解析和播放媒体资源。
RTSP协议的优点包括灵活性和互操作性。
由于RTSP协议本身只负责控制,而不直接传输媒体数据,因此可以适用于各种不同的流媒体传输协议,如RTP、RTCP、RTMP等。
同时,RTSP协议还可以与其他媒体相关的协议配合使用,如RTSP over HTTP、RTSP over SSL等。
总结起来,RTSP协议是一种用于实时流媒体控制的协议,它可以实现实时流媒体的连续控制和广泛的交互性。
竭诚为您提供优质文档/双击可除rtsp协议,c语言篇一:Rtsp协议学习笔记第一部分:总体概述一、流媒体概念流媒体包含广义和狭义两种内涵:广义上的流媒体指的是使音频和视频形成稳定和连续的传输流和回放流的一系列技术、方法和协议的总称,即流媒体技术;狭义上的流媒体是相对于传统的下载-回放方式而言的,指的是一种从internet上获取音频和视频等多媒体数据的新方法,它能够支持多媒体数据流的实时传输和实时播放。
通过运用流媒体技术,服务器能够向客户机发送稳定和连续的多媒体数据流,客户机在接收数据的同时以一个稳定的速率回放,而不用等数据全部下载完之后再进行回放。
二、流媒体协议实时传输协议(Real-timetransportprotocol,Rtp)是在internet上处理多媒体数据流的一种网络协议,利用它能够在一对一(unicast,单播)或者一对多(multicast,多播)的网络环境中实现传流媒体数据的实时传输。
Rtp通常使用udp来进行多媒体数据的传输,但如果需要的话可以使用tcp或者atm等其它协议,整个Rtp协议由两个密切相关的部分组成:Rtp数据协议和Rtp控制协议。
实时流协议(Realtimestreamingprotocol,Rtsp)最早由Realnetworks 和netscape公司共同提出,它位于Rtp和Rtcp之上,其目的是希望通过ip网络有效地传输多媒体数据。
实时流传输协议Rtsp(Real-timestreamingprotocol,RFc2326)、实时传输协议(RtpReal-timetransferprotocol,RFc3550)、实时传输控制协议(RtcpReal-timetransportcontrolprotocol,RFc1889)、会话描述协议(sdpsessiondescriptionprotocol,RFc2327)。
目前在流媒体传输技术中使用最多的就是基于Rtsp/Rtp的流媒体传输。
rtsp协议书介绍甲方(提供方):_____________________乙方(使用方):_____________________鉴于甲方拥有合法的RTSP(Real Time Streaming Protocol)流媒体服务提供能力,乙方需要使用甲方提供的RTSP服务进行实时音视频传输。
为明确双方的权利和义务,特订立本协议。
第一条定义1.1 RTSP:即实时流媒体协议,是一种网络控制协议,用于建立和控制音视频数据的实时数据流。
1.2 流媒体服务:指通过RTSP协议传输的音视频数据服务。
1.3 服务期限:指本协议约定的乙方使用甲方RTSP服务的时间范围。
第二条服务内容2.1 甲方同意在服务期限内向乙方提供符合行业标准的RTSP流媒体服务。
2.2 乙方应按照甲方提供的技术要求和操作指南使用RTSP服务。
第三条服务期限3.1 本协议服务期限自____年____月____日起至____年____月____日止。
第四条费用及支付方式4.1 乙方应按照本协议约定向甲方支付服务费用,具体金额为:___________。
4.2 乙方应在本协议签订之日起____天内支付首期服务费用,后续费用按照____支付。
第五条甲方的权利和义务5.1 甲方有权根据本协议约定收取服务费用。
5.2 甲方应保证所提供的RTSP服务的稳定性和安全性。
5.3 甲方应提供必要的技术支持和咨询服务。
第六条乙方的权利和义务6.1 乙方有权按照本协议约定使用甲方提供的RTSP服务。
6.2 乙方应按时支付服务费用。
6.3 乙方应遵守甲方提供的使用指南和操作规范,不得进行任何可能影响服务稳定性和安全性的行为。
第七条保密条款7.1 双方应对在履行本协议过程中知悉的对方商业秘密予以保密。
7.2 未经对方书面同意,任何一方不得向第三方披露、提供或允许第三方使用上述商业秘密。
第八条违约责任8.1 如一方违反本协议约定,应承担违约责任,并赔偿对方因此遭受的损失。
RTSP协议详解中文版RTSP(Real Time Streaming Protocol)是一种用于控制媒体流传输的应用层协议。
它在传输数据之前,通过建立控制信道,协商会话参数,完成媒体流的控制和管理。
本文将详细介绍RTSP协议的各个方面。
RTSP协议中,客户端发送请求,服务器回复响应,请求和响应的消息格式基于文本,并且可以使用多种传输协议(如TCP或UDP)进行通信。
RTSP协议定义了丰富的方法(Method),以便客户端可以控制会话的各个方面。
常用的方法包括OPTIONS,DESCRIBE,SETUP,PLAY和TEARDOWN。
OPTIONS方法用于查询服务器支持的方法,客户端可以通过此方法获取服务器的能力信息。
DESCRIBE方法用于获取媒体会话的描述信息,客户端可以通过此方法获得媒体流的信息,例如编码格式和媒体地址。
SETUP方法用于建立媒体流的传输通道,客户端可以通过此方法告知服务器自己的传输能力,并请求服务器向其指定的地址发送数据。
服务器可以根据实际情况来进行响应,例如选择合适的传输协议(如TCP或UDP)以及传输端口。
PLAY方法用于开始播放媒体流,服务器会将实时传输协议(RTP)数据发送给客户端。
客户端可以通过TEARDOWN方法来终止会话,服务器在接收到TEARDOWN请求后会释放资源并关闭连接。
总结起来,RTSP协议是一种用于控制媒体流传输的应用层协议。
它使用文本消息格式,在客户端和服务器之间建立控制信道,并通过方法来实现会话管理和媒体流的控制。
RTSP协议具有可扩展性和灵活性,可以与其他协议结合使用,适用于不同的应用场景。
rtsp协议详解RTSP(Real Time Streaming Protocol)是一种用于控制多媒体数据流传输的网络协议。
它是一种应用层协议,通常用于流媒体服务器和客户端之间的通信,以便实现实时音频和视频的传输。
RTSP协议是由IETF(Internet Engineering Task Force)制定的,它的设计目的是为了支持实时多媒体会话,如实时音频和视频的传输。
RTSP协议的工作原理是通过建立和维护一个会话来控制多媒体数据流的传输。
它使用客户端-服务器模型,客户端和服务器之间通过RTSP协议进行通信。
在建立会话时,客户端向服务器发送RTSP请求,服务器响应这些请求,并建立一个会话来传输多媒体数据。
在会话期间,客户端可以向服务器发送控制命令,如播放、暂停、停止等,以控制多媒体数据流的传输。
RTSP协议使用的是TCP或UDP协议进行数据传输。
在建立会话时,客户端和服务器之间会协商使用的传输协议和端口号。
一般情况下,实时多媒体数据的传输会使用UDP协议,而控制命令的传输会使用TCP协议。
这样可以保证实时多媒体数据的传输稳定性和实时性。
RTSP协议的消息格式包括请求消息和响应消息。
请求消息由客户端发送给服务器,用于请求建立会话或发送控制命令;响应消息由服务器发送给客户端,用于响应客户端的请求。
请求消息和响应消息都包括起始行、消息头和消息体。
起始行包括请求行或状态行,消息头包括一些控制信息,消息体包括一些实体数据。
RTSP协议支持多种控制命令,如PLAY、PAUSE、TEARDOWN等。
这些控制命令可以用于控制多媒体数据流的传输,如开始播放、暂停播放、停止播放等。
这样可以让客户端和服务器之间实现灵活的控制和交互。
总的来说,RTSP协议是一种用于控制实时多媒体数据流传输的网络协议。
它通过建立和维护会话来实现多媒体数据的传输和控制,支持多种控制命令,可以实现客户端和服务器之间的灵活交互。
在实际应用中,RTSP协议被广泛应用于流媒体服务器和客户端之间的通信,为实时音频和视频的传输提供了有效的支持。
第一部分: 总体概述一、流媒体概念流媒体包含广义和狭义两种内涵:广义上的流媒体指的是使音频和视频形成稳定和连续的传输流和回放流的一系列技术、方法和协议的总称,即流媒体技术;狭义上的流媒体是相对于传统的下载-回放方式而言的,指的是一种从Internet 上获取音频和视频等多媒体数据的新方法,它能够支持多媒体数据流的实时传输和实时播放。
通过运用流媒体技术,服务器能够向客户机发送稳定和连续的多媒体数据流,客户机在接收数据的同时以一个稳定的速率回放,而不用等数据全部下载完之后再进行回放。
二、流媒体协议实时传输协议(Real- time Transport Protocol,RTP)是在Internet 上处理多媒体数据流的一种网络协议,利用它能够在一对一(unicast,单播)或者一对多(multicast,多播)的网络环境中实现传流媒体数据的实时传输。
RTP 通常使用UDP来进行多媒体数据的传输,但如果需要的话可以使用TCP或者ATM等其它协议,整个RTP协议由两个密切相关的部分组成:RTP数据协议和RTP控制协议。
实时流协议(Real Time Streaming Protocol,RTSP)最早由Real Networks和Netscape公司共同提出,它位于RTP和RTCP之上,其目的是希望通过IP 网络有效地传输多媒体数据。
实时流传输协议RTSP(Real-time Streaming Protocol, RFC 2326)、实时传输协议(RTP Real-time Transfer Protocol,RFC 3550)、实时传输控制协议(RTCP Real-time Transport Control Protocol,RFC 1889)、会话描述协议(SDP Session Description Protocol,RFC 2327)。
目前在流媒体传输技术中使用最多的就是基于RTSP/RTP的流媒体传输。
RTSP对应ISO网络七层参考模型的应用层,和HTTP 有点类似,也是一种文本协议,主要是实现对流的控制。
有关RTSP/RTP以及RTCP之间的关系可以参考下图:通过上图可以看出三者之间的关系,RTSP协议基于TCP 完成RTSP请求报文和响应报文的传输,RTP协议基于UDP协议完成流媒体数据的实时传输,RTCP协议基于UDP协议提供客户端和服务器有关当前网络拥塞和以及实时流传输质量等信息。
在智能网络相机上也需要实现基于RTSP/RTP的H.264实时流的传输。
RTCP暂时还未实现,这在流媒体技术中是比较高级的应用。
第二部分:RTP协议RTP数据协议负责对流媒体数据进行封包并实现媒体流的实时传输,每一个RTP数据报都由头部(Header)和负载(Payload)两个部分组成,其中头部前12个字节的含义是固定的,而负载则可以是音频或者视频数据。
RTP数据报的头部格式如图1所示:图1 RTP头部格式其中比较重要的几个域及其意义如下:1、Version(V): RFC 1889 Version(2)2、Padding填充标志(P):False3、Extension扩展标志(X):False4、CSRC(Contributing source identifiers count)记数(CC): 表示CSRC标识的数目。
CSRC标识紧跟在RTP固定头部之后,用来表示RTP数据报的来源,RTP协议允许在同一个会话中存在多个数据源,它们可以通过RTP混合器合并为一个数据源。
例如,可以产生一个CSRC列表来表示一个电话会议,该会议通过一个RTP混合器将所有讲话者的语音数据组合为一个RTP数据源。
5、M:标志位。
标志位的具体解释可由具体协议规定。
如可用于帧边界标志。
6、负载类型(Payload type)(PT):标明RTP负载的格式,包括所采用的编码算法、采样频率、承载通道等。
例如,类型2表明该RTP数据包中承载的是用ITU G.721算法编码的语音数据,采样频率为8000Hz,并且采用单声道。
对于H.264来说,该值为105。
7、序列号(sequence number):用来为接收方提供探测数据丢失的方法,但如何处理丢失的数据则是应用程序自己的事情,RTP协议本身并不负责数据的重传。
序列号用于对RTP包进行计数。
每发送一个RTP包,序列号加1。
序列号的初始值可以置为零,也可用随机数开始。
为了更加安全,应从一个随机初始化值开始。
8、时间戳(Timestamp):记录了负载中第一个字节的采样时间,时间戳的增量为采样频率/帧率。
接收方根据时间戳能够确定数据的到达是否受到了延迟抖动的影响,但具体如何来补偿延迟抖动则是应用程序自己的事情。
按RFC3984规定,采用90000HZ的时钟,所以如果帧率为15,则时间戳增量为6000。
RTP规定一次会话的初始时间戳必须随机选择,但协议没有规定时间戳的单位。
由上图可知,如果只有系列号,并不能完整按照顺序的将data播放出来,因为如果data中间有一段是没有资料的,只有系列号的话会造成错误,需搭配上让它知道在哪个时间将data正确播放出来,如此我们才能播放出正确无误的信息。
9、SSRC:同步源识别符。
若只使用下个同步源,则SSRC应该一样。
10、CSRC:可无。
从RTP 数据报的格式不难看出,它包含了传输媒体的类型、格式、序列号、时间戳以及是否有附加数据等信息,这些都为实时的流媒体传输提供了相应的基础。
RTP 本身并没有提供按时发送机制或其它服务质量(QoS)保证,它依赖于低层服务去实现这一过程。
RTP协议的目的是提供实时数据(如交互式的音频和视频)的端到端传输服务,因此在RTP中没有连接的概念,它可以建立在底层的面向连接或面向非连接的传输协议之上;RTP也不依赖于特别的网络地址格式,而仅仅只需要底层传输协议支持组帧(Framing)和分段(Segmentation)就足够了;另外RTP 本身还不提供任何可靠性机制,这些都要由传输协议或者应用程序自己来保证。
在典型的应用场合下,RTP一般是在传输协议之上作为应用程序的一部分加以实现的,如图2所示:RTP 是目前解决流媒体实时传输问题的最好办法,要在 Linux 平台上进行实时传送编程,可以考虑使用一些开放源代码的 RTP 库,如 LIBRTP、JRTPLIB 等。
JRTPLIB 是一个面向对象的 RTP 库,它完全遵循 RFC 1889 设计,在很多场合下是一个非常不错的选择。
JRTPLIB 是一个用 C++ 语言实现的 RTP 库,这个库使用socket 机制实现网络通讯因此可以运行在 Windows、Linux、FreeBSD、Solaris、Unix和VxWorks 等多种操作系统上。
第三部分:RTCP协议RTCP 控制协议需要与RTP数据协议一起配合使用,当应用程序启动一个RTP会话时将同时占用两个端口,分别供RTP和RTCP使用。
RTP本身并不能为按序传输数据包提供可靠的保证,也不提供流量控制和拥塞控制,这些都由RTCP来负责完成。
RTCP的一个关键作用就是能让接收方同步多个RTP流,比如音频和视频流。
通常RTCP 会采用与RTP相同的分发机制,向会话中的所有成员周期性地发送控制信息,应用程序通过接收这些数据,从中获取会话参与者的相关资料,以及网络状况、分组丢失概率等反馈信息,从而能够对服务质量进行控制或者对网络状况进行诊断。
RTCP协议的功能是通过不同的RTCP数据报来实现的,主要有如下几种类型:SR 发送端报告,所谓发送端是指发出RTP数据报的应用程序或者终端,发送端同时也可以是接收端。
RR 接收端报告,所谓接收端是指仅接收但不发送RTP数据报的应用程序或者终端。
SDES 源描述,主要功能是作为会话成员有关标识信息的载体,如用户名、邮件地址、电话号码等,此外还具有向会话成员传达会话控制信息的功能。
BYE 通知离开,主要功能是指示某一个或者几个源不再有效,即通知会话中的其他成员自己将退出会话。
APP由应用程序自己定义,解决了RTCP的扩展性问题,并且为协议的实现者提供了很大的灵活性。
RTCP数据报携带有服务质量监控的必要信息,能够对服务质量进行动态的调整,并能够对网络拥塞进行有效的控制。
由于RTCP数据报采用的是多播方式,因此会话中的所有成员都可以通过RTCP数据报返回的控制信息,来了解其他参与者的当前情况。
在一个典型的应用场合下,发送媒体流的应用程序将周期性地产生发送端报告SR,该RTCP数据报含有不同媒体流间的同步信息,以及已经发送的数据报和字节的计数,接收端根据这些信息可以估计出实际的数据传输速率。
另一方面,接收端会向所有已知的发送端发送接收端报告RR,该RTCP数据报含有已接收数据报的最大序列号、丢失的数据报数目、延时抖动和时间戳等重要信息,发送端应用根据这些信息可以估计出往返时延,并且可以根据数据报丢失概率和时延抖动情况动态调整发送速率,以改善网络拥塞状况,或者根据网络状况平滑地调整应用程序的服务质量。
第四部分:SRTP和SRTCP协议RTSP安全实时传输协议(Secure Real-time Transport Protocol或SRTP)是在实时传输协议(Real-time Transport Protocol或RTP)基础上所定义的一个协议,旨在为单播和多播应用程序中的实时传输协议的数据提供加密、消息认证、完整性保证和重放保护。
它是由David Oran(思科)和Rolf Blom(爱立信)开发的,并最早由IETF于2004年3月作为RFC 3711发布。
由于实时传输协议和可以被用来控制实时传输协议的会话的实时传输控制协议(RTP Control Protocol或RTCP)有着紧密的联系,安全实时传输协议同样也有一个伴生协议,它被称为安全实时传输控制协议(Secure RTCP或SRTCP);安全实时传输控制协议为实时传输控制协议提供类似的与安全有关的特性,就像安全实时传输协议为实时传输协议提供的那些一样。
在使用实时传输协议或实时传输控制协议时,使不使用安全实时传输协议或安全实时传输控制协议是可选的;但即使使用了安全实时传输协议或安全实时传输控制协议,所有它们提供的特性(如加密和认证)也都是可选的,这些特性可以被独立地使用或禁用。
唯一的例外是在使用安全实时传输控制协议时,必须要用到其消息认证特性。
第五部分: RTSP协议一、RTSP协议概述RTSP(Real-Time Stream Protocol )作为一个应用层协议,提供了一个可供扩展的框架,它的意义在于使得实时流媒体数据的受控和点播变得可能。
总的说来,RTSP是一个流媒体表示协议,主要用来控制具有实时特性的数据发送,但它本身并不传输数据,而是必须依赖于下层传输协议所提供的某些服务。