音声統計データを表示するastats
の使い方。メタデータ対応しているので出力したログの加工が容易になる。
基本コマンド
ffmpeg -i input -af astats -vn -f null -
soxのstatsと同じような内容が表示される。
sox input.wav -n -S stats
niconicoとffmpegのことを中心に書いてる
音声統計データを表示するastats
の使い方。メタデータ対応しているので出力したログの加工が容易になる。
ffmpeg -i input -af astats -vn -f null -
soxのstatsと同じような内容が表示される。
sox input.wav -n -S stats
apulsator
はオートパンやトレモロの中間的なフィルタである。ffmpeg ではpan
やtremolo
で使える。左右のチャンネルの位相や波形をずらしたりする LFO (low frequency oscillator) を元に音量を変える。オフセットが 0 のときはトレモロと同じように左右のチャンネルを等しく変える。オフセットが 0.5 のときはオートパンのように周波数の半分の位相をずらす。オフセットが 1 のときは再び等しく変え、1 に近づくほどより早く右から左へのスピーカーに音が渡されずれが小さくなる。
ffplay input -af apulsator=level_in=1:level_out=1:mode=sine:1:amount=1:offset_l=0:offset_r=0.5:width=1:timing=hz:hz=2
ahistogram
を併用するとずれ具合が見える化する
ffplay -f lavfi amovie=input,apulsator=level_in=1:level_out=1:mode=sine:1:amount=.8:offset_l=.6:offset_r=1:width=1:timing=bpm:hz=2,ahistogram=dmode=separate:r=25:s=hd720:scale=log:ascale=log:acount=1:rheight=.1:slide=replace[out0];amovie=input,apulsator=level_in=1:level_out=1:mode=sine:1:amount=.8:offset_l=.6:offset_r=1:width=1:timing=bpm:hz=2[out1]
LPレコードやCDなどのフィルタカーブで強調された素材を作成または復元するaemphasis
の使い方。音割れさせたりこもった音に変えたりできる。
ffplay input -af aemphasis=level_in=1:level_out=1:mode=reproduction:type=cd
指定したチャンネルの周波数帯の音量を変えられるanequalizer
フィルタの使い方。似たフィルタが他にもありequalizer
は同じように周波数帯のゲインを調整するがこちらのほうがわかりやすい。compand
フィルタはDTMの設定になれている人向け。
ステレオ音声を読み込み c0(FL)の周波数4000Hzの周辺200Hzを-10dBにする。c1(FR)は10dBにする。
ffmpeg -i input -af "anequalizer=c0 f=4000 w=200 g=-10|c1 f=4000 w=200 g=10" -c:v copy output
ffplay -i input -af "anequalizer=c0 f=4000 w=200 g=-10|c1 f=4000 w=200 g=10"
showspectrumpic
フィルタを併用すると効果の具合が視覚的に分かる。
ffmpeg -i input -filter_complex "anequalizer=c0 f=4000 w=200 g=-20|c1 f=4000 w=200 g=20",showspectrumpic=s=1024x1024:mode=separate anequalizer.png
不可逆圧縮された音声のカットされた周波数が調べられる showspectrumpic
curves=1で映像化するが用途不明。
ffmpeg -i input -filter_complex "anequalizer=c0 f=4000 w=200 g=-10|c1 f=4000 w=200 g=-10:curves=1[v][a]" -map [v] -map [a] output
ffplay -f lavfi -i "amovie=input.mp4,anequalizer=c0 f=4000 w=200 g=-10|c1 f=4000 w=200 g=-10:curves=1:mgain=-60:fscale=0[out1]"
集計期間は週間のニコ生統計の1ヶ月分である。2015年の1月の2週目から取得漏れの R-18 放送を含めて Vita API で取得し始めたのでそれ以前と比べて取得放送数が増えている。
指定した座標から四角い範囲を入れ替えるswaprect
の使い方。数値にn
、t
、pos
が使えるので時間の経過で座標を変えることができる。
ニューラルネットワーク予測のエッジ補正からインターレースを解除するフィルタnnedi
の使い方。既存のインターレース解除フィルタyadif, w3fdif, bwdif
に比べてかなり処理速度の遅いフィルタである。今までは AviSynth や Vapoursynth で使われているフィルタなのでそちらで検索すると使い方を調べることができる。rpowオプションは組み込まれていないのでアップスケールには使えない。
関連記事
ffmpeg でインターレース解除
プレビューがもたつくかもしれない
ffmpeg -i input -vf nnedi=deint=all:field=a:planes=7:nsize=s32x4:nns=n32:qual=fast:etype=a:pscrn=new output
ffplay -i input -vf nnedi=deint=all:field=a:planes=7:nsize=s32x4:nns=n32:qual=fast:etype=a:pscrn=new
公式ドキュメント:FFmpeg Filters Documentation : nnedi
音声データの周波数を調べて周波数と時間の2次元軸とした1枚画像を出力するshowspectrumpic
の使い方。
リアルタイムに周波数を調べるにはshowspectrum
フィルタを使う。
音声波形を表示する showspectrum, showwaves の使い方
ffmpeg -i input -filter_complex showspectrumpic=s=1024x1024:mode=combined:color=intensity:scale=log:saturation=1:win_func=hann:orientation=vertical:gain=1:legend=1:start=0:stop=0 -y showspectrumpic.png
任意の周波数帯だけを表示するにはstart、stopの値を指定する。legend=1で経過時間を整数秒で表示するには12.8秒の倍数にするとよい。
公式ドキュメント
FFmpeg Filters Documentation : showspectrumpic
Continue reading “不可逆圧縮された音声のカットされた周波数が調べられる showspectrumpic”
現在までの音量とリアルタイムの音量をヒストグラムで表示するahistogram
の使い方。
ffplay -f lavfi amovie=input,ahistogram=dmode=single:r=25:s=hd720:scale=log:ascale=log:acount=1:rheight=.1:slide=replace
ffmpeg -i audio -filter_complex ahistogram=dmode=single:r=25:s=hd720:scale=log:ascale=log:acount=1:rheight=.1:slide=replace -c:a copy output
2016年2月15日 に ffmpeg 3.0 Einstein(アインシュタイン)がリリースされた。今回のリリースはメジャーアップデートとなり、2.8 以降に追加された新機能の中からマスターにしか追加されていなかったフィルタやエンコーダ、デコーダ等の新機能が全て取り込まれた。
RELEASE NOTES for FFmpeg 3.0 “Einstein”
2.8 以降に取り込まれた機能の一覧
Changelog 2.8.1 to 3.0 < git.videolan.org Git
今回のアップデートの主な特徴