大きすぎる音は小さく、小さすぎる音は大きく聞き取りやすい音量に変えるdynaudnorm
フィルタの使い方。雑談などの声中心なら聞こえやすくなるので効果的で、急に音量が変わって聞き取りにくい音声を修正するのにも使える。
音量を調べるにはvolumedetect、ebur128、showwavespic
などのフィルタがある。
基本コマンド
ffmpeg -i input -af dynaudnorm -c:v copy output
ffplay -i input -af dynaudnorm
差分を手軽に調べるにはshowwavespic
を使う。
ffmpeg -i input -vn -filter_complex dynaudnorm,showwavespic dynaudnorm.png
ffmpeg -i input -vn -filter_complex showwavespic non-dynaudnorm.png
上下に画像比較(上がdynaudnorm
フィルタを当てている)。
ffmpeg -i input -vn -filter_complex asplit[0][1];[0]dynaudnorm,showwavespic[top];[1]showwavespic[bot];[top][bot]vstack compared_dynaudnorm.png
公式ドキュメント:FFmpeg Filters Documentation : dynaudnorm
オプション
オプションの詳細は公式ドキュメントを参照。
- framelen, f[int]
ミリ秒当たりのフレームの長さ
既定値:500
範囲:10から8000まで - gausssize, g[int]
ガウスフィルタの適応幅
既定値:31
範囲:3から301までの奇数 - peak, p[double]
ピーク音量の設定。
既定値:.095(変えるのは非推奨)
範囲:0から1まで - maxgain, m[double]
最大ゲインの設定
既定値:10.0
範囲:1.0から100.0まで - targetrms, r[double]
目標RMS(二乗平均平方根)の設定
既定値:0.0
範囲:0.0から1.0まで - coupling, n[boolean]
それぞれのチャンネルに同様のフィルタを当てる
既定値:1 - correctdc, c[boolean]
DCバイアス補正
既定値:0 - altboundary, b[boolean]
別の境界補正の設定
既定値:0 - compress, s[double]
古典的な圧縮方法を使う
既定値:0.0
範囲:0.0から30.0まで - threshold, [double]
しきい値の設定
既定値:0
範囲:0から1まで - channels, h[string]
フィルタするチャンネルの設定
既定値:”all” - overlap, o[double]
フレームオーバーラップの設定
既定値:0
範囲:0から1まで - curve, v[string]
任意のピークカーブの設定
Thank you so much for this post! I’ve been using this filter, and this is a big help to me! Thanks again!