使用VLC播放RTP

时间:2013-02-10 20:56:21

标签: vlc rtp sdp

我目前有一个Android应用程序,它从摄像头捕获视频并通过RTP进行流式传输。我不使用RTSP。

我创建了一个描述RTP源的SDP文件。我可以在Quicktime 7中打开SDP文件并且可以看到流,尝试在VLC中打开SDP文件不起作用。我收到以下错误:

  

live555 demux错误:10s内没有收到数据,正在中止

我正在使用Wireshark监控RTP数据包,并且可以看到网络上的数据包(参见下面的示例):

281956  2545.589171000  10.0.1.25   10.0.1.150  UDP 1442    Source port: 54405  Destination port: 51372

Quicktime 7似乎没有问题绑定到SDP中的目标端口并播放流但是在尝试使用VLC时我看到以下ICMP数据包:

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文件中的目标端口?

1 个答案:

答案 0 :(得分:4)

VLC将以下参数(51372)中提到的端口作为目标端口。

  

m =视频51372 RTP / AVP 96

我已尝试使用音频捕捉。

您应该只需要在没有任何参数的情况下使用此SDP配置播放该sdp文件。