我目前有一個Android應用程序,可以捕獲攝像頭中的視頻並通過RTP流式傳輸。我不使用RTSP。使用VLC播放RTP
我已經創建了一個描述RTP源的SDP文件。我可以在Quicktime 7中打開SDP文件並可以看到流,試圖打開VLC中的SDP文件不起作用。我收到以下錯誤:
live555 demux error: no data received in 10s, aborting
我監視使用Wireshark的RTP包,可以看到網絡上的數據包(見下面的例子):
281956 2545.589171000 10.0.1.25 10.0.1.150 UDP 1442 Source port: 54405 Destination port: 51372
的QuickTime 7似乎沒有有問題結合SDP中的目標端口和播放流,但我看到下面的ICMP數據包試圖使用VLC時:
286674 2925.162140000 10.0.1.150 10.0.1.25 ICMP 70 Destination unreachable (Port unreachable)
我的SDP文件包含:
v=0
o=- 1360349812962 1360349812962 IN IP4 10.0.1.25
s=Unnamed
i=N/A
c=IN IP4 10.0.1.150
t=0 0
a=recvonly
m=video 51372 RTP/AVP 96
b=RR:0
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=42c01e;sprop-parameter sets=Z0LAHukBQHsg,aM4G4g==;
我需要做些什麼才能讓流在VLC中播放?我已經嘗試在啓動VLC時使用參數'--rtp-client-port = 51326',但它似乎沒有什麼區別。
更新1
看來,VLC(至少我使用它的方式)不使用您在SDP指定客戶端端口,它總是分配給它自己的端口,它期待着RTP要發送的數據包。我改變了我的方法,允許我從VLC捕獲端口,並使用該端口作爲目標來啓動我的RTP源,並且它工作正常。這不是一個理想的解決方案。
是否有人知道如何讓VLC使用SDP文件中的目標端口?
你如何在目標機器上啓動VLC?這是一個適合我的例子。 http://stackoverflow.com/questions/20538698/minimum-sdp-for-making-a-h264-rtp-stream – TheMeaningfulEngineer 2013-12-18 07:59:18
運行VLC時你有快速打開嗎?這可能是因爲兩者都試圖在同一個端口上打開一個套接字。 – Saibal 2014-03-02 14:44:00