この記事でわかること
sidechaincompressフィルタでオーディオダッキング(Audio Ducking)を実現する方法- サイドチェインコンプレッサーの仕組みとパラメータの意味
- ナレーションに連動してBGMを自動で下げる設定例
- attack/release パラメータで自然なダッキング効果を作る方法
動作確認: FFmpeg 8.1 / Windows — 本記事のコマンド 6 件を検証スクリプトで実行し、全て成功しました(2026-09-06) 対象 OS: Windows / macOS / Linux
オーディオダッキングとは
ナレーションや音声(ボイス)が入ったとき、BGMの音量を自動的に下げる技術です。映像作品、ポッドキャスト、解説動画などで広く使われています。FFmpegでは sidechaincompress フィルタで実現できます。
基本的な仕組み
ナレーション(サイドチェイン信号)
↓ 音量が上がる
コンプレッサーが BGM を圧縮
↓
BGM の音量が自動で下がる
sidechaincompress は2つの音声入力を受け取ります:
- 主信号(BGM):圧縮される対象
- サイドチェイン信号(ナレーション):圧縮のトリガー
基本コマンド
ナレーション付き動画と 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.125 | 0.01〜0.05 |
ratio |
圧縮比率(例: 4 = 4:1圧縮) | 2 | 3〜8 |
attack |
コンプレッサーが反応するまでの時間(ms) | 20 | 100〜300 |
release |
コンプレッサーが元に戻るまでの時間(ms) | 250 | 500〜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,asplit=2[voice1][voice2];[bg][voice1]sidechaincompress=threshold=0.02:ratio=4:attack=200:release=1000[ducked];[ducked][voice2]amix=inputs=2:duration=longest[out]" \
-map 0:v -map "[out]" -c:v copy output_mixed.mp4
この例では BGM のダッキング後、ナレーションと最終ミックスします。
ここで asplit が必要な理由
ナレーションを 2 回使っています。コンプレッサーを駆動するサイドチェイン入力として 1 回、
amix の入力としてもう 1 回です。フィルタグラフのラベルは 1 度しか消費できないため、
asplit=2 で明示的に複製する必要があります。
FFmpeg 8.x はこの分岐を自動で挿入してくれるので問題が表面化しません。 しかし Ubuntu 24.04 が標準で配る FFmpeg 6.1 は自動挿入しません。次のエラーで止まります。
Invalid stream specifier: voice.
Stream specifier 'voice' in filtergraph description ... matches no streams.
asplit を自分で書けば、どのバージョンでも動きます。本記事のコマンドを 8.1 と 6.1 の
両方で実行して判明したもので、2026-09-03 までバージョン依存の書き方を掲載していました。
注意事項
サイドチェインコンプレッサーはサンプルレートと音声フォーマットが一致している必要があります。aformat フィルタで統一するのが確実です。
注意: 両入力のサンプルレートが異なる場合、aformat で統一してください。
例: aformat=fltp:44100:stereo
関連記事
- 音量の正規化(loudnorm/LUFS)
- 音量の検出と調整(volumedetect/volume)
- 音声フォーマット変換
動作確認: FFmpeg 8.1 / Windows — 本記事のコマンド 6 件を検証スクリプトで実行し、全て成功しました(2026-09-06) 一次ソース: ffmpeg.org/ffmpeg-filters.html#sidechaincompress
よくある質問
サイドチェーンコンプレッションって何?
別の信号(ナレーション)が大きくなった時に、対象の信号(BGM)を自動で下げるコンプレッサ。FFmpeg では sidechaincompress で実装できます。
スレッショルドとレシオの初期値は?
ポッドキャストならスレッショルド -25dB / レシオ 8:1 から。アタック 5ms / リリース 200ms にすれば、文と文の間で BGM が自然に戻ります。
BGM の音量を下げるだけと比べて何が違う?
ナレーション系では明確に優位 — 一律に音量を下げると間(ま)の BGM まで小さくなって寂しくなる。ダッキングは話してる時だけ下がるのでメリハリが残ります。
声 1 + BGM 2 つでもダッキングできる?
はい。BGM 2 つそれぞれに sidechaincompress を適用(同じ声をサイドチェーン入力として)してから、ダッキング後の出力を合成します。
ポンピング(不自然な音量変動)が出る
アタック・リリースが速すぎ。アタックを 10〜20ms、リリースを 300〜500ms に。レシオを 4:1 まで下げてもマイルドになります。