質問:
ffmpegをモノラルからステレオに変換すると音量が下がるのはなぜですか?
Igor Liferenko
2018-01-15 13:01:09 UTC
view on stackexchange narkive permalink

次のモノラルファイルから始めます: test.wav

audacity では次のようになります:

mono

次に、次のコマンドでステレオに変換します。

  ffmpeg -i test.wav -ac 2 out.wav  

これで次のようになります:

stereo

注意してください振幅が変更されました!

最後に、ステレオをモノラルに戻します:

  ffmpeg -i out.wav -ac 1 back.wav  

開始したときと同じファイルを取得する必要があります。しかし、 audacity では、次の図が表示されます。

sine wave with different phase and amplitude from original

質問は次のとおりです。

1)ステレオに変換したときに振幅が変化したのはなぜですか?

2)モノラルに変換したときに振幅が元に戻らなかったのはなぜですか?

3)振幅を変更するにはどうすればよいですか?モノラルに変換するときに戻りますか?

1 回答:
audionuma
2018-01-15 14:15:02 UTC
view on stackexchange narkive permalink

1-FFmpegは一般的なパンの法則を尊重しようとしているようです(中央のモノラルトラックをステレオトラックにルーティングする場合は、ステレオトラックの各チャンネルでモノラル信号を-3 dB下げます)。目標は、知覚されるラウドネスの一貫性を維持することです。

編集

@Mulvyaで述べたように、パンフィルターを使用して入力ファイルのレベルを変更しないでおくことができます:

  ffmpeg -i test.wav -af "pan = stereo | c0 = c0 | c1 = c0" out.wav  

END編集

2-FFmpegは、宛先トラックの合計が最大レベルを超えないように、寄与している各モノラル信号を下げようとしているようです。

できませんでした -ac オプションを使用する場合に関連するプロセスの明確な説明は見つかりませんが、 AudioChannelManipulationページで、次の文を見つけることができます:

ffmpegは、非常に特別なニーズがない限り、パンフィルターよりも優先されるデフォルトのダウンミックス(およびアップミックス)システムを統合します(-acオプション)。

3-1チャンネル出力への2チャンネル入力の場合:

  ffmpeg -i out.wav -filter:a "volume = 3dB" -ac 1 back.wav コード> 

残り元のレベルの鉱石。上記の理由により、一般的なケースでは注意して使用する必要があります(過負荷を防止します)。

チャネルをそのまま維持するためのモノラルからステレオへのステップには、 `ffmpeg -i test.wav -af" pan = Stereo | c0 = c0 | c1 = c0 "out.wav`を使用します。
ステレオサウンドカードでモノラルファイルを再生するときに、alsaまたはpulseaudioの「舞台裏」で同じことが起こるかどうか知りたいです。
それは別の質問になります。しかし、この質問は、基盤となるOSオーディオアーキテクチャよりも実際のプレーヤーソフトウェアに関連しています。モノラルファイルを再生する場合、一部のプレーヤーはパンの法則を適用せず、そのままのモノラルチャンネルをLおよびR出力チャンネルに配置します。
@audionuma @Gyanステレオをモノラルに変換すると、同じ音量が下がります。その場合、どうすれば同じ「パン」フィルターを使用できますか?


このQ&Aは英語から自動的に翻訳されました。オリジナルのコンテンツはstackexchangeで入手できます。これは、配布されているcc by-sa 3.0ライセンスに感謝します。
Loading...