それ以来、この質問に対する答えは少し混乱し、多くの情報が冗長な情報を含んでおり、他の情報は完全に不正確です。この回答は、これらの回答の情報を合理化すると同時に、それらの問題を解決しようとする試みです。
最も重要なことは、グレゴリーの答え、現在この質問に対するトップ投票の答えは、-ac 2
スイッチを使用することと変わらないことを心に留めておく価値があります-これについては以下で詳しく説明します。
5.1チャンネルオーディオストリームをステレオにダウンミックスする -ac 2
FFmpegには、5.1トラックをステレオにダウンミックスするための機能が組み込まれています。これは、FFmpegのドキュメントが推奨するソリューションでもあります。
注:ffmpeg -ac
は、非常に具体的なニーズがない限り、パンフィルターよりも優先される(オプション)必要があるデフォルトのダウンミックス(およびアップミックス)システムを統合します。
この-ac 2
スイッチは、ソースの6チャンネルストリームの最初の5チャンネルの割合-Back Left、Back Right、Front Left、Front Right、Front Centerを出力ステレオストリームのFront LeftおよびFront Rightチャンネルにミックスすることで機能します。
この場合、このオプションを使用すると、LFEチャンネル(5.1 の.1、サブウーファー用に予約され、ディープな低周波エフェクトに使用)からのオーディオは完全に破棄されます。
残念ながら、私のテスト-ac 2
では、ソースと最も異なる音楽と対話の両方の全体的なレベルが生じ、テストしたすべての式の中で最悪の出力を与えるダウンミックス式になりましたが、テストして見つけることができます必要に応じて完全に適切なダウンミックスを提供します。その場合、他の式を使用するのはやりすぎです。
トランスコード-ac 2
せずに DTSトラックをダウンミックスするには(つまり、コーデックと拡張子を同じに保ちます):
ffmpeg -i "sourcetrack.dts" -c:a dca -ac 2 "stereotrack.dts"
Mephistoの答えで指摘されているように、会話と音楽のバランスが取れていても音量が足りない場合は、音量を上げながらストリームをダウンミックスできます。
ffmpeg -i "sourcetrack.dts" -c:a dca -ac 2 -vol 425 "stereotrack.dts"
ための-vol
スイッチ、ソース100%の体積は、整数値256に相当し、これは、オーディオストリームの全体の体積を増加させるよりも大きい値を使用して。ただし、過度に大きくすると、特に音量の大きいセクションで歪みやアーチファクトが発生する可能性があることに注意してください。
ステレオにオーディオストリームをダウンミックスするために、そして例えば、AC3コーデックにそれをトランスコード:
ffmpeg -i "sourcetrack.dts" -c:a ac3 -ac 2 "stereotrack.ac3"
カスタムミックスアルゴリズムを使用して5.1チャンネルオーディオストリームをステレオにダウンミックスする
より高品質のダウンミックスが必要な場合、または出力にLFEストリームを絶対に含める必要がある場合は、FFmpegのオーディオフィルタースイッチ(-af
)を使用して、カスタムミックス式を使用してオーディオをダウンミックスできます。
ATSCフォーミュラとのダウンミックス(グレゴリーの答え)
この回答を投稿した時点で、この質問に対するトップ投票の回答はGregory'sであり、ATSC仕様(セクション7.8.2、Downmixing to Two Channelsを参照)の式をFFmpegオーディオフィルターに入れました。この仕様自体は、トピックに関するFFmpegのドキュメントによって直接リンクされており、FFmpegが既に-ac 2
スイッチに実装しているものと同じ式である可能性が高いことを示しています。これが当てはまる場合、グレゴリーの答えに式全体を入力することは、-ac 2
スイッチを使用することと変わらないため、時間の無駄です。
両方-ac 2
と-af
グレゴリーの回答からのフィルターを使用して同じ入力オーディオを再エンコードすることにより、これを確実にテストすることにしました(使用された正確なコマンドはこの回答の脚注で見ることができます)。
次に、結果の出力ファイルのサイズを比較し、バイト単位で同じサイズであることがわかりました。
最後に、Audacityで2つの出力ファイルの両方を開き、それらの波形を比較して同一であることを確認しました(クリックして拡大)。
したがって、グレゴリーの答えで詳述されているATSC式はFFmpegによって既に実装されているものと同じであり、それを使用しないと何も-ac 2
しない場合はそれを使用することは完全に冗長であり、はるかに面倒なコマンドであることがかなり決定的に思えます。
LFEチャンネルを破棄せずにダウンミキシング(Dave_750の答え)
回答に含まれているいくつかの中で、これは完全に破棄するのではなく、LFEチャンネルを出力ステレオにミックスするように見えるダウンミックス公式の唯一のものであり、その結果、ソースからの最小の音を保証するものは失った。
全体の音量レベルは、を行うよりも高くて充実してい-ac 2
ますが、下のNightmode Dialogueダウンミックスよりも低くなっています。ただし、音楽レベルはNightmode Dialogueダウンミックスよりもソースにはるかに近く、LFEトラックが含まれているため、このダウンミックス式を使用しながら出力の音量を上げると、他のすべてのソースよりも5.1ソースに忠実な出力ストリームを作成できます私がテストした式。
可能であれば、このダウンミックス式とNightmode Dialogueダウンミックスの両方を使用してオーディオストリームをエンコードし、2つの波形を注意深く比較してどちらが良いかを判断することを強くお勧めします。
この式を使用して5.1トラックをステレオにダウンミックスし、ボリュームレベルを425(256は元のソースのボリュームレベルの100%)に増やします。
ffmpeg -i "sourcetrack.dts" -c dca -vol 425 -af "pan=stereo|FL=0.5*FC+0.707*FL+0.707*BL+0.5*LFE|FR=0.5*FC+0.707*FR+0.707*BR+0.5*LFE" "outputstereo.dts"
Robert CollierのNightmode Dialogueとのダウンミックス(Shane Harrelson's answer)
Nightmode対話式で作成されたロバート・コリアーにDoom9のフォーラムと彼の答えにシェーン・ハレルソンによって供給、よりはるかに優れたダウンミックスでの結果-ac 2
スイッチ-代わりに、過度に静かな対話のは、それが戻ってはるかに近くにあるレベルにそれらをもたらしますソース。
Robert Collierのミックスの説明から:
eac3toを使用して多くのDTSムービートラックを5.1から2.0に変換した後、デフォルトのeac3toチャンネルマッピングが非常に静かなダイアログと過度に大きな音楽とアクションシーンをもたらすことを発見しました。eac3toチャンネルダウンミックス係数には科学的根拠がありますが、対話量が少ないため、実際にはよく聞こえません。このプリセットは、左右のチャンネルの音楽がまだ聞こえているがバックグラウンドでより明瞭なダイアログを探している人向けです。
ご覧のとおり、フロントセンター(ダイアログ)が適切に表示され、元のレベルにとどまりますが、音楽と爆発はバックグラウンドエフェクトのままで、圧倒されません。このプリセットを使用すると、DTS 5.1から2.0に変換された映画を見るときに、ダイアログを聞くために音量ノブを常にいじる必要があるという問題が解決されます。(特に、他の人を起こしたくないが、会話を聞くことができるようにしたい夜に映画を見るために)。
残念ながら、このダウンミックス式の音楽は5.1ソース(「ナイトモード」ミックスを作成するコリアーの意図を考慮して設計された可能性が高い)よりもはるかに低く、LFEトラックが完全に失われるため、全体の出力オーディオは音量を上げたDave_750のフォーミュラと同じか、ソースに近い音。
ただし、何らかの理由でストリーム全体の音量を上げたくない場合は、Nightmode Dialogueが最適なオプションになる可能性があります-ただし、オーディオストリームを両方にエンコードし、2つの波形を注意深く比較することを強くお勧めします。
FFmpegのナイトモードダイアログ式でダウンミックスするには:
ffmpeg -i "sourcetrack.dts" -c dca -af "pan=stereo|FL=FC+0.30*FL+0.30*BL|FR=FC+0.30*FR+0.30*BR" "stereotrack.dts"
Tarcの答え
この答えは、シェーンハレルソンの答えからNightmode Dialogueダウンミックスの式をMKVコンテナーのオーディオストリームを変換するコマンドに単純に入れます。この回答で指定されたコマンドは、このようなオーディオストリームでは正常に機能しますが、スタンドアロンのオーディオトラックに適応させるとエラーが発生します。
フィルタリングとストリームコピーを一緒に使用することはできません
これは、ダウンミックス時にオーディオコーデックをコピーできないためです-FFmpegが出力ストリームに行う他のすべての変更と同様に、ダウンミックスでは、変更を適用するためにトラックを再エンコードする必要があります。
このコマンドには、-ac 2
FFmpegが無視する冗長スイッチも含まれていました。
テストコマンド
この回答のために実施したテストの信頼性を実証するために、各ダウンミックス式のテストに使用したすべてのコマンドを以下に示します。
-ac 2
オプションに使用されるテストコマンド:
ffmpeg -i "signed16bitPCM.wav" -c pcm_s16le -ac 2 "Audio 1 (-ac 2).wav"
グレゴリーの答えに使用されるテストコマンド:
ffmpeg -i "signed16bitPCM.wav" -c pcm_s16le -af "pan=stereo|FL < 1.0*FL + 0.707*FC + 0.707*BL|FR < 1.0*FR + 0.707*FC + 0.707*BR" "Audio 2 (ATSC Algorithm Downmix).wav"
Dave_750の答えに使用されるテストコマンド:
ffmpeg -i "signed16bitPCM.wav" -c pcm_s16le -vol 425 -af "pan=stereo|FL=0.5*FC+0.707*FL+0.707*BL+0.5*LFE|FR=0.5*FC+0.707*FR+0.707*BR+0.5*LFE" "Audio 4 (Dave750 Downmix).wav"
シェーンハレルソンの答えに使用されたテストコマンド:
ffmpeg -i "signed16bitPCM.wav" -c pcm_s16le -af "pan=stereo|FL=FC+0.30*FL+0.30*BL|FR=FC+0.30*FR+0.30*BR" "Audio 3 (Nightmode Dialogue Downmix).wav"