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


25

vidui.mkv6トラ​​ックのMKVファイル()があります。

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

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

私が使用する場合

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

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

回答:


42

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

map使用できる最も単純な構文は-map i:sで、iはでs始まる入力ファイルIDとストリーム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:12番目のオーディオストリームです。


これを動的に行う方法はありますか?これを言語Xのオーディオトラックに対してのみ行いたいのに、ffmpegでこれを拾わせたいとしますか?
Freedo

@Freedoはい、ドキュメントをご覧ください。たとえば-map 0:m:language:eng
slhck
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.