OBS Studio を使用したライブ配信音声のラウドネスをどう取り扱ったらよいのか

ライブ配信をするにあたり、視聴する側としても大変気になっていた音声のラウドネスについて、検索すると様々な情報が出てくるのですが、それがどういう基準で述べられているのか分からないものが非常に多かったので、自分で結論が出せるところまで調べて必要なものを作りました

結論

この値に合わせるべきというものではなく自分がこうする、こう考えるという内容になります。

  • AES TD1008 の推奨値を基準とする
    • 配信の統合ラウドネス (Integrated loudness) を -20 LUFS 以上 -18 LUFS 以下に収める
      • -20 LUFS を下回ると視聴時の音量確保に苦労する可能性が高いので、下限に注意を払う
    • トゥルーピークが -1 dBTP (dB True Peak) を超えないようにする
      • 念のため出力直前のミックストラックにフィルター (リミッター) を適用して制限する
  • モニタリングは Flux::MiRA のラウドネスメーター (AES Streaming モード) を使う
    • ターゲットのラウドネスに合わせて表示を調整できる
    • Integrated loudness の表示が見やすい

ラウドネスに関する基準

ラウドネス、トゥルーピークについて国際的な基準となっている情報をまとめました。以下はドキュメントの抜粋 + 意訳が含まれるため、正確な内容は元のドキュメントを参照してください。

ITU-R: 国際電気通信連合無線通信部門 (International Telecommunication Union Radiocommunication Sector) の勧告

  • ITU-R BS.1770
    • ラウドネスの単位 LKFS (Loudness, K-weighted, relative to full scale) と測定方法を定義
      • Programme loudness: コンテンツ全体の平均ラウドネス (無音、相対的にレベルが低い区間を除くためのゲートが設けられている)
    • トゥルーピークの測定方法ガイドラインを提示

EBU: 欧州放送連合 (European Broadcasting Union) の勧告、技術文書

  • EBU R 128
    • ITU-R BS.1770 で定義されている LKFS と同等の LUFS (Loudness Units, referenced to Full Scale) (国際的な命名規則に準拠) を定義
    • 以下の基準を推奨
      • ターゲットラウドネスは −23.0 LUFS ±1.0 LU に正規化されること
      • トゥルーピークレベルは (帯域幅が 20 kHz に制限されたものの場合) −1 dBTP ±0.3 dB を超えてはいけない
  • EBU Tech 3341
    • EBU R 128 を基準にしたラウドネスメーターの仕様を規定
      • Momentary loudness: ゲートなし、400 ms 平均
      • Short-term loudness: ゲートなし、3 秒平均
      • Integrated loudness: 測定開始からのラウドネスの値を Programme loudness と同様に測定した値

AES: オーディオ技術者協会 (Audio Engineering Society) の技術文書

  • AESTD1008 (AESTD1004 の改訂版)
    • 以下を推奨
      • 音声コンテンツの統合ラウドネス: -18 LUFS (上限許容値: +1 LU)
      • 脆弱な再生機器が最大ゲイン時でも音量が小さくなりすぎないようにするため、 コンテンツの統合ラウドネスを -20 LUFS 以上に保つことを推奨

OBS Studio の仕様

ラウドネスやトゥルーピークをモニタリングしたり、プラグインを自作するにあたり調べた内容です。以下の情報は OBS Studio 32.0 の内容です。

単体でモニタリングできる内容

  • 音量ミキサーのレベルメーターにデフォルトで表示されているのは、サンプルピークと RMS の値
    • サンプルピーク
      • サンプリングされた音声信号の最大値を示す
      • レベルメーター上に緑、黄、赤の色で表示される
      • この値が 0 dB 以下であってもトゥルーピークの値が 0 dB を超える可能性がある
    • RMS
      • 二乗平均平方根 (Root Mean Square)
      • 音声信号のエネルギーの平均
      • レベルメーター上に黒い帯として表示される
      • ピークの値だけを見るよりも聴感上の大きさに近い指標が得られるが、人間の聴覚特性を考慮していない
  • 「音声 > メーター > ピークメーターの種類」の設定変更でトゥルーピークを表示させることが可能
    • 注意書きがある通り CPU 使用率が上がる

