audio - 无法更改视频的节目编号

标签 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 文件中。

提前致谢!

最佳答案

这里涉及两个步骤。使用 -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 values 告诉 ffmpeg 哪些输出流索引应该包含在程序中。

关于audio - 无法更改视频的节目编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50383707/

相关文章:

java - 旧曲结束后如何自动开始新曲

audio - 测量音频噪声电平

android - 可以实时监控扬声器输出吗?

android - 无法使用多部分实体上传视频文件

FFMPEG 将水印添加到 MP4

c# - 在独立应用程序中播放嵌入式WAV

html - 是否可以使用 HTML5 MediaSource 动态生成任意尺寸和长度的单色视频?

java - Youtube API V3 Java 无需调用浏览器即可上传视频

python - 使用 openCV cv2VideoCapture 打开视频文件时出错

python - ffmpeg - 帮助理解+纠正错误信息