VLC MPTS 流媒体

VLC MPTS streaming

我正在尝试使用 VLC 作为 UDP 多播流式传输 MPEG-TS。我有一个包含多个程序的录制文件。我需要在我的输出中接收每个程序作为单个程序 TS。

我在 ubuntu 14.04 中使用控制台界面执行此操作,但遇到问题。除了第一个程序,我无法输出任何程序。

cvlc MyMPTS.ts --sout '#duplicate{dst=udp{mux=ts,dst=239.233.1.1:5510},select="program=1"}' -

此命令运行良好,但如果我尝试将另一个程序添加到链接中或将我的程序编号更改为另一个程序编号,我会得到以下输出:

[0x7ff748c93c38] main decoder error: cannot create packetizer output (mpga)
[0x7ff748c8c168] main decoder error: cannot create packetizer output (mpgv)

并且输出没有任何内容

如果我使用 GUI 进行流式传输,效果会很好。我可以 select 我的 MPTS 中的任何程序并将其输出,我可以启动多个 windows 的 VLC 并使用不同的程序设置流媒体。但是 GUI 在我的情况下不起作用。

为什么 vlc 不能使用源文件中定义的第一个程序以外的程序

使用你的命令我得到:

[00007fa880008b38] stream_out_standard stream out error: UDP output is only valid with TS mux
[00007fa880008b38] stream_out_standard stream out error: no suitable sout mux module for `udp/‌​ts://...'

这似乎可以通过从 dst=udp 中删除 mux=ts 来解决:

cvlc input.ts --sout '#duplicate{dst=udp{dst=...},select="program=94",dst=udp{dst=...},select="program=102"}'

它仍然会抱怨 mpgampgv 但它会开始通过 UDP 发送 mpeg-ts。不知道它不喜欢什么,也许与 muxer 选择有关。