RTSP发起/终结流媒体、RTP传输流媒体数据 、RTCP对RTP进行控制,同步。
RTSP:基于TCP, 视频的控制。
RTP: 基于UDP, 视频的传输。
RTCP:基于UDP, 视频的质量。 RR, SR, SDES, BYE, APP
RTSP的请求主要有DESCRIBE,SETUP,PLAY,PAUSE,TEARDOWN,OPTIONS等,顾名思义可以知道起对话和控制作用
RTSP的对话过程中SETUP可以确定RTP/RTCP使用的端口,PLAY/PAUSE/TEARDOWN可以开始或者停止RTP的发送,等等
RTCP包括Sender Report和ReceiverReport,用来进行音频/视频的同步以及其他用途,是一种控制协议.
参考文档: //很有用
RTSP协议介绍: 一叶知秋的博客
RTSP协议学习笔记 一叶知秋的博客
海康RTSP客户端连接深入分析 : 有Authorization介绍
浏览器web播放rtsp视频流解决方案(chrome/IE/firefox/360等)
海康、大华IpCamera RTSP地址和格式 + 海康RTSP格式
从RTSP协议SDP数据中获得二进制的SPS、PPS
推流地址:
rtsp://192.168.1.250:8554/myPath |
| 客户端请求 | 服务器反馈 |
OPTIONS | OPTIONS rtsp://192.168.1.250:8554/myPath RTSP/1.0 CSeq: 2 User-Agent: LibVLC/2.2.0 (LIVE555 Streaming Media v2014.07.25)
| RTSP/1.0 200 OK Server: VLC/2.2.1 Content-Length: 0 Cseq: 2 Public: DESCRIBE,SETUP,TEARDOWN,PLAY,PAUSE,GET_PARAMETER
|
DESCRIBE | DESCRIBE rtsp://192.168.1.250:8554/myPath RTSP/1.0 CSeq: 3 User-Agent: LibVLC/2.2.0 (LIVE555 Streaming Media v2014.07.25) Accept: application/sdp
| RTSP/1.0 200 OK Server: VLC/2.2.1 Date: Tue, 05 Apr 2016 01:16:49 GMT Content-Type: application/sdp Content-Base: rtsp://192.168.1.250:8554/myPath Content-Length: 580 Cache-Control: no-cache Cseq: 3
v=0 o=- 15757409557814168214 15757409557814168214 IN IP4 suncti-server s=Unnamed i=N/A c=IN IP4 0.0.0.0 t=0 0 a=tool:vlc 2.2.1 a=recvonly a=type:broadcast a=charset:UTF-8 a=control:rtsp://192.168.1.250:8554/myPath m=audio 0 RTP/AVP 14 b=AS:128 b=RR:0 a=rtpmap:14 MPA/90000/2 a=control:rtsp://192.168.1.250:8554/myPath/trackID=514 m=video 0 RTP/AVP 96 b=RR:0 a=rtpmap:96 H264/90000 a=fmtp:96 packetization-mode=1;profile-level-id=64001e;sprop-parameter-sets=Z2QAHqzZQKAv+XARAAADAAEAAAMAMo8WLZY=,aOvjyyLA; a=control:rtsp://192.168.1.250:8554/myPath/trackID=515 |
SETUP 音频 | SETUP rtsp://192.168.1.250:8554/myPath/trackID=514 RTSP/1.0 CSeq: 4 User-Agent: LibVLC/2.2.0 (LIVE555 Streaming Media v2014.07.25) Transport: RTP/AVP;unicast;client_port=54982-54983
| RTSP/1.0 200 OK Server: VLC/2.2.1 Date: Tue, 05 Apr 2016 01:16:49 GMT Transport: RTP/AVP/UDP;unicast;client_port=54982-54983;server_port=58831-58832;ssrc=E7C39B4D;mode=play Session: 73d0340513f1f198;timeout=60 Content-Length: 0 Cache-Control: no-cache Cseq: 4
|
SETUP 视频 | SETUP rtsp://192.168.1.250:8554/myPath/trackID=515 RTSP/1.0 CSeq: 5 User-Agent: LibVLC/2.2.0 (LIVE555 Streaming Media v2014.07.25) Transport: RTP/AVP;unicast;client_port=54984-54985 Session: 73d0340513f1f198
| RTSP/1.0 200 OK Server: VLC/2.2.1 Date: Tue, 05 Apr 2016 01:16:49 GMT Transport: RTP/AVP/UDP;unicast;client_port=54984-54985;server_port=58832-58833;ssrc=F0742139;mode=play //SSRC很重要,需要和RTP中的SSRC保持一致 Session: 73d0340513f1f198;timeout=60 //重要 timeout=60秒 保活 心跳机制 Content-Length: 0 Cache-Control: no-cache Cseq: 5
|
PLAY | PLAY rtsp://192.168.1.250:8554/myPath RTSP/1.0 CSeq: 6 User-Agent: LibVLC/2.2.0 (LIVE555 Streaming Media v2014.07.25) Session: 73d0340513f1f198 Range: npt=0.000-
| RTSP/1.0 200 OK Server: VLC/2.2.1 Date: Tue, 05 Apr 2016 01:16:49 GMT RTP-Info: url=rtsp://192.168.1.250:8554/myPath/trackID=514;seq=14895;rtptime=919557270, url=rtsp://192.168.1.250:8554/myPath/trackID=515;seq=3495;rtptime=919557270 Range: npt=579392.506780- Session: 73d0340513f1f198;timeout=60 Content-Length: 0 Cache-Control: no-cache Cseq: 6
|
GET_PARAMETER
{ 附加说明: 周期性发送, 这是一种心跳机制。 也可以采用别的命令。 } | GET_PARAMETER rtsp://192.168.1.250:8554/myPath RTSP/1.0 CSeq: 7 User-Agent: LibVLC/2.2.0 (LIVE555 Streaming Media v2014.07.25) Session: 73d0340513f1f198
| RTSP/1.0 200 OK Server: VLC/2.2.1 Date: Tue, 05 Apr 2016 01:16:50 GMT Session: 73d0340513f1f198;timeout=60 Content-Length: 0 Cache-Control: no-cache Cseq: 7
|
TEARDOWN | TEARDOWN rtsp://192.168.1.250:8554/myPath RTSP/1.0 CSeq: 8 User-Agent: LibVLC/2.2.0 (LIVE555 Streaming Media v2014.07.25) Session: 73d0340513f1f198
| RTSP/1.0 200 OK Server: VLC/2.2.1 Date: Tue, 05 Apr 2016 01:16:57 GMT Session: 73d0340513f1f198;timeout=60 Content-Length: 0 Cache-Control: no-cache Cseq: 8
|
OPTIONS rtsp://192.168.1.250:8554/myPath |