この記事でわかること

  • sidechaincompress フィルタでオーディオダッキング(Audio Ducking)を実現する方法
  • サイドチェインコンプレッサーの仕組みとパラメータの意味
  • ナレーションに連動してBGMを自動で下げる設定例
  • attack/release パラメータで自然なダッキング効果を作る方法

テスト済みバージョン: FFmpeg 6.1で確認済み
対象 OS: Windows / macOS / Linux


オーディオダッキングとは

ナレーションや音声(ボイス)が入ったとき、BGMの音量を自動的に下げる技術です。映像作品、ポッドキャスト、解説動画などで広く使われています。FFmpegでは sidechaincompress フィルタで実現できます。


基本的な仕組み

ナレーション(サイドチェイン信号)
       ↓ 音量が上がる
コンプレッサーが BGM を圧縮

BGM の音量が自動で下がる

sidechaincompress は2つの音声入力を受け取ります:

  1. 主信号(BGM):圧縮される対象
  2. サイドチェイン信号(ナレーション):圧縮のトリガー

基本コマンド

ナレーション付き動画と BGM ファイルを使ったダッキング:

ffmpeg -i input.mp4 -i input.mp3 \
  -filter_complex "[0:a]aformat=fltp:44100:stereo[bg];[1:a]aformat=fltp:44100:stereo[voice];[bg][voice]sidechaincompress=threshold=0.02:ratio=4:attack=200:release=1000[ducked]" \
  -map 0:v -map "[ducked]" -c:v copy output_ducked.mp4

この例では input.mp4 の音声をBGM、input.mp3 をナレーションとして使い、ナレーション発声時にBGMを下げます。


パラメータの説明

パラメータ説明デフォルト推奨範囲
threshold圧縮を開始するサイドチェイン信号のレベル0.1250.01〜0.05
ratio圧縮比率(例: 4 = 4:1圧縮)23〜8
attackコンプレッサーが反応するまでの時間(ms)20100〜300
releaseコンプレッサーが元に戻るまでの時間(ms)250500〜2000
makeupコンプレッサー後の音量補正(dB)1
kneeニー幅(ソフトニーの滑らかさ)2.82843

threshold の調整

ナレーションの音量に合わせて threshold を調整します。値が小さいほど弱い音声でも反応します:

ffmpeg -i input.mp4 -i input.mp3 \
  -filter_complex "[0:a]aformat=fltp:44100:stereo[bg];[1:a]aformat=fltp:44100:stereo[voice];[bg][voice]sidechaincompress=threshold=0.05:ratio=4:attack=200:release=1000[ducked]" \
  -map 0:v -map "[ducked]" -c:v copy output.mp4

自然なダッキング効果のための設定

attack と release を調整することで、ダッキングの「ふわっ」とした自然な動作を作れます。

ゆっくりとしたダッキング(自然な感じ)

ffmpeg -i input.mp4 -i input.mp3 \
  -filter_complex "[0:a]aformat=fltp:44100:stereo[bg];[1:a]aformat=fltp:44100:stereo[voice];[bg][voice]sidechaincompress=threshold=0.02:ratio=6:attack=300:release=1500[ducked]" \
  -map 0:v -map "[ducked]" -c:v copy output_natural.mp4

素早く反応するダッキング(タイトな感じ)

ffmpeg -i input.mp4 -i input.mp3 \
  -filter_complex "[0:a]aformat=fltp:44100:stereo[bg];[1:a]aformat=fltp:44100:stereo[voice];[bg][voice]sidechaincompress=threshold=0.02:ratio=8:attack=50:release=500[ducked]" \
  -map 0:v -map "[ducked]" -c:v copy output_tight.mp4

BGM の音量を事前に調整してからダッキング

BGMが大きすぎる場合、事前に音量を下げてからダッキングを適用します:

ffmpeg -i input.mp4 -i input.mp3 \
  -filter_complex "[0:a]volume=0.5,aformat=fltp:44100:stereo[bg];[1:a]aformat=fltp:44100:stereo[voice];[bg][voice]sidechaincompress=threshold=0.02:ratio=4:attack=200:release=1000[ducked]" \
  -map 0:v -map "[ducked]" -c:v copy output.mp4

ナレーションと BGM を最終的にミックスする

ダッキング後にナレーション音声を加えて最終的なミックスを作る:

ffmpeg -i input.mp4 -i input.mp3 \
  -filter_complex "[0:a]aformat=fltp:44100:stereo[bg];[1:a]aformat=fltp:44100:stereo[voice];[bg][voice]sidechaincompress=threshold=0.02:ratio=4:attack=200:release=1000[ducked];[ducked][voice]amix=inputs=2:duration=longest[out]" \
  -map 0:v -map "[out]" -c:v copy output_mixed.mp4

この例では BGM のダッキング後、ナレーションと最終ミックスします。


注意事項

サイドチェインコンプレッサーはサンプルレートと音声フォーマットが一致している必要があります。aformat フィルタで統一するのが確実です。

注意: 両入力のサンプルレートが異なる場合、aformat で統一してください。
例: aformat=fltp:44100:stereo

関連リソース

よく使うオプション・フィルタ・コーデック設定をまとめた PDF チートシートです。手元に置いておくと調べる時間を短縮できます。

FFmpeg チートシート

関連記事


動作確認: ffmpeg 6.1 / Ubuntu 24.04 (GitHub Actions runner)
一次ソース: ffmpeg.org/ffmpeg-filters.html#sidechaincompress