ffmpeg でアスペクト比を変更しますが、2 つのオーディオ ストリームと字幕は保持します

ffmpeg でアスペクト比を変更しますが、2 つのオーディオ ストリームと字幕は保持します

次のように ffmpeg を使用してビデオ AR を変更しようとしています。

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

...これは基本的に機能しますが、ソースに存在する 2 番目のオーディオ ストリームと字幕が失われます。何も失わずにこれを行うにはどうすればよいですか?

答え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

関連情報