如何将多个节目传输流(MPTS)文件重新复用到单个TS中?

时间:2014-05-30 23:54:33

标签: video ffmpeg vlc mpeg2-ts multiplexing

我有多个从卫星接收器录制的MPTS文件,我需要从每个文件中选择程序/服务/ PIDS,将它们重新复用到单个MPTS文件中。我可以选择从每个文件中获取所有服务并将它们添加到最终的MPTS中(如果有人知道不允许我选择程序的多路复用器)

有人知道如何使用Windows或Linux下的开源或免费软件(例如VLC或ffmpeg)来做这件事吗?

1 个答案:

答案 0 :(得分:0)

我最终使用了Oskar Schirmer @ scara.com的多路复用器软件包,这是我能找到的唯一一个开源解决方案,我甚至不确定这个项目是否得到维护,但是它有效

在MPTS ts文件(到另一个文件)中挑选PID的确切命令是:

iso13818ts -F 500 --file 1 source.ts --ts 1 2 13 > destination.ts

其中:

  • -F 500是发送PSI表(PAT& PMT)的时间(毫秒)
  • - file 1 source.ts指定输入文件(source.ts)并为其指定引用ID(1)
  • - ts 1 2 13告诉命令文件1是ts,取出程序2并将其重新映射到输出上的程序13
  • 标准输出是生成的ts,因此需要将其重定向到文件或管道

使用相同的命令,您可以一次重新多路复用多个MPTS流(只要您的系统能够跟上),所以一个简短的例子就是:

iso13818ts -F 500 --file 1 source1.ts --file 2 source2.ts --ts 1 2 13 --ts 2 1 10 > dest.ts

从文件1中获取程序2并使其成为程序13,从文件2中获取程序1并使其成为程序10并将生成的TS放入dest.ts