3dBポイントの周波数でフィルタを適用する。フィルターは単極、または両極のいずれかが選択できる。フィルタのロールオフ(減衰傾度)は、1オクターブあたり6dB/極になる。周波数毎に無音にするにはsuperequalizer
フィルタなどを使う。
- 複数の周波数帯の音量を変えるanequalizer
- Windows の ffmpeg で生放送する方法 : compand
- 指定したチャンネルの周波数帯の音量を変えるequalizer
- 18の周波数帯に分けてゲインを調整する superequalizer
基本コマンド
ffmpeg -i input -af highpass=3000 -c:v copy output
ffmpeg -i input -af lowpass=500 -c:v copy output
ffplay -i input -af highpass=3000,lowpass=500
LFEチャンネルだけにlowpass
フィルタを当てる。
ffmpeg -i input -af lowpass=c=LFE -c:v copy output
公式ドキュメント:FFmpeg Filters Documentation : highpass
公式ドキュメント:FFmpeg Filters Documentation : lowpass
オプション
- frequency, f[double]
パスする周波数Hzの指定。highpass
ならばその上をパスして下を減退。lowpass
ならばその下をパスして上を減退。
既定値:3000(highpass)
既定値:500(lowpass)
範囲:0から999999まで - width_type, t[int]
widthで指定する単位 - 1, h:Hz
- 2, o:octave
- 3, q:Q-Factor。既定値
- 4, s:slope
- 5, k:kHz
- width, w[double]
frequencyの帯域幅の指定
既定値:0.707
範囲:0から99999まで - poles. p[int]
極数の指定
既定値:2
範囲:1(単極)と2(両極) - mix, m[double]
数値が小さいほどフィルタの効果がなくなる
既定値:1
範囲:0から1まで - channels, c[channel_layout]
フィルタを当てるチャンネルの指定。個別のチャンネルにフィルタを当てるなら|で分けて複数指定する。|は特殊文字なのでフィルタ全体を“ではさむ
16進数の指定方法より個別のチャンネル名の方がわかりやすい
既定値:0xffffffffffffffff(すべてのチャンネル) - normalize, n[boolean]
DC応答の大きさを0dBに正規化する
既定値:0(正規化しない) - transform. a[int]
transformタイプの指定 - 0, di:direct form I。既定値
- 1, dii:direct form II
- 2, tdii:transposed direct form II
- 3, latt:lattice-ladder form
- 4, svf:state variable filter form
- precision, r[int]
精度の指定 - -1, auto:既定値
- 0, s16:signed 16-bit
- 1, s32:signed 32-bit
- 2, f32:floating-point single
- 3, f64:floating-point double
polesがいわゆる次数ですね、1次だと-6dB/oct、2次は-12dB/oct、3次以上はフィルタを連結しないといけないのがちょっと不便