更改 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

相關內容