音声統計データを表示する astats の使い方。メタデータ対応しているので出力したログの加工が容易になる。

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

基本コマンド

ffprobe
ffprobe -f lavfi -i amovie=input,astats=length=0.05:metadata=0:reset=0
ffprobe -f lavfi -i aevalsrc=sin(440*2*PI*t):s=8000:d=1,astats=length=0.05:metadata=0:reset=0

Channel: 1
DC offset: 0.003547
Min level: -1.000000
Max level: 1.000000
Min difference: 0.000000
Max difference: 0.343816
Mean difference: 0.218838
Peak level dB: 0.000000
RMS level dB: -3.009234
RMS peak dB: -3.009234
RMS trough dB: -3.009234
Crest factor: 1.414040
Flat factor: 0.000000
Peak count: 10
Bit depth: 64
Overall
DC offset: 0.003547
Min level: -1.000000
Max level: 1.000000
Min difference: 0.000000
Max difference: 0.343816
Mean difference: 0.218838
Peak level dB: 0.000000
RMS level dB: -3.009234
RMS peak dB: -3.009234
RMS trough dB: -3.009234
Flat factor: 0.000000
Peak count: 10.000000
Bit depth: 64
Number of samples: 1024

ametadata(ffmpeg 3.0 以降のフィルタ)
ffplay -f lavfi -i amovie=input,astats=metadata=1,ametadata=print:key=lavfi.astats.1.DC_offset[out0];movie=input[out1]

adrawgraph
ffplay -f lavfi -i amovie=input,astats=metadata=1,adrawgraph=m1=lavfi.astats.1.DC_offset:min=0.0001:max=0.005

特定のメタデータ、ここでは 1ch(FL) の DC_offset を 1000サンプル毎に表示する
ffprobe -show_entries frame_tags=lavfi.astats.1.DC_offset -of default=noprint_wrappers=1:nokey=1 -v quiet -f lavfi -i amovie=input,astats=length=0.05:metadata=1
公式ドキュメント:FFmpeg Filters Documentation : astats

オプション

メタデータ形式は lavfi.astats.XX に 1 から始まるチャンネル番号か、Overall が使える
個別チャンネルには DC_offset, Min_level, Max_level, Min_difference, Max_difference, Mean_difference, Peak_level, RMS_peak, RMS_trough, Crest_factor, Flat_factor, Peak_count, Bit_depth
Overall には DC_offset, Min_level, Max_level, Min_difference, Max_difference, Mean_difference, Peak_level, RMS_level, RMS_peak, RMS_trough, Flat_factor, Peak_count, Bit_depth, Number_of_samples
が使える

  • length
    以下の時間幅指定
    RMS peakRMS trough
    0.01 – 10[double]
    既定値:0.05
  • metadata
    メタデータフラグをつける
    0 – 1[boolean]
    既定値:0
  • reset
    何フレーム先を再計算するか
    0 – MAX[int]
    既定値:0
  • ここから先はパラメータの設定
  • DC offset
    振幅の変位、0 スタート
  • Min level
    サンプルレベルの最小値
  • Max level
    サンプルレベルの最大値
  • Min difference
    2連続したサンプルの最小差違
  • Max difference
    2連続したサンプルの最大差違
  • Mean difference
    2連続したサンプルの平均
  • Peak level dB
    ピークレベル
  • RMS level dB
    RMS レベル
  • RMS peak dB
    RMS ピーク値
  • RMS trough dB
    RMS スルー値
  • Crest factor
    RMS レベルに対するピークの標準比(dB ではない)
  • Flat factor
    ピークレベルのシグナル Flatness (同じ値を持つ連続したサンプル)(最大または最小のレベル)
  • Peak count
    最大または最小のレベルに何回届いたか(サンプル数ではない)
  • Bit depth
    音声全体のビット深度、このビット深度がそれぞれのサンプルに使われる

コメントを残す

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

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