使用 VLC 播放 RTP
Posted
技术标签:
【中文标题】使用 VLC 播放 RTP【英文标题】:Playing RTP using VLC 【发布时间】:2013-01-25 23:38:27 【问题描述】:我目前有一个 android 应用程序,它正在从摄像头捕获视频并通过 RTP 流式传输。我不使用 RTSP。
我创建了一个描述 RTP 提要的 SDP 文件。我可以在 Quicktime 7 中打开 SDP 文件并且可以看到流,尝试在 VLC 中打开 SDP 文件不起作用。我收到以下错误:
live555 demux 错误:10 秒内没有收到数据,正在中止
我正在使用 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 文件中的目标端口?
【问题讨论】:
你是如何在目标机器上启动 VLC 的?这是一个对我有用的例子。 ***.com/questions/20538698/… 在运行 VLC 时是否打开了 quicktime?可能两者都试图在同一个端口上打开一个套接字。 【参考方案1】:VLC 将下面参数 (51372) 中提到的端口作为目标端口。
m=视频 51372 RTP/AVP 96
我已经尝试过音频捕获。
您应该只需要使用此 SDP 配置播放不带任何参数的 sdp 文件。
【讨论】:
不幸的是,这对我不起作用。 VLC 忽略 SDP 中的端口。我想知道我正在运行的 VLC 版本是否存在错误。 @lucasweb:哦。仅供参考 - 我已经在 2.0.2 和 2.0.5 上对其进行了测试。您是否尝试过将 RTP 音频从一个 VLC 发送到另一个 VLC? (带有 SDP 文件)。我在 VLC 服务器客户端模型中的流式传输中遇到了一些问题。如果您尝试过,如果我能从您的经验中学习,那就太好了..以上是关于使用 VLC 播放 RTP的主要内容,如果未能解决你的问题,请参考以下文章
使用 VLC 从其他计算机上的 ffmpeg 接收 rtp (opus) 流