使用 VLC 使用 RTSP 获取 SDP 文件一次

Use VLC to fetch SDP file once using RTSP

上下文

具体案例

我们有一种情况,RTP 流(来自摄像机,UDP 始终发送,无论是否有人收听)将使用 VLC 播放,但提供 VLC 一个 RTSP URL 来获取 SDP时间不是一种选择。

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

如何使用 VLC 做到这一点?

先搜索 post

当然,我一直在搜索 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

然后,稍后,运行 以 myfile.sdp 作为参数的 vlc 将播放流。

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

我们在配置时做的是要求 VLC 播放一次流,而 Wireshark 使用过滤器 rtsp and sdp 捕获数据包。出现一个包含我们想要的 SDP 数据的数据包。我们 select 它并使用 "extract selected bytes to ..." 并保存到名称以 .sdp.

结尾的文件

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