无法更改视频的节目编号

时间:2018-05-17 05:08:40

标签: audio video ffmpeg

我一直在尝试使用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文件中。

提前致谢!

1 个答案:

答案 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应该在程序中包含哪些输出流索引。