1

语境

  • 大多数 RTP 流(例如来自 IP 摄像机)需要来自 SDP 的一些信息才能对其进行解码。
  • SDP 通常是及时获取的,通常来自 RTSP URL,但其他方式也是可能的(例如 HTTP)。

具体案例

我们有这样一种情况,即使用 VLC 播放 RTP 流(来自摄像机,无论是否有人收听,UDP 始终发送),但不能为 VLC 提供 RTSP URL 以及时获取 SDP。

一个RTSP 服务,但我们需要提前查询它并转储生成的 SDP 文件,以便稍后将其提供给 VLC。无论如何,即时执行 RTSP 查询是没有用的,因为流始终存在。

如何用 VLC 做到这一点?

发帖前先搜索

当然,我一直在搜索 Google、videolan wiki 和 StackExchange。

信息很难找到,因为当人们谈论流媒体、RTSP、RTP 时,他们通常使用 VLC 来生成RTP 流,或者输出 VLC 生成的 SDP,因为它会进行编码等。这里不是这种情况。要转储的 SDP 来自带有单个 RTSP 查询的服务器。

问题

基本上,我正在寻找一个命令行,如:

vlc --sout...something...rtsp://sourceIP:Port/...something...out...myfile.sdp

这会将 SDP 转储到myfile.sdp.

然后,稍后,使用 as 参数运行 vlcmyfile.sdp预计会播放流。

4

1 回答 1

3

我们没有找到单独使用 VLC 的解决方案(我什至看了一点 VLC 源代码)。所以我们使用了某种“蛮力”解决方案,但是嘿,它有效。

我们在配置时所做的是要求 VLC 播放一次流,而 Wireshark 使用过滤器捕获数据包rtsp and sdp。一个数据包出现,其中包含我们想要的 SDP 数据。我们选择它并使用“将选定字节提取到...”并保存到名称以 . 结尾的文件中.sdp

这给了我们一个包含我们想要的 SDP 信息的文件。任务完成。

于 2016-03-30T10:54:11.920 回答