![ffmpeg でアスペクト比を変更しますが、2 つのオーディオ ストリームと字幕は保持します](https://rvso.com/image/1586713/ffmpeg%20%E3%81%A7%E3%82%A2%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E6%AF%94%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%BE%E3%81%99%E3%81%8C%E3%80%812%20%E3%81%A4%E3%81%AE%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA%20%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%A0%E3%81%A8%E5%AD%97%E5%B9%95%E3%81%AF%E4%BF%9D%E6%8C%81%E3%81%97%E3%81%BE%E3%81%99.png)
次のように 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