我尝试使用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流式传输,则效果很好。我可以选择我的MPTS中的任何程序并将其输出,我可以启动几个VLC窗口并设置不同程序的流媒体。但GUI在我的案例中并不起作用。
为什么vlc无法使用除源文件
中定义的第一个以外的程序答案 0 :(得分:0)
使用你的命令我得到:
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
// Always call the superclass so it can restore the view hierarchy
super.onRestoreInstanceState(savedInstanceState);
// Restore state members from saved instance
mCurrentScore = savedInstanceState.getInt(STATE_SCORE);
mCurrentLevel = savedInstanceState.getInt(STATE_LEVEL);
}
这似乎可以通过从let path = try! NSFileManager.defaultManager().URLForDirectory(.DocumentDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: true)
let imageURL = path?.URLByAppendingPathComponent("images")
try! NSFileManager.defaultManager().createDirectoryAtURL(imageURL!, withIntermediateDirectories: true, attributes: nil)
[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://...'
来解决
mux=ts
它仍然会抱怨dst=udp
和cvlc input.ts --sout '#duplicate{dst=udp{dst=...},select="program=94",dst=udp{dst=...},select="program=102"}'
,但它会开始通过UDP发送mpga
。不知道它不喜欢什么,也许与muxer选择有关。