rtsp 交互流程

本文详细介绍了RTSP(Real Time Streaming Protocol)的消息交互流程,包括客户端如何查询服务器可用方法、获取媒体描述信息、建立会话、请求数据传输及关闭会话的步骤。以Vlc播放器作为客户端,通过示例展示了RTSP在实际操作中的应用。

                                                    简单的RTSP消息交互过程

本例测试,客户端是使用Vlc播放器,以下信息均为服务器端收到和回应的信息

//---------------------------------------------------------------------------------

第一步:查询服务器端可用方法

1客户端请求(OPTION request):---询问服务器有哪些方法可用

"OPTIONS rtsp://192.168.1.122/TestSession RTSP/1.0"

"CSeq: 2"

"User-Agent: LibVLC/1.1.9 (LIVE555 Streaming Media v2011.01.06)"

2 服务器回应(OPTION response):---回复的所有方法在Public字段

"RTSP/1.0 200 OK"

"CSeq: 2"

{"Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE"}

""    //最后这个也很重要,最后一个消息头需要有两个CR LF

第二步:得到媒体描述信息

1 客户端请求(DESCRIBE request):-----要求得到媒体描述信息

"DESCRIBE rtsp://192.168.1.122/TestSession RTSP/1.0"

"CSeq: 3"

"User-Agent: LibVLC/1.1.9 (LIVE555 Streaming Media v2011.01.06)"

"Accept: application/sdp"

2 服务器回应(DESCRIBE response):---回应媒体描述信息,一般是sdp信息

"RTSP/1.0 200 OK"

"CSeq: 3" //和请求的序号要对应

{"Server: RTSP Service"

 "Content-Base: rtsp://192.168.1.122/TestSession"

 "Content-Type: application/sdp"         //表示回应的是sdp信息 

 "Content-Length: 367"

}

"" 

然后再发送生成的sdp信息,sdp信息也可以和上面的字符串组合一起发送

第三步:建立RTSP会话

1 客户端请求(SETUP request):-----通过Transport头字段列出可接受的传输选项,建立会话

"SETUP rtsp://192.168.1.122/TestSession/trackID=1 RTSP/1.0"

"CSeq: 4"

"User-Agent: LibVLC/1.1.9 (LIVE555 Streaming Media v2011.01.06)"

"Transport: RTP/AVP;unicast;client_port=2274-2275"

2 服务器回应(SETUP response):--建立会话,通过Transport头字段返回选择的具体传输

                             选项,并返回建立的Session ID;

"RTSP/1.0 200 OK"

"CSeq: 4"

"Session: 68422540987712"

"Transport:RTP/AVP;unicast;source=192.168.1.122;server_port=8000-8001;client_port=

                  2274-2275;ssrc=3969838262"

""    

第四步:请求开始传送数据

1 客户端请求(PLAY request): -----请求服务器开始发送数据

"PLAY rtsp://192.168.1.122/TestSession RTSP/1.0" 

"CSeq: 5"

"User-Agent: LibVLC/1.1.9 (LIVE555 Streaming Media v2011.01.06)"

"Session: 68422540987712"

"Range: npt=0.000-"

2 服务器回应(PLAY response):------回应该请求的信息

"RTSP/1.0 200 OK"

"CSeq: 5"

"Session: 68422540987712"

"RTP-Info: url=rtsp://192.168.1.122/TestSession/trackID=1"

""   

第五步:数据传输

服务器->客户端:发送流媒体数据, 通过RTP协议传输数据

第六步:关闭会话,退出

1 客户端请求(TEARDOWN request):---------请求关闭会话

"TEARDOWN rtsp://192.168.1.122/TestSession RTSP/1.0"

"CSeq: 6"

"User-Agent: LibVLC/1.1.9 (LIVE555 Streaming Media v2011.01.06)"

"Session: 68422540987712"

2 服务器回应(TEARDOWN response):

"RTSP/1.0 200 OK"

"CSeq: 6"

"Session: 68422540987712"

"Connection: Close"

""

                                                                                                                                                                                                                                                                                                                                                    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值