RTSP(Real-Time Stream Protocol )是一种基于文本的应用层协议,在语法及一些消息参数等方面,RTSP协议与HTTP协议类似。
RTSP用于建立媒体流的控制传输,它为多媒体服务扮演“网络远程控制”的角色。尽管有时可以把RTSP控制信息和媒体流(数据)交织在一起传送,但一般情况RTSP并不用于转送媒体流数据,而是通过RTP/RTCP协议来完成流数据传输。
二、一次基本的RTSP操作过程
1. 客户端Client连接到流服务器Server并发送一个RTSP描述命令(DESCRIBE)。注意,这个时候server端应该已经开始发送媒体流数据。
2. 流服务器通过一个SDP描述来进行反馈,反馈信息包括流数量、媒体类型等信息。
3. 客户端再分析该SDP描述,并为会话中的每一个流发送一个RTSP建立命令(SETUP),RTSP建立命令告诉服务器,客户端用于接收媒体流数据的端口。
4. 流媒体连接建立完成后,客户端发送一个播放命令(PLAY),服务器就开始在UDP上传送媒体流(RTP包)到客户端。
5. 在播放过程中客户端还可以向服务器发送命令来控制快进、快退和暂停等。
6. 客户端可发送一个终止命令(TERADOWN)来结束流媒体会话
三、项目实例
下面是本人一个高清视频传输的项目打印信息,供大家学习参考。
client command: /home/root/rtsp_client -F /tmp/clientCh0.h264 -b 1843200 rtsp://192.168.1.3:8554/avstream &
Opening connection to 192.168.1.3, port 8554...
...remote connection opened
C-->S 用于得到服务器提供的可用方法;
Sending request: OPTIONS rtsp://192.168.1.3:8554/avstream RTSP/1.0
CSeq: 2
User-Agent: /home/root/rtsp_client (LIVE555 Streaming Media v2014.12.17)
S->C 服务器的回应信息会在Public字段列出提供的方法
Received 125 new bytes of response data.
Received a complete OPTIONS response:
RTSP/1.0 200 OK
Server: VLC/2.0.10