本文来自csdn lidp http://blog.csdn.net/perfectpdl 转载注明出处,谢谢。
RTSP 协议为网络流媒体上的控制协议,与SIP,http 协议类似,都属于控制协议,并基于文本的,传输端口为 554,rtsp同样属于 请求,响应式协议,定义了用于交互媒体信息的几个方法,并规定了交互流程。
下面为一个交互流程图,以及这个流程中各个方法的用途
- OPTIONS
- 与SIP/http 类似, options请求用于客户端咨询服务器,其所支持的方法有哪些,服务器响应 200ok,在public消息头携带 服务器所支持的方法。
-
C->S: OPTIONS rtsp://example.com/media.mp4 RTSP/1.0 CSeq: 1 Require: implicit-play Proxy-Require: gzipped-messages S->C: RTSP/1.0 200 OK CSeq: 1 Public: DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE
通常客户端首先发起options请求以检测服务器的能力。
DESCRIBE
DESCRIBE请求是客户端向服务器请求具体媒体内容的第一个方法,包括请求URL以及客户端支持的消息体类型,此请求的响应通常是 服务器告诉客户端,其所请求的媒体的具体信息,与SIP类似,媒体信息由SDP承载,所以DESCRIBE请求的消息头 accept 通常为 appliaction/sdp。
C->S: DESCRIBE rtsp://example.com/media.mp4 RTSP/1.0 CSeq: 2
Accept: application/sdp
S->C: RTSP/1.0 200 OK CSeq: 2 Content-Base: rtsp://example.com/media.mp4 Content-Type: application/sdp Content-Length: 460 m=video 0 RTP/AVP 96 a=control:streamid=0 a=range:npt=0-7.741000 a=length:npt=7.741000 a=rtpmap:96 MP4V-ES/5544 a=mimetype:string;"video/MP4V-ES" a=AvgBitRate:integer;304018 a=StreamName:string;"hinted video track" m=audio 0 RTP/AVP 97 a=control:streamid=1 a=range:npt=0-7.712000 a=length:npt=7.712000 a=rtpmap:97 mpeg4-generic/32000/2 a=mimetype:string;"audio/mpeg4-generic" a=AvgBitRate:integer;65790 a=StreamName:string;"hinted audio track"
DESCRIBE 响应分消息头和消息体,消息体由SDP协议承载,此sdp 消息体描述了客户端所请求的媒体的 音频,视频 描述,如编码,码率等,带不同于sip,此消息体并不包含 具体的ip和端口信息,rtsp用其他方法 交互这个信息。
作者:perfectpdl 发表于2013-3-9 16:55:05 原文链接
阅读:55 评论:0 查看评论