目標となる LUFS とラウドネスレンジ、トゥルーピークを調整する loudnorm フィルタの使い方。1回の処理で行うのと、1回目の解析結果を使って2回の処理を行う方法の2種類がある。loudnorm フィルタを当てるとサンプリング周波数が192kHzにリザンプルされるので、-araresample フィルタで目標のサンプリング周波数を指定する。

基本コマンド

目標 LUFS を -14、トゥルーピークを -3、ラウドネスレンジを 4 にして、出力結果の要点をコンソールに表示。
ffmpeg -i input -af "loudnorm=I=-14:TP=-3:LRA=4:print_format=summary" -vn -f null -

1回で処理を終えるなら pan フィルタでチャンネル数を明示して aresample フィルタで目標のサンプリング周波数を指定する。以下は2チャンネルの48kHzの例で libsoxr でリザンプルしている。libsoxr を有効にしていないなら周波数だけを指定する。
ffmpeg -i input -af "loudnorm=I=-14:TP=-3:LRA=4:print_format=summary,pan=stereo|c0=FL|c1=FR,aresample=48000:resampler=soxr" -c:v copy output

1回目の解析結果を使って2回の処理を行う方法と要点の例。
ffmpeg -i input -af "loudnorm=I=-14:TP=-3:LRA=4:print_format=json" -vn -f null -

{
        "input_i" : "-8.18",
        "input_tp" : "1.10",
        "input_lra" : "4.40",
        "input_thresh" : "-18.22",
        "output_i" : "-13.44",
        "output_tp" : "-3.00",
        "output_lra" : "3.80",
        "output_thresh" : "-23.46",
        "normalization_type" : "dynamic",
        "target_offset" : "-0.56"
}

それぞれの input と offset の値をオプションで指定する。その結果 output の値が調整されている。
ffmpeg -i input -af "loudnorm=I=-14:TP=-3:LRA=4:measured_I=-8.18:measured_TP=1.1:measured_LRA=4.4:measured_thresh=-18.22:offset=-0.56:print_format=json,pan=stereo|c0=FL|c1=FR,aresample=48000:resampler=soxr" -c:v copy output

{
        "input_i" : "-8.18",
        "input_tp" : "1.10",
        "input_lra" : "4.40",
        "input_thresh" : "-18.22",
        "output_i" : "-13.99",
        "output_tp" : "-3.00",
        "output_lra" : "3.80",
        "output_thresh" : "-24.01",
        "normalization_type" : "dynamic",
        "target_offset" : "-0.01"
}

公式ドキュメント:FFmpeg Filters Documentation : loudnorm

参考記事
オーディオコンテンツのラウドネス値の正規化 | Alexa Skills Kit
windows – ffmpeg to normalize loudness of a video – Stack Overflow

オプション

要点で表示される順番とオプション指定の順番が異なる。

  • I, i[double]
    目標のラウドネス値
    既定値:-24
    範囲:-70 から -5 まで
  • LRA, lra[double]
    目標のラウドネスレンジ
    既定値:7
    範囲:1 から 20 まで
  • TP, tp[double]
    トゥルーピークの最大値の指定
    既定値:-2
    範囲:-9 から 0 まで
  • measured_I, measured_i[double]
    測定した入力ファイルのラウドネス値
    既定値:0
    範囲:-99 から 0 まで
  • measured_LRA, measured_lra[double]
    測定した入力ファイルのラウドネスレンジ
    既定値:0
    範囲:0 から 99 まで
  • measured_TP, measured_tp[double]
    測定した入力ファイルのトゥルーピーク
    既定値:99
    範囲:-99 から 99 まで
  • measured_thresh[double]
    測定した入力ファイルの閾値
    既定値:-70
    範囲:-99 から 0 まで
  • offset[double]
    ゲインオフセット
    既定値:0
    範囲:-99 から 99 まで
  • linear[boolean]
    可能なら線形ノーマライズする
    既定値:1
  • dual_mono[boolean]
    入力ファイルをデュアルモノラルとして扱う
    既定値:0
  • print_format[int]
    解析結果を表示するフォーマット
    • 0, none:非表示。既定値
    • 1, json
    • 2, summary:小数点第2位は四捨五入

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)