我一直在尝试使用FFmpeg更改特定.ts文件的程序编号而没有任何成功。我看到了文档,并提到使用-program选项。但是,我无法按照我的意愿添加流。这是我目前拥有的流的程序信息:
Input #0, mpegts, from 'output_2_without_pgm_num.ts':
Duration: 00:01:49.92, start: 1.400000, bitrate: 1816 kb/s
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, progressive), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x101](ger): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, fltp, 384 kb/s (clean effects)
Stream #0:2[0x102](eng): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, fltp, 384 kb/s (clean effects)
Stream #0:3[0x103](ger): Subtitle: dvb_teletext ([6][0][0][0] / 0x0006)
现在,我想将程序编号从1更改为22.任何想法我怎么能这样做?我已尝试使用-program选项,但我无法将流2和3添加到新创建的.ts文件中。
提前致谢!
答案 0 :(得分:0)
这里涉及两个步骤。使用-map
选项告知ffmpeg要包含在输出中的流,并使用-program
选项设置程序元数据。
ffmpeg -i in.ts -map 0 -c copy -program program_num=22:st=0:st=1:st=2:st=3 out.ts
-map 0
告诉ffmpeg包含第一个输入的所有流。
st
值告诉ffmpeg应该在程序中包含哪些输出流索引。