vlc - 使用 VLC 播放 RTP

标签 vlc rtp sdp

我目前有一个 Android 应用程序,它正在从相机捕获视频并通过 RTP 流式传输。我不使用 RTSP。

我创建了一个描述 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 似乎没有问题绑定(bind)到 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 文件中的目标端口?

最佳答案

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

m=video 51372 RTP/AVP 96



我已经尝试使用音频捕获。

您应该只需要使用此 SDP 配置播放该 sdp 文件而无需任何参数。

关于vlc - 使用 VLC 播放 RTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14802490/

相关文章:

python - 使用 vlc pip 产生巨大的回声

bash - 使用终端的 VLC 屏幕捕获

java - 基于 WEB 的应用程序与桌面集成 - 技术?

android - Android 4.0及以上的RTP-Server

android - Asterisk 中的文件传输支持

javascript - 诊断 WebRTC ICE 故障

embed - VLC 播放器嵌入代码在 ie 中不起作用。

vlc - 如何通过 vlc 插件播放 youtube 视频?

c - rtph264pay序列编号

c++ - C++ Linux蓝牙sdp_connect仅以root特权成功