我目前有一个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