RTSP over UDP
RTSP is usually used in an ambiguous or inaccurate sense. RTSP per se has a precise definition with a strict protocol. However, RTSP is often used to mean the streaming using three separate but related protocols: RTSP, RTP, and RTCP.
A common RTSP stream uses three channels (i.e. three sockets in programming term):
- One TCP channel for RTSP to establish the stream.
- One UDP for RTP transporting video data.
- One UDP for RTCP for exchanging control and report data.
An excerpt from Using RTSP with Firewalls, Proxies, and Other Intermediary Network Devices
Standard RTP
The RTSP client sets up three network channels with the RTSP server when media data is
delivered using the RTP over UDP, as shown in Figure 1. A full-duplex TCP connection
is used for control and negotiation. A simplex UDP channel is used for media data
delivery using the RTP packet format. A full-duplex UDP channel called RTCP is used to
provide synchronization information to the client and packet loss information to the
server.
Note that the RTP port must be an even-numbered port, while the RTCP port must be the
next consecutive port. Therefore, the RTCP port is always an odd number. The standard
A TCP connection port for an RTSP server is 554.
A typical handshake of RTSP is the following:
OPTIONS rtsp://192.168.0.95/onvif-media/media.amp?profile=quality_h264&sessiontimeout=60 RTSP/1.0
CSeq: 2
User-Agent: LibVLC/2.1.3 (LIVE555 Streaming Media v2014.01.21)
RTSP/1.0 200 OK
CSeq: 2
Public: DESCRIBE, GET_PARAMETER, PAUSE, PLAY, SETUP, SET_PARAMETER, TEARDOWN
Date: Fri, 20 Jun 2014 11:32:34 GMT
DESCRIBE rtsp://192.168.0.95/onvif-media/media.amp?profile=quality_h264&sessiontimeout=60 RTSP/1.0
CSeq: 3
User-Agent: LibVLC/2.1.3 (LIVE555 Streaming Media v2014.01.21)
Accept: application/sdp
RTSP/1.0 401 Unauthorized
CSeq: 3
WWW-Authenticate: Digest realm="AXIS_WS_00408CBE6528", nonce="0000fee7Y4056752ce8e8e01f9280b82db59b3d0c463b6", stale=FALSE
Date: Fri, 20 Jun 2014 11:32:34 GMT
OPTIONS rtsp://192.168.0.95/onvif-media/media.amp?profile=quality_h264&sessiontimeout=60 RTSP/1.0
CSeq: 4
User-Agent: LibVLC/2.1.3 (LIVE555 Streaming Media v2014.01.21)
RTSP/1.0 200 OK
CSeq: 4
Public: DESCRIBE, GET_PARAMETER, PAUSE, PLAY, SETUP, SET_PARAMETER, TEARDOWN
Date: Fri, 20 Jun 2014 11:32:43 GMT
DESCRIBE rtsp://192.168.0.95/onvif-media/media.amp?profile=quality_h264&sessiontimeout=60 RTSP/1.0
CSeq: 5
User-Agent: LibVLC/2.1.3 (LIVE555 Streaming Media v2014.01.21)
Accept: application/sdp
RTSP/1.0 401 Unauthorized
CSeq: 5
WWW-Authenticate: Digest realm="AXIS_WS_00408CBE6528", nonce="0000fef1Y545792207a3b2347729ae05179cb1ed12ceb8", stale=FALSE
Date: Fri, 20 Jun 2014 11:32:43 GMT
DESCRIBE rtsp://192.168.0.95/onvif-media/media.amp?profile=quality_h264&sessiontimeout=60 RTSP/1.0
CSeq: 6
Authorization: Digest username="root", realm="AXIS_WS_00408CBE6528", nonce="0000fef1Y545792207a3b2347729ae05179cb1ed12ceb8", uri="rtsp://192.168.0.95/onvif-media/media.amp?profile=quality_h264&sessiontimeout=60", response="fc9cde073cf2d57201184cc1a741e9e1"
User-Agent: LibVLC/2.1.3 (LIVE555 Streaming Media v2014.01.21)
Accept: application/sdp
RTSP/1.0 200 OK
CSeq: 6
Content-Type: application/sdp
Content-Base: rtsp://192.168.0.95/onvif-media/media.amp/
Date: Fri, 20 Jun 2014 11:32:43 GMT
Content-Length: 699
v=0
o=- 1403263963655878 1403263963655878 IN IP4 192.168.0.95
s=Media Presentation
e=NONE
c=IN IP4 0.0.0.0
b=AS:50064
t=0 0
a=control:rtsp://192.168.0.95/onvif-media/media.amp?profile=quality_h264&sessiontimeout=60
a=range:npt=0.000000-
m=video 0 RTP/AVP 96
b=AS:50000
a=framerate:1.0
a=transform:1,0,0;0,1,0;0,0,1
a=control:rtsp://192.168.0.95/onvif-media/media.amp/trackID=1?profile=quality_h264&sessiontimeout=60
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1; profile-level-id=420029; sprop-parameter-sets=Z0IAKeNQFAe2AtwEBAaQeJEV,aM48gA==
m=audio 0 RTP/AVP 0
b=AS:64
a=control:rtsp://192.168.0.95/onvif-media/media.amp/trackID=2?profile=quality_h264&sessiontimeout=60
SETUP rtsp://192.168.0.95/onvif-media/media.amp/trackID=1?profile=quality_h264&sessiontimeout=60 RTSP/1.0
CSeq: 7
Authorization: Digest username="root", realm="AXIS_WS_00408CBE6528", nonce="0000fef1Y545792207a3b2347729ae05179cb1ed12ceb8", uri="rtsp://192.168.0.95/onvif-media/media.amp/", response="1e9985c12dac0884b3452d83fc8ae57e"
User-Agent: LibVLC/2.1.3 (LIVE555 Streaming Media v2014.01.21)
Transport: RTP/AVP;unicast;client_port=63394-63395
RTSP/1.0 200 OK
CSeq: 7
Session: 538086BC; timeout=60
Transport: RTP/AVP;unicast;client_port=63394-63395;server_port=50008-50009;ssrc=156858BC;mode="PLAY"
Date: Fri, 20 Jun 2014 11:32:43 GMT
SETUP rtsp://192.168.0.95/onvif-media/media.amp/trackID=2?profile=quality_h264&sessiontimeout=60 RTSP/1.0
CSeq: 8
Authorization: Digest username="root", realm="AXIS_WS_00408CBE6528", nonce="0000fef1Y545792207a3b2347729ae05179cb1ed12ceb8", uri="rtsp://192.168.0.95/onvif-media/media.amp/", response="1e9985c12dac0884b3452d83fc8ae57e"
User-Agent: LibVLC/2.1.3 (LIVE555 Streaming Media v2014.01.21)
Transport: RTP/AVP;unicast;client_port=63396-63397
Session: 538086BC
RTSP/1.0 200 OK
CSeq: 8
Session: 538086BC; timeout=60
Transport: RTP/AVP;unicast;client_port=63396-63397;server_port=50010-50011;ssrc=8ED7AB3C;mode="PLAY"
Date: Fri, 20 Jun 2014 11:32:43 GMT
PLAY rtsp://192.168.0.95/onvif-media/media.amp?profile=quality_h264&sessiontimeout=60 RTSP/1.0
CSeq: 9
Authorization: Digest username="root", realm="AXIS_WS_00408CBE6528", nonce="0000fef1Y545792207a3b2347729ae05179cb1ed12ceb8", uri="rtsp://192.168.0.95/onvif-media/media.amp/", response="781688b8bada6152a50d52eedec1ab01"
User-Agent: LibVLC/2.1.3 (LIVE555 Streaming Media v2014.01.21)
Session: 538086BC
Range: npt=0.000-
RTSP/1.0 200 OK
CSeq: 9
Session: 538086BC
Range: npt=0-
RTP-Info: url=rtsp://192.168.0.95/onvif-media/media.amp/trackID=1?profile=quality_h264&sessiontimeout=60;seq=56596;rtptime=3366839297, url=rtsp://192.168.0.95/onvif-media/media.amp/trackID=2?profile=quality_h264&sessiontimeout=60;seq=37449;rtptime=1290938122
Date: Fri, 20 Jun 2014 11:32:45 GMT
GET_PARAMETER rtsp://192.168.0.95/onvif-media/media.amp?profile=quality_h264&sessiontimeout=60 RTSP/1.0
CSeq: 10
Authorization: Digest username="root", realm="AXIS_WS_00408CBE6528", nonce="0000fef1Y545792207a3b2347729ae05179cb1ed12ceb8", uri="rtsp://192.168.0.95/onvif-media/media.amp/", response="2b357063c96c7aa8da7f5764d3d558cc"
User-Agent: LibVLC/2.1.3 (LIVE555 Streaming Media v2014.01.21)
Session: 538086BC
RTSP/1.0 200 OK
CSeq: 10
Session: 538086BC
Date: Fri, 20 Jun 2014 11:32:46 GMT
TEARDOWN rtsp://192.168.0.95/onvif-media/media.amp?profile=quality_h264&sessiontimeout=60 RTSP/1.0
CSeq: 11
Authorization: Digest username="root", realm="AXIS_WS_00408CBE6528", nonce="0000fef1Y545792207a3b2347729ae05179cb1ed12ceb8", uri="rtsp://192.168.0.95/onvif-media/media.amp/", response="e248bcdf09772ff4b4e741bd153c6cf0"
User-Agent: LibVLC/2.1.3 (LIVE555 Streaming Media v2014.01.21)
Session: 538086BC
RTSP/1.0 200 OK
CSeq: 11
Date: Fri, 20 Jun 2014 11:32:57 GMT