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):

  1. One TCP channel for RTSP to establish the stream.
  2. One UDP for RTP transporting video data.
  3. 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