【问题标题】:Playing RTP using VLC使用 VLC 播放 RTP
【发布时间】: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 的?这是一个对我有用的例子。 stackoverflow.com/questions/20538698/…
  • 在运行 VLC 时是否打开了 quicktime?可能两者都试图在同一个端口上打开一个套接字。

标签: vlc rtp sdp


【解决方案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 服务器客户端模型中的流式传输中遇到了一些问题。如果您尝试过,如果我能从您的经验中学习,那就太好了..
猜你喜欢
  • 2014-09-21
  • 2021-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-23
  • 2011-10-08
  • 2014-01-19
  • 1970-01-01
相关资源
最近更新 更多