在 ffmpeg 中更改宽高比,但保留两个音频流和字幕

在 ffmpeg 中更改宽高比,但保留两个音频流和字幕

我正在尝试使用 ffmpeg 更改视频 AR,如下所示:

ffmpeg -i in.mp4 -aspect 16:9 -c copy out.mp4

...虽然这基本上可行,但它会丢失源中存在的第二个音频流以及字幕。我怎样才能做到这一点而不丢失任何东西?

答案1

绘制所有流

ffmpeg -i in.mp4 -aspect 16:9 -map 0 -c copy out.mp4

FFmpeg 默认会选择只有一个视频和音频流来自源,无需地图。

答案2

使用map参数选择音频流并分别复制每个流。示例(请不要在命令行中复制带有注释的示例,您必须先删除注释并将其格式化为单行或用符号连接换行符\!):

ffmpeg -i input.mp4
    -map 0:0 -map 0:1  # Include both (2) audio streams  
    -aspect 16:9       # Change video aspect ratio
    -c:v copy          # Copy audio codec settings
    -c:a copy          # Copy audio codec settings
    -c:s copy          # Copy subtitles
    output.mp4

或者

ffmpeg -i input.mp4
    -map 0:?           # Include all audio streams  
    -aspect 16:9       # Change video aspect ratio
    -c:v copy          # Copy audio codec settings
    -c:a copy          # Copy audio codec settings
    -c:s copy          # Copy subtitles
    output.mp4

相关内容