音声出力のバッファリング

  • 最小 1,024 サンプル (48 kHz において 21 ms) 単位でバッファリングして音声の処理を行う
  • バッファの大きさは 46,080 サンプル (最小値の 45 倍の値、48 kHz において 960 ms) まで動的に拡大される (デフォルト設定、buffering type: dynamically increasing)
    • 環境や状況によって配信中に徐々に音声出力の遅延が大きくなり、映像とずれる原因になる可能性がある
  • 「音声 > 詳細設定 > 低遅延音声バッファリングモード (Decklink/NDI 出力用)」を有効にすると最低値の 1,024 サンプルに固定される (buffering type: fixed)

ログ出力 (関係する箇所の抜粋)

# 低遅延音声バッファリングモード無効 (デフォルト)
---------------------------------
audio settings reset:
samples per sec: 48000
speakers:        2
max buffering:   960 milliseconds
buffering type:  dynamically increasing
---------------------------------

# 低遅延音声バッファリングモード有効
---------------------------------
audio settings reset:
samples per sec: 48000
speakers:        2
max buffering:   21 milliseconds
buffering type:  fixed
---------------------------------

参考情報など

参考にした書籍やプラグインなどの情報を雑多にまとめました。

  • とーくばっく
    • デジタルオーディオ全般について知っておくべきことが学べる書籍
  • OBS Core API Reference
    • OBS Studio の API ドキュメント
  • github.com/obsproject/obs-studio
    • OBS Studio のソースコードなど
  • github.com/obsproject/obs-plugintemplate
    • OBS Studio のプラグインを作成する際のテンプレート
  • Loudness Balance Monitor
    • 音量バランス、ミックスのラウドネス、サンプルピークのクリッピングの状態を緑色、黄色、赤色で表示できる OBS Studio プラグイン (Windows のみ)
    • マイク + BGM などのソースを想定して、音量のバランス調整に最適化された設計
    • ミックスが緑色となるレベルは -20, -18, -16 LUFS の三段階で切り替えが可能
  • Master Level Meter (OBS Plugin)
    • ミックストラックのレベルメーターを表示することのできる OBS Studio プラグイン (Windows, macOS)
    • RMS、サンプルピーク、Short-term loudness が表示できる
    • マスターエフェクト対応する予定なし
  • 配信の音量バランスをリアルタイム診断「ストリーミングボリュームチェッカー」
    • OBS Studioと (Web Socket API) 連携して音量を測定、設定のアドバイスをしてくれるツール (Windows のみ)
    • マイク + BGM などのソースを想定して、音量のバランス調整に最適化された設計
    • v1.1.3 時点でターゲットのラウドネスを任意に指定できる機能はない
  • Virtual Audio Master for OBS Studio
    • アクティブでミュートされていないソースをミックスした音声 (ミックストラック相当) のソースを追加することのできる OBS Studio プラグイン (Windows のみ)
    • 単一のマスターバスとして機能することを想定した設計
  • Source Dock
    • 特定のソースをドックとして表示できる OBS Studio プラグイン (Windows, macOS, Ubuntu)
    • OBS Studio と別のアプリケーションとして動作しているラウドネスメーターの画面をキャプチャーしたものを常時表示しておくことが出来る
    • シーンの状態に依存せずに常時表示できるのが便利
  • Mix Track To Source
    • 今回自分で使うために自作した OBS Studio プラグイン (Windows, macOS, Ubuntu)
    • 1 ~ 6 いずれかのミックストラックをソースの入力にする以外の仕事はしない
    • ルーティングの設計や適用するフィルターは全て利用者任せ

コメント

タイトルとURLをコピーしました