2017-08-22 4 views
1

私はいくつかのファイルにffmpegを使用しようとしています。 ファイルあたりのオーディオストリームの実際の数(通常はストリームごとに1つのチャネルがあります)は、ffmpegを使用するまでわかりません。 希望の結果は、何とかffmpegにオーディオチャンネルの数を取得させ、コマンドラインで数値を使用して、それらを1つのオーディオチャンネルにまとめます。 目的は、簡単なHTML5ページで使用するための元のビデオファイルのプレビュー版を作成することです。 これはffmpegを1回呼び出すだけで可能ですか? (この問題のいくつかの部分として私はまだ学んでいます。)ffmpegを使用して(ビデオファイル内の)すべてのオーディオストリームを1つのオーディオチャンネルにマージするにはどうすればよいですか?

編集: ここにDumas stackoverflow asker here。 はい、私はffmpeg argsの複数の組み合わせを試してきました。 もう1つの質問に答えるために、私たちは複数のストリームを持つビデオファイルを持っています。 私はすぐにいくつかのcmdlineの例を投稿します。

このcmdlineの例では、何をしたいのですか。 8つのストリームがあり、すべてのオーディオを1つにまとめることができます。問題は、ffmpegのを実行する前に番号を知られている:

ffmpeg -i EXAMPLE.MOV -filter_complex "[0:v]scale=-2:720,format=yuv420p[v];[0:a]amerge=inputs=8[a]" -map "[v]" -map "[a]" -c:v libx264 -crf 23 -preset medium -c:a libmp3lame -ar 44100 -ac 2 OUTPUT.mov 
+0

は何を自分で試してみましたか? – GhostCat

答えて

1

あなたがオーディオストリームの数を見つけ、あなたのffmpegコマンド内の変数として出力を使用するffprobeを使用することができます。 ffprobeによって記載されているオーディオストリームをカウントするwcを使用してバッシュ例:

ffmpeg -i input.mov -filter_complex "[0:v]scale=-2:720,format=yuv420p[v];[0:a]amerge=inputs=$(ffprobe -loglevel error -select_streams a -show_entries stream=codec_type -of csv=p=0 input.mov | wc -l)[a]" -map "[v]" -map "[a]" -c:v libx264 -crf 23 -preset medium -c:a libmp3lame -ar 44100 -ac 2 output.mov 
+0

これは魅力的に機能しました。どうもありがとうございました。 – wkimbrough

関連する問題