この記事でわかること
sidechaincompressフィルタでオーディオダッキング(Audio Ducking)を実現する方法- サイドチェインコンプレッサーの仕組みとパラメータの意味
- ナレーションに連動してBGMを自動で下げる設定例
- attack/release パラメータで自然なダッキング効果を作る方法
テスト済みバージョン: FFmpeg 6.1で確認済み
対象 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[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 6.1 / Ubuntu 24.04 (GitHub Actions runner)
一次ソース: ffmpeg.org/ffmpeg-filters.html#sidechaincompress