ONVIF2.0協議如下:
原理說明:
1、
用戶端和伺服器之間建立一個雙向的串連。使用RTSP協議[ RFC 2326]對反向通道串連進行處理。這裡將存在一種機制用於表明用戶端想建立一個往回通道串連。 RTSP提供了功能標籤來處理這樣的附加的功能。
支援雙向串連的裝置(如音頻或中繼資料串連)應該支援已經介紹RTSP擴充。 2、
[ RFC 2326]的RTSP標準,可以用附加對象頭進行擴充。為了這個目的,將引進一個請求的標籤來處理專門的附加功能(見RFC2326] ,1.5擴充RTSP和12.32需求)
請求標籤是用來判斷是否支援此功能。這頭應包含任何請求並且要求伺服器理解這些特性並能夠正確對這些請求進行應答。
支援反向通道的一種裝置,應當理解的反向通道的標籤:
www.onvif.org/ver20/backchannel
希望建立具有資料反向通道的RTSP串連的客戶應該在請求資訊中包括請求的Require頭 3、
用戶端應當在它的描述請求中包括特性標籤,用以表明應該建立雙向資料連線。
理解這一要求標籤的伺服器應在SDP協議中包含一個正如在媒體類別的配置一樣的額外流媒體。
根據的RTSP標準,一個不理解的反向通道的特性標籤或不支援雙向資料連線RTSP伺服器會響應錯誤碼551 Option not supported。然後,用戶端可以嘗試建立一個沒有反向通道RTSP串連。
一個SDP的檔案被用來描述會話。伺服器應在每一個媒體選項中包括一個a= sendonly或b= recvonly屬性來表明將要發送資料的方向。
伺服器應該列舉出所有支援的解碼規則作為自己媒介選項以及客戶應該選擇哪一種。
我的RTSP信令如下:
time:1495797881.558125; send request [OPTIONS rtsp://192.168.8.9:8554/1 RTSP/1.0
CSeq: 1
User-Agent: Lavf57.56.100
]
time:1495797881.558452;set pRequestMst finish
time:1495797881.570014;OnOptionsResponse 1
time:1495797881.570432;send buff len = 153,buf = [[0RTSP/1.0 200 OK
CSeq: 1
Date: Fri, May 26 2017 11:24:40 GMT
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, GET_PARAMETER, SET_PARAMETER
]]
time:1495797881.576634; send request [DESCRIBE rtsp://192.168.8.9:8554/1 RTSP/1.0
Accept: application/sdp
CSeq: 2
User-Agent: Lavf57.56.100
Require: www.onvif.org/ver20/backchannel
] time:1495797884.851540;send buff len = 978,buf = [[0RTSP/1.0 200 OK
CSeq: 2
Date: Fri, May 26 2017 11:24:44 GMT
Content-Base: rtsp://127.0.0.1:50164/camera/0/01020304050607080900
Content-Type: application/sdp
Content-Length: 792
v=0
o=- 1495797858134194 1 IN IP4 192.168.8.9
s=Session streamed by "RTSPServer"
i=1
t=0 0
a=tool:LIVE555 Streaming Media v2014.07.18
a=type:broadcast
a=control:rtsp://192.168.8.9:8554/1
a=range:npt=0-
a=x-qt-text-nam:Session streamed by "RTSPServer"
a=x-qt-text-inf:1
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
b=AS:500
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=42C01F;sprop-parameter-sets=Z0LAH7kQCgC3QgAAAwACAAADAFEeMGVA,aM48gA==
a=recvonly;
a=control:rtsp://192.168.8.9:8554/1/trackID=1
m=audio 0 RTP/AVP 8
c=IN IP4 0.0.0.0
b=AS:96
a=rtpmap:8 PCMA/8000
a=recvonly;
a=control:rtsp://192.168.8.9:8554/1/trackID=2
m=audio 0 RTP/AVP 8
c=IN IP4 0.0.0.0
b=AS:8
a=rtpmap:8 PCMA/8000
a=sendonly;
a=control:rtsp://192.168.8.9:8554/1/trackID=3
]]
time:1495797884.879539; send request [SETUP rtsp://192.168.8.9:8554/1/trackID=1 RTSP/1.0
Transport: RTP/AVP/UDP;unicast;client_port=15550-15551
CSeq: 3
User-Agent: Lavf57.56.100
]
time:1495797884.921316;send buff len = 207,buf = [[0RTSP/1.0 200 OK
CSeq: 3
Date: Fri, May 26 2017 11:24:44 GMT
Transport: RTP/AVP;unicast;destination=192.168.8.1;source=192.168.8.9;client_port=20006-20007;server_port=0-1
Session: 1AC69105;timeout=65
]]
time:1495797884.921602;SendResponse ok
time:1495797884.961160; send request [SETUP rtsp://192.168.8.9:8554/1/trackID=2 RTSP/1.0
Transport: RTP/AVP/UDP;unicast;client_port=15550-15551
CSeq: 4
User-Agent: Lavf57.56.100
Session: 1AC69105
]time:1495797884.971279;send buff len = 196,buf = [[0RTSP/1.0 200 OK
CSeq: 4
Date: Fri, May 26 2017 11:24:44 GMT
Transport: RTP/AVP;unicast;destination=192.168.8.1;source=192.168.8.9;client_port=20008-20009;server_port=0-1
Session: 1AC69105
]]
time:1495797884.993622; send request [SETUP rtsp://192.168.8.9:8554/1/trackID=3 RTSP/1.0
Transport: RTP/AVP/UDP;unicast;client_port=15554-15555
CSeq: 4
User-Agent: Lavf57.56.100
Session: 1AC69105
Require: www.onvif.org/ver20/backchannel
]
time:1495797885.6728;OnSetupResponse 4
time:1495797885.6856;strTransPort RTP/AVP;unicast;destination=192.168.8.1;source=192.168.8.9;client_port=15554-15555;server_port=6974-6975
time:1495797885.6925;receive backChannel ,transport = RTP/AVP;unicast;destination=192.168.8.1;source=192.168.8.9;client_port=15554-15555;server_port=6974-6975
time:1495797885.7004;m_iBackChannelServerPort := 6974,6975
time:1495797885.7075;delete pMsgLst finish
time:1495797885.197751;receive play 11
time:1495797885.197859;send request info
time:1495797885.197917;OnPlayRequest 5
time:1495797885.197968;m_cSeqNo = 3
time:1495797885.198013;m_bHasReceiveBackChannelInfo = 1
time:1495797885.198059;send play msg
time:1495797885.198129;sendRequest 5
time:1495797885.198354; send request [PLAY rtsp://192.168.8.9:8554/1 RTSP/1.0
Range: npt=0.000-
CSeq: 5
User-Agent: Lavf57.56.100
Session: 1AC69105
Require: www.onvif.org/ver20/backchannel
]
time:1495797885.198474;set pRequestMst finish
time:1495797885.212947;OnPlayResponse 5
time:1495797885.213324;strRTP url=rtsp://192.168.8.9:8554/1/trackID=1;seq=50197;rtptime=675344710,url=rtsp://192.168.8.9:8554/1/trackID=2;seq=27630;rtptime=2250740295,url=rtsp://192.168.8.9:8554/1/trackID=3;seq=0;rtptime=0
time:1495797885.213823;send buff len = 352,buf = [[0RTSP/1.0 200 OK
CSeq: 5
Date: Fri, May 26 2017 11:24:44 GMT
Range: npt=0.000-
Session: 1AC69105
RTP-Info: url=rtsp://127.0.0.1:50164/camera/0/0102030405060708090092.168.8.9:8554/1/trackID=1;seq=50197;rtptime=675344710,url=rtsp://192.168.8.9:8554/1/trackID=2;seq=27630;rtptime=2250740295,url=rtsp://192.168.8.9:8554/1/trackID=3;seq=23230;rtptime=2153740195
]]
下載:http://download.csdn.net/detail/yuanchunsi/9862503