3
我有一臺IP攝像機,可以通過RTSP爲我提供媒體數據。RTSP獲取流數據
我開發了一個獲取媒體數據的應用程序。
我使用C++和Qt3。
我創建套接字。將它連接到端口= 554上的我的設備IP。
我做的第一個查詢
SETUP rtsp://192.168.4.160/ufirststream RTSP/1.0\r\n CSeq: 1\r\n Transport: RTP/AVP; client_port=554\r\n\r\n
,並得到一個答案:
RTSP/1.0 200 OK CSeq: 1 Date: Sat, Mar 24 2012 17:24:59 GMT Transport: RTP/AVP;unicast;destination=192.168.4.186;source=192.168.4.160;client_port=0-1;server_port=2000-2001 Session: 413F4DDB
我解析它剛開會話值,並做一個查詢:
PLAY rtsp://192.168.4.160/ufirststream RTSP/1.0 CSeq: 1 Session: 413F4DDB
和服務器說:
RTSP/1.0 200 OK CSeq: 1 Date: Sat, Mar 24 2012 17:25:02 GMT Session: 413F4DDB RTP-Info: url=rtsp://192.168.4.160/ufirststream/track1;seq=6716;rtptime=406936711
我怎樣才能獲得媒體數據?我認爲,PLAY方法使服務器給我一個流,但它只給了我一個URL到rtsp和其他信息...
我需要從攝像機的二進制流,你可以給我的下一步的建議??
我必須創建一個服務器套接字綁定在我之前設置的port1上?或者我必須創建客戶端套接字並使用客戶端端口1連接到服務器? – mmmaaak 2012-03-26 11:30:55
@mmmaaak不是服務器套接字,而是'QSocketDevice :: Datagram'類型的'QSocketDevice'。您不必連接到服務器,只需將套接字綁定到空閒的UDP端口即可。 – alexisdm 2012-03-26 16:28:34