web-dev-qa-db-ja.com

特定のビデオとオーディオトラックをffmpegでのみ変換する

MKVファイル(vidui.mkv)6つのトラックが含まれています。

Track 1 - video - xvid - 1920x1080
Track 2 - video - xvid - 720x576
Track 3 - audio -  AAC - 1240kbps - English
Track 4 - audio -  AAC - 648kbps - Spanish
Track 5 - audio -  AAC - 648kbps - Commentary 1
Track 6 - audio -  AAC - 648kbps - Commentary 2

上記のファイルを、h264ビデオ1つとAC3オーディオ1つを含むmp4形式に変換したいと思います。また、トラック1(ビデオ)とトラック5(オーディオ)を変換したいと思います。

私が使うなら

ffmpeg.exe -i vidui.mkv -f mp4 -vcodec libx264 -acodec ac3 -crf 20 -sn -n vidui.mp4

最初のビデオトラックと最初のオーディオトラックを変換しますが、トラック1とトラック5を変換します。

30
hbelouf

-mapオプションドキュメント全体 )を使用して、特定の入力ストリームを選択し、それらを出力にマップできます。

使用できる最も単純なmap構文は-map i:sです。ここで、iは入力ファイルIDで、sはストリームIDで、どちらも0で始まります。あなたの場合、それはトラック04を選択することを意味します:

ffmpeg -i vidui.mkv -c:v libx264 -c:a ac3 -crf 20 -map 0:0 -map 0:4 vidui.mp4

特にビデオ、オーディオ、または字幕トラックを選択したい場合は、 ストリーム指定子 を使用することもできます。

ffmpeg -i vidui.mkv -c:v libx264 -c:a ac3 -crf 20 -map 0:v:0 -map 0:a:1 vidui.mp4

ここで、0:v:0は最初のビデオストリームで、0:a:1は2番目のオーディオストリームです。

46
slhck