自行实现ONVIF协议网络摄像机(IPC)开发(6):RTSP交互获取H264流

一、RTSP简介

    RTSP(Real Time Streaming Protocol),实时流传输协议, 是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学网景和RealNetworks公司提交的IETF RFC标准,该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据,RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或RTP完成数据传输,具体关于RTSP协议的介绍,可以查看博主文章:RTSP协议解析

二、获取H264流

1、通过上篇博客已经获取到RTSP流的URL:rtsp://192.168.100.123:554/user=admin_password=tlJwpbo6_channel=1_stream=0.sdp?real_stream
2、创建tcp socket,IP为192.168.100.123,端口:554;
3、下面的RTSP交互数据都是通过VLC软件播放抓包得到的;

(1)、OPTION

发送send:

OPTIONS rtsp://192.168.100.123:554/user=admin_password=tlJwpbo6_channel=1_stream=0.sdp?
real_stream RTSP/1.0
CSeq: 1
User-Agent: LibVLC/2.2.4 (LIVE555 Streaming Media v2016.02.22)

接收recv:

RTSP/1.0 200 OK
Server: H264DVR 1.0
Cseq: 1
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, GET_PARAMETER, SET_PARAMETER, PLAY, PAUSE

(2)、DESCRIBE

发送send:

DESCRIBE rtsp://192.168.100.123:554/user=admin_password=tlJwpbo6_channel=1_stream=0.sdp?
real_stream RTSP/1.0
CSeq: 2
User-Agent: LibVLC/2.2.4 (LIVE555 Streaming Media v2016.02.22)
Accept: application/sdp

接收recv:

RTSP/1.0 200 OK
Content-Type: application/sdp
Server: H264DVR 1.0
Cseq: 2
Content-Base: 
rtsp://192.168.100.123:554/user=admin_password=tlJwpbo6_channel=1_stream=0.sdp/
Cache-Control: private
x-Accept-Retransmit: our-retransmit
x-Accept-Dynamic-Rate: 1
Content-Length: 374

v=0
o=- 38990265062388 38990265062388 IN IP4 192.168.100.123
s=RTSP Session
c=IN IP4 192.168.100.123
t=0 0
a=control:*
a=range:npt=0-
m=video 0 RTP/AVP 96
a=rtpmap:96 H264/90000 
a=range:npt=0-
a=framerate:0S
a=fmtp:96 profile-level-id=4d001f; packetization-mode=1; sprop-parameter-
sets=J00AH41qBQBboQAAAwABAAADAB6E,KO48gA==
a=framerate:25
a=control:trackID=3

(3)、SETUP
发送send:

SETUP rtsp://192.168.100.123:554/user=admin_password=tlJwpbo6_channel=1_stream=0.sdp?
real_stream/trackID=3 RTSP/1.0
CSeq: 3
User-Agent: LibVLC/2.2.4 (LIVE555 Streaming Media v2016.02.22)
Transport: RTP/AVP/TCP;unicast;interleaved=0-1

接收recv:

RTSP/1.0 200 OK
Server: H264DVR 1.0
Cseq: 3
Session: 3768220;timeout=60
Transport: RTP/AVP/TCP;unicast;interleaved=0-1;mode=PLAY
Cache-Control: private
x-Dynamic-Rate: 1

(4)、PLAY

PLAY rtsp://192.168.100.123:554/user=admin_password=tlJwpbo6_channel=1_stream=0.sdp?
real_stream RTSP/1.0
CSeq: 4
User-Agent: LibVLC/2.2.4 (LIVE555 Streaming Media v2016.02.22)
Session: 3768220
Range: npt=0.000-

接收recv:
RTSP/1.0 200 OK
Server: H264DVR 1.0
Cseq: 4
Range: npt=now-
Session: 3768220

 

你可能感兴趣的:(IPC开发)