《RTSP协议讲解.ppt》由会员分享,可在线阅读,更多相关《RTSP协议讲解.ppt(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、讲解内容o RTSP协议概念o RTSP协议在网络中所处的位置o RTSP介绍o RTSP的第三方库o RTP/RTCP协议介绍o SIP/SDP协议介绍o RTSP和onvif的关系RTSP协议概念 RTSP(Real Time Streaming Protocol),实时流传输协议,是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学、网景和RealNetworks公司提交的IETF RFC标准。 RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或RTP完成数据传输。它的语法和运作跟HTTP 1.1类似,HTTP与RTSP相比,HTTP传送HTML,而RTSP传送的是多媒体数
2、据。HTTP请求由客户机发出,服务器作出响应;使用RTSP时,客户机和服务器都可以发出请求,即RTSP可以是双向的。RTSP协议在网络中所处的位置RTSP介绍 实时流协议(RTSP)建立并控制一个或几个时间同步的连续流媒体,如音频和视频。尽管连续媒体流与控制流交叉是可能的,RTSP 本身并不发送连续媒体流。换言之,RTSP 充当多媒体服务器的网络远程控制。RTSP 提供了一个可扩展框架,实现实时数据(如音频与视频)的受控、按需传送。数据源包括实况数据与存储的剪辑。RTSP 用于控制多个数据发送会话,提供了选择发送通道(如 UDP、组播 UDP 与 TCP 等)的方式,并提供了选择基于 RTP
3、的发送机制的方法。 目前还没有 RTSP 连接的概念;服务器维护由识别符标识的会话。RTSP 会话不会绑定到传输层连接,如 TCP。在 RTSP 会话期间,RTSP 客户端可打开或关闭多个对服务器的可靠传输连接以发出 RTSP 请求。它也可选择使用无连接传输协议,如 UDP。OPTIONS客户端发送请求:OPTIONS rtsp:/192.168.0.235:554 RTSP/1.0CSeq: 1 User-Agent: RealMedia Player HelixDNAClient/10.0.1.65 (win32) /客户端版本,运行的系统ClientChallenge: ecfc7f45
4、1b599180ec25b706ddbd18eeClientID: WinNT_6.1_10.0.1.65_play32_RN01_EN_686CompanyID: YurviqDthCPgn+V3Ms/YiQ=GUID: 00000000-0000-0000-0000-000000000000PlayerStarttime: 03/08/2011:11:26:10 08:00 /流媒体开始播放的时间Pragma: initiate-session RegionData: 0解析:此步骤是客户端向服务器询问有哪些方法可以使用。包里面说明了客户端请求的文件所在的地址和端口,并说明播放器的版本和操
5、作系统平台。OPTIONS服务端响应请求:RTSP/1.0 200 OK CSeq: 1Date: Wed, Aug 03 2011 07:01:25 GMT /服务器当前时间Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, GET_PARAMETER, SET_PARAMETER /服务器支持的方法解析:接收到OPTIONS请求后服务端发出响应报文。最开始返回状态码200代表请求成功。然后返回服务器当前时间(GMT)和所支持的方法。DESCRIBE客户端发送请求:DESCRIBE rtsp:/192.168.0.235:554/
6、21.aac RTSP/1.0 CSeq: 2Accept: application/sdp /定义描述类型解析:该方法是客户端向服务端请求描述媒体的详细信息。包中说明需要描述的媒体文件具体目录和名称,定义客户端能理解的描述类型,要求服务端以SDP包方式来描述媒体信息DESCRIBE服务端响应请求:RTSP/1.0 200 OKCSeq: 2Date: Wed, Aug 03 2011 07:01:26 GMTContent-Base: rtsp:/192.168.0.235/21.aac/ Content-Type: application/sdp /描述类型Content-Length:
7、515 /SDP包的长度第一部分解析:这是服务端响应DESCRIBE请求所发回的报文。以上内容说明描述的媒体文件具体路径和名称,以及所采用的描述类型(sdp),并定义了SDP包内容的长度。以下的第二部分是SDP包的内容。DESCRIBESETUP客户端发送请求:客户端发送请求:SETUP rtsp:/192.168.0.235/21.aac/track1 RTSP/1.0CSeq: 3User-Agent: MPlayer (LIVE555 Streaming Media v2011.03.14) /客户端详细信息Transport: RTP/AVP;unicast;client_port=5
8、9558-59559 /传输协议+传播方式(单播或多播)+接收数据的端口号。解析:客户端向服务端发送SETUP请求,要求服务端设置会话属性和流媒体传输方式以建立会话。包内容包含客户端软件详细信息,以及所需要的传输协议(RTP),传播方式和客户端用来接收数据的端口号。SETUP服务端响应请求:服务端响应请求:RTSP/1.0 200 OKCSeq: 3Date: Wed, Aug 03 2011 07:01:26 GMT Transport:RTP/AVP;unicast;destination=192.168.0.179;source=192.168.0.235;client_port=595
9、58-59559;server_port=6970-6971 /传输协议+传播方式+目的IP+源IP+客户端端口+服务端端口Session: 00007578 /会话标识解析:服务端接收到SETUP请求后建立会话,向客户端返回会话详细信息以及会话标识。会话标识是唯一的。至此一个会话建立完成。PLAY客户端发送请求:客户端发送请求:PLAY rtsp:/192.168.0.235/21.aac/ RTSP/1.0CSeq: 4User-Agent: MPlayer (LIVE555 Streaming Media v2011.03.14) /播放器信息Session: 00007578 /会话标
10、识Range: npt=0.000- /播放时间范围,从第0秒到文件播放完解析:会话建立后,客户端发出PLAY请求播放所申请的流媒体21.acc。传输机制按照SETUP命令所设置的进行。PLAY请求可以发送多次,服务器会将请求放入队列逐个处理。同时客户端可以定义播放的时间范围,比如从该流媒体的第N秒播放到第M秒。PLAY服务器响应请求:服务器响应请求: RTSP/1.0 200 OKCSeq: 4Date: Wed, Aug 03 2011 07:01:26 GMTRange: npt=0.000- Session: 00007578 RTP-Info: url=rtsp:/192.168.0
11、.235/21.aac/track1;seq=23335;rtptime=2147485332 解析:服务器返回确认报文并开始传输流媒体数据。数据传输一般使用UDP发送。TEARDOWN客户端发送请求:TEARDOWN rtsp:/192.168.0.235/21.aac/ RTSP/1.0CSeq: 5User-Agent: MPlayer (LIVE555 Streaming Media v2011.03.14) Session: 00007578解析:流媒体全部传输完毕后,客户端向服务端发出TEARDOWN请求,要求终止该会话。服务端响应请求:RTSP/1.0 200 OKCSeq: 5
12、Date: Wed, Aug 03 2011 07:01:57 GMT解析:服务端响应TEARDOWN请求,发送回响应报文并终止该会话,至此该会话结束,服务器继续等待下一个RTSP请求。RTSP的第三方库live555简介简介Live555 是一个为流媒体提供解决方案的跨平台的C+开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。Live555实现了对多种音视频编码格式的音视频数据的流化、接收和处理等支持,包括MPEG、H.263+、DV、JPEG视频和多种音频编码。同时由于良好的设计,Live555非常容易扩展对其他格式的支持。目前,Live555已经被用于
13、多款播放器的流媒体播放功能的实现,如VLC(VideoLan)、MPlayer。RTSP的第三方库FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它包括了目前领先的音/视频编码库libavcodec等。libavformat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能;libavcodec:用于各种类型声音/图像编解码;libavutil:包含一些公共的工具函数;libswscale:用于视频场景比例缩放、色彩映射转换;libpostproc:用于后期效果处理;ffmpeg:该项目提供的一个工具,可用于
14、格式转换、解码或电视卡即时编码等;ffsever:一个 HTTP 多媒体即时广播串流服务器;ffplay:是一个简单的播放器,使用ffmpeg 库解析和解码,通过SDL显示;RTP/RTCP协议介绍 RTP全名是Real-time Transport Protocol(实时传输协议),RTP被定义为传输音频、视频、模拟数据等实时数据的传输协议,与传统的注重的高可靠的数据传输的运输层协议相比,它更加侧重的数据传输的实时性,此协议提供的服务包括数据顺序号、时间标记、传输控制等。RTP通常与辅助控制协议RTCP一起工作,RTP只负责实时数据的传输,RTCP负责对RTP的通信和会话进行带外管理(如流量
15、控制、拥塞控制、会话源管理等)。RTP协议1.V:RTP协议的版本号,占2位,当前协议版本号为2。2. P:填充标志,占1位,如果P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。3. X:扩展标志,占1位,如果X=1,则在RTP报头后跟有一个扩展报头。CC:CSRC计数器,占4位,指示CSRC 标识符的个数。5. M: 标记,占1位,不同的有效载荷有不同的含义,对于视频,标记一帧的结束;对于音频,标记会话的开始。6. PT: 有效载荷类型,占7位,用于说明RTP报文中有效载荷的类型,如GSM音频、JPEM图像等,在流媒体中大部分是用来区分音频流和视频流的,这样便于
16、客户端进行解析。RTP协议7. 序列号:占16位,用于标识发送者所发送的RTP报文的序列号,每发送一个报文,序列号增1。这个字段当下层的承载协议用UDP的时候,网络状况不好的时候可以用来检查丢包。同时出现网络抖动的情况可以用来对数据进行重新排序,在helix服务器中这个字段是从0开始的,同时音频包和视频包的sequence是分别记数的。8. 时戳(Timestamp):占32位,时戳反映了该RTP报文的第一个八位组的采样时刻。接收者使用时戳来计算延迟和延迟抖动,并进行同步控制。9. 同步信源(SSRC)标识符:占32位,用于标识同步信源。该标识符是随机选择的,参加同一视频会议的两个同步信源不能
17、有相同的SSRC。10. 特约信源(CSRC)标识符:每个CSRC标识符占32位,可以有015个。每个CSRC标识了包含在该RTP报文有效载荷中的所有特约信源。RTCP协议 RTCP 协议的主要功能是:服务质量的监视与反馈、媒体间的同步,以及多播组中成员的标识。RTCP 分组也使用 UDP 传送,但 RTCP 并不对声音或视像分组进行封装。可将多个 RTCP 分组封装在一个 UDP 用户数据报中。RTCP 分组周期性地在网上传送,它带有发送端和接收端对服务质量的统计信息报告。 RTCP包含五种分组类型1)结束分组 BYE 表示关闭一个数据流。2)特定应用分组 APP 使应用程序能够定义新的分组
18、类型。3)接收端报告分组 RR 用来使接收端周期性地向所有的点用多播方式进行报告。4)发送端报告分组 SR 用来使发送端周期性地向所有接收端用多播方式进行报告。5)源点描述分组 SDES 给出会话中参加者的描述。SIP协议 SIP(Session Initiation Protocol)是一个应用层的信令控制协议。用于创建、修改和释放一个或多个参与者的会话。这些会话可以是Internet多媒体会议1、IP电话或多媒体分发。l 用户定位服务l 会话建立l 会话参与方管理 SIP 用户代理 SIP 注册服务器 SIP 代理服务器 SIP 重定向服务器SDP协议 SDP(Session Descri
19、ption Protocol)为会话通知、会话邀请和其它形式的多媒体会话初始化等目的提供了多媒体会话描述。它不属于传输协议 它只使用不同的适当的传输协议,会话初始协议(SIP)、实时流协议(RTSP)、电子邮件以及超文本传输协议(HTTP)。RTSP和onvif的关系 ONVIF平台是一款致力于通过全球性的开放接口标准来推动网络视频监控系统在全球安防市场的应用,这一开放接口标准将确保不同安防设备厂商生产的网络视频产品具有完美的兼容性。 ONVIF协议主要定义了网络视频发送设备和网络视频客户端之间的标准通信接口,涵盖了设备发现、设备配置、报警事件、云台控制、视频分析和实时视频流等功能。与传统的通信协议相比,ONVIF协议并不是针对某些设备或某些特定的项目,其开放性和兼容性减少了不同设备的集成成本,提高了解决方案的灵活性。讨论能区别以下概念吗?能区别以下概念吗?WebService、http协议、soap协议、onvif协议结束结束