我想從具有RTSP的設備獲取一些視頻數據。通過TCP通過RTSP獲取視頻
UDP上的RTSP運行良好,但我需要通過TCP。
發出RTSP命令後,我收到RTP,但我不知道如何在這裏處理它們。 有效載荷是如下:$ [信道 - 1個字節] [長度 - 2字節] [數據]
的事情是,我接收這些分組,有時還包,其中信道是10或99等
那麼有誰能請提供一些關於如何處理有效載荷的輸入?
我想從具有RTSP的設備獲取一些視頻數據。通過TCP通過RTSP獲取視頻
UDP上的RTSP運行良好,但我需要通過TCP。
發出RTSP命令後,我收到RTP,但我不知道如何在這裏處理它們。 有效載荷是如下:$ [信道 - 1個字節] [長度 - 2字節] [數據]
的事情是,我接收這些分組,有時還包,其中信道是10或99等
那麼有誰能請提供一些關於如何處理有效載荷的輸入?
全部在RFC 2326 "Real Time Streaming Protocol (RTSP)"。需要「10.12嵌入式(交叉存取)二進制數據」:如RTP分組
流數據由ASCII美元符號(24進制),後跟一字節信道標識符封裝,隨後的長度封裝的二進制數據爲網絡字節順序中的二進制雙字節整數。流數據緊隨其後,沒有CRLF,但包括上層協議頭。每個$塊恰好包含一個上層協議數據單元,例如一個RTP分組。
有一個小例子,有作爲:
S->C: $\000{2 byte length}{"length" bytes data, w/RTP header}
S->C: $\000{2 byte length}{"length" bytes data, w/RTP header}
S->C: $\001{2 byte length}{"length" bytes RTCP packet}
這是TCP/RTP數據包格式:
[$ - 1byte][Transport Channel - 1byte][RTP data length - 2bytes][RTP data]
剩下的就是像UPD
更多信息閱讀process raw rtp packets
這是我所遵循的確切文件;但我沒有足夠的數據。此外,我使用Wireshark檢查了輸入,並看到以下消息:[格式錯誤的數據包:RTP]。我是否應該將RTP的所有有效負載連接起來,直到接收到另一個負載,如您描述的第一行中的兩行?另外,有效載荷非常大,而數據長度只能說22個字節。在這種情況下,我可以從哪裏獲取PPS和SPS? –
它應該基本上是您通過UDP接收的相同數據。 –