2つのオーディオストリームを含むビデオファイルがあります。
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 960x540, 58 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 180k tbc
Metadata:
creation_time : 2012-07-21 06:10:08
Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 164 kb/s
Metadata:
creation_time : 2012-07-21 06:10:08
Stream #0:2(eng): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1(side), fltp, 640 kb/s
Metadata:
creation_time : 2012-07-21 06:10:08
それらの1つだけを無効にする方法はありますか?私が実際に必要なのは、そのようなファイルを取得することです。
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 960x540, 58 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 180k tbc
Metadata:
creation_time : 2012-07-21 06:10:08
Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 164 kb/s
Metadata:
creation_time : 2012-07-21 06:10:08
ありがとう
デフォルトでは、ffmpeg
ストリーム選択 は、次の基準に基づいて、ストリームタイプごとに1つのストリームのみをマップします。
同じタイプの複数のストリームが等しくレートする場合、インデックスが最も低いストリームが選択されます。
-map
option は、以下に示すようにこの動作をオーバーライドします。
入力ストリームインデックスを参照して、ffmpeg
に必要なストリームを正確に伝えます。
ffmpeg -i input -map 0:1 -map 0:2 -c copy output
-c copy
will stream copy (re-mux)再エンコードする代わりに、マップされた各ストリーム。または、 ストリーム指定子 を使用します:
ffmpeg -i input -map 0:v -map 0:a:0 -c copy output
ストリーム指定子の使用は、正確なストリームインデックスを知る必要がないため、より柔軟であり、ビデオをオーディオのみの形式にマッピングしようとするなどの偶発的なマッピングを防ぐのに役立ちます。
-map 0:v
は入力0からのすべてのビデオストリームをマップします(ffmpeg
は0からカウントを開始するため、0が最初の入力であり、この場合は唯一の入力です)。
-map 0:a:0
は、入力0からの最初のオーディオストリームをマッピングします。
ffmpeg
にすべてをマッピングするように指示してから、除外するものを選択します。
ffmpeg -i input -map 0 -map -0:a:1 -c copy output
-map 0
は入力0からのすべてのストリームをマップします。
-map -0:a:1
は、入力0から2番目のオーディオストリームを除外します。
ストリーム指定子を使用して、ストリームタイプと特定のストリームを選択できます。詳細はこちら...