I downloaded a RTSP protocol from the device manufacturer. According to the instructions in the document, I didn't respond to the issue, dizzy, and finally connected it with its demo, use Wireshark to track a complete process,
I made another complete process.
An RTSP process uses a camera that supports RTSP and uses Delphi's tclientsocket to send a string using a TCP Control,
STR: = 'scribe rtsp: // 192.168.9.88/ch1-s2 RTSP/8080' + #13 #10;
STR: = STR + 'cseq: 1' + #13 #10;
STR: = STR + 'Accept: Application/SDP '+ #13 #10;
STR: = STR + 'Bandwidth: 512000 '+ #13 #10;
STR: = STR + 'Accept-language: de-de' + #13 #10;
STR: = STR + 'user-AGENT: ma_player '+ #13 #10 + #13 #10;
Clntsckt1.socket. sendtext (STR );
The data process is as follows:
Describe-> setup-> play-> teardown
Send
Describe rtsp: // 192.168.9.88/ch1-s2 RTSP/1.0
CSeq: 1
Accept: Application/SDP
Band Width: 512000
Accept-language: de-de
User-Agent: ma_player
Back
RTSP/1.0 401 unauthorized
Server: ESS/2.3.1.6
CSeq: 1
WWW-Authenticate: Basic realm = "Ess"
Send
Describe rtsp: // 192.168.9.88/ch1-s2 RTSP/1.0
CSeq: 2
Accept: Application/SDP
Band Width: 512000
Accept-language: de-de
User-Agent: ma_player
Authorization: Basic ywrtaw46ywrtaw4 =
Back
RTSP/1.0 200 OK
Server: ESS/2.3.1.6
CSeq: 2
Content-Type: Application/SDP
Content-Length: 606
Pragma: No-Cache
Cache-control: No-Cache
Date: sat, Mar 24 2012 22:18:24 GMT
V = 0
O =-1332627108 1332627108 in ip4 0.0.0.0
S = ch1-s2
C = in ip4 0.0.0.0
A = devver: pusher2.
A = groupname: ipcam
A = nickname: CIF
A = partition section: prog_chn1
A = voiceout: 0
M = video 0 RTP/AVP 96
A = control: trackID = 1
A = rtpmap: 96 h264/1000
A = fmtp: 96 profile-level-id = 42e014; sprop-parameter-sets = z0lgfnofb8q =, am4wpia =; packetization-mode = 1
B: As: 512
A = framesize: 96 320-240
A = cliprect: 240,320
A = framerate: 25
M = audio 0 RTP/AVP 0
A = control: trackID = 2
A = rtpmap: 0 PCMU/8000/1
A = fmtp: 0 octet-align = 1
B = as: 64
M = DATA 0 RTP/AVP 98
A = control: trackID = 3
A = rtpmap: 98 X-KATA/1000
A = fmtp: 98 octet-align = 1
B = as: 2
Send
Setup rtsp: // 192.168.9.88/ch1-s2/trackID = 1 RTSP/1.0
CSeq: 3
Transport: RTP/AVP/tcp; unicast; interleaved = 0-1
Accept-language: de-de
User-Agent: ma_player
Authorization: Basic ywrtaw46ywrtaw4 =
Back
RTSP/1.0 200 OK
Server: ESS/2.3.1.6
CSeq: 3
Pragma: No-Cache
Cache-control: No-Cache
Transport: RTP/AVP/tcp; unicast; interleaved = 0-1; SSRC = 07fac83b
Session: 0x5f290
Date: sat, Mar 24 2012 22:35:39 GMT
Send
Setup rtsp: // 192.168.9.88/ch1-s2/trackID = 2 RTSP/1.0
CSeq: 4
Session: 0x5c8a0
Transport: RTP/AVP/tcp; unicast; interleaved = 2-3
Accept-language: de-de
User-Agent: ma_player
Authorization: Basic ywrtaw46ywrtaw4 =
Back
RTSP/1.0 200 OK
Server: ESS/2.3.1.6
CSeq: 4
Pragma: No-Cache
Cache-control: No-Cache
Transport: RTP/AVP/tcp; unicast; interleaved = 2-3; SSRC = 07fac83b
Session: 0x5f290
Date: sat, Mar 24 2012 22:38:22 GMT
Send
Play rtsp: // 192.168.9.88/ch1-s2 RTSP/1.0
CSeq: 5
Range: Treaty = 0.000000-
Session: 0x5c8a0
Accept-language: de-de
User-Agent: ma_player
Authorization: Basic ywrtaw46ywrtaw4 =
Back
RTSP/1.0 200 OK
Server: ESS/2.3.1.6
CSeq: 5
Range: Treaty = now-
Pragma: No-Cache
Cache-control: No-Cache
Session: 0x73ed0
Date: sat, Mar 24 2012 22:43:49 GMT
RTP-Info: url = rtsp: // 192.168.9.88/ch1-s2/trackID = 1, url = rtsp: // 192.168.9.88/ch1-s2/trackID = 2
..........
The stream data is received here .........
Send
Teardown rtsp: // 192.168.9.88/ch1-s2 RTSP/1.0
CSeq: 7
Session: 0x5c80a
Accept-language: de-de
User-Agent: ma_player
Back
RTSP/1.0 200 OK
Server: ESS/2.3.1.6
CSeq: 7
Pragma: No-Cache
Cache-control: No-Cache
Date: sat, Mar 24 2012 22:50:11 GMT
Disconnected