ffmpeg には多くの映像フィルタと音声フィルタがあるが、その効果を調べるのに主観的な判断だけではなく、客観的な判断ができるように数値を映像に表示したり、ヒストグラムを表示したりすることで映像の差違を見える化する。nullフィルタを別のフィルタに変更することでフィルタを当てた同士で比較できる。
一定間隔で映像に線を引く drawgrid
映像に縦線や横線、または格子状に直線を引くdrawgridフィルタの使い方。
基本コマンド

ffmpeg -i input -vf drawgrid=x=10:y=20:width=100:height=50:thickness=2:color=red@0.5 output
ffmpeg -i input -vf drawgrid=10:20:100:50:red@.5:2 output
ffplay -i input -vf drawgrid=10:20:100:50:red@.5:2
2016年7月のニコ生統計
集計期間は週間のニコ生統計の1ヶ月分である。2015年の1月の2週目から取得漏れの R-18 放送を含めて Vita API で取得し始めたのでそれ以前と比べて取得放送数が増えている。
写真など傾いた対象を修正する perspective
斜めから撮った写真や動画をまっすぐから見たように修正するperspectiveフィルタの使い方。修正部分だけを取り出すにはcropフィルタを併用する。cropフィルタを併用しないと出力解像度が元の解像度のままになりアスペクト比がおかしくなる。
エッジ部分に調整のあるポストプロセッシングフィルタ pp7
pp7(Postprocessing filter with 7 point DCT)フィルタはfsppの次に負荷の重たいポストプロセッシングフィルタである。
デノイズとインターレース解除ができる pp
速くて単純なポストプロセッシングフィルタ fspp
基本コマンド
ffmpeg -i input -vf pp7=qp=1:mode=2 output
ffmpeg -i input -vf pp7=1:2 output
ffplay -i input -vf pp7=1:2
公式ドキュメント:FFmpeg Filters Documentation : pp7
公式wiki:Postprocessing – FFmpeg
速くて単純なポストプロセッシングフィルタ fspp
fspp(fast and simple postprocessing)とは前回のppに続くポストプロセッシングフィルタである。ppよりもオプションが簡素なので使いやすい。
基本コマンド
ffmpeg -i input -vf fspp=4:0:0 output
ffplay -i input -vf fspp=4:0:0
公式ドキュメント:FFmpeg Filters Documentation : fspp
公式wiki:Postprocessing – FFmpeg
デノイズとインターレース解除ができる pp
pp(postprocessing)フィルタとは、デコード段階でフィルタを当てるフィルタを意味するが、フィルタチェーンでのppの位置によってフィルタが当たる順番も変わる。用途に合わせてたくさん種類があるので使いこなすのは難しい。ビルドオプションに--enable-gplが付いてないと使えない。
同様のフィルタにfspp,pp7,spp,usppがあるが、順番に負荷が大きくなりfspp以降は負荷を考えると実用性は低い。FFmpeg 8.0から廃止された。
基本コマンド
ffmpeg -i input -vf pp=de output
ffplay -i input -vf pp=de
公式ドキュメント:FFmpeg Filters Documentation : pp
公式wiki:Postprocessing – FFmpeg
RGB レベルで明暗調整できる colorlevels
手軽に RGB を明るくしたり、暗くしたり、コントラストを上げ下げできるcolorlevelsフィルタの使い方。RGB を操作するフィルタにcurvesやselectivecolor、colorbalanceなどがある。
- トーンカーブで RGB の調整が出来る curves
- RGB, CMYK を個別に調整できる selectivecolor
- Windows の ffmpeg で生放送する方法 : colorbalance
基本コマンド
既定値では変化はない
ffmpeg -i img -vf colorlevels output
ffplay -i img -vf colorlevels
CLUTから色を置換するhaldclut
映像や画像のCLUT(カラールックアップテーブル、カラーラットとも言われる)から色を置換するhaldclutフィルタの使い方。CLUTは一般に配布されているものを使うことができるが、解像度を所定のサイズにする必要がある。画像なら.pngや.tiffに。動画ならffv1の.nutや.mkv。floatなら.exrか、exrのmkvで出力する。
「RawTherapee Film Simulation Collection」の項目でCLUTをたくさん配布している。
Film Simulation – RawPedia : archive.org
黒フレームを調べる blackframe
フレーム毎に黒フレームを調べるblackframeフィルタの使い方。輝度の値からどれだけ黒いかの設定があるのでシーンチェンジを調べるのに使える。blackdetectフィルタよりも設定方法が分かりやすい。
基本コマンド
コンソールの表示されるのでテキストにリダイレクトした方が見やすい。
ffmpeg -i input -vf blackframe=98:32 -f null -
ffmpeg -i input -vf blackframe=98:32 -f null - > blackframe.txt 2>&1
ログの出力例。
frame:1170 pblack:99 pts:3513510 t:39.039000 type:I last_keyframe:1170