連続フレームを読み込んでそれぞれを計算するtblend(time blend)
フィルタの使い方。オプションはblend
フィルタと同じ。
条件を指定するのに使う。
ffmpeg で使える評価式
niconicoとffmpegのことを中心に書いてる
連続フレームを読み込んでそれぞれを計算するtblend(time blend)
フィルタの使い方。オプションはblend
フィルタと同じ。
条件を指定するのに使う。
ffmpeg で使える評価式
ffmpeg 3.2 にリリースしたビデオフィルタ。ffmpeg のフィルタの中でかなり処理が重たい部類に入るエッジ保護のデノイザnlmeans
フィルタの使い方。なぜこれほどまでに重たいかというとデノイズする部分を映像内容によって異なる処理をするために重たくなるから。詳しい処理内容は「non-local means filter」で検索する。
処理内容の紹介記事
Non-local Means Filterによるデノイジング | OpenCV.jp
Non-local Means Filterの実装 – Qiita
該当ソースコード:FFmpeg/vf_nlmeans.c at master · FFmpeg/FFmpeg
公式ドキュメント:FFmpeg Filters Documentation : nlmeans
2019年2月2日処理が見直され 1080p で 30% ほど高速化された。
lavfi/nlmeans: improve the performance:git.videolan.org Git – ffmpeg.git/commitdiff
ネット上で漫画を読めるサービスで画像のリンクを開いてみると、本来の映像の位置からバラバラに配置した画像が見られる。これを ffmpeg のswaprect
フィルタを使って映像をバラバラに配置して同じ効果を求めてみる。
映像をたくさん分割すればするほど組み合わせが複雑になるが、フィルタチェーンの文字数制限がある(-f lavfi -graph -iで入力すれば制限がなくなる)ので無制限に分割できるわけではない。バラバラに分割して暗号化された映像を元に戻すには同じフィルタチェーンを逆順に設定すれば元の映像に戻すことができる。swaprect
フィルタの他にもswapuv
で UV を入れ換えたり、hflip
で左右反転することでより難読化することができる。swaprect
フィルタを多用してもそれほど負荷は上がらないので気にする必要は無いが、映像が難読化され圧縮しにくい映像になり容量が増える。
ffmpeg 3.2 でリリース予定のオーディオフィルタ。単純なアルゴリズムで音声のダイナミックレンジを広げるcrystalizer
フィルタの使い方。
既定値のオプションを当てる
ffmpeg -i input -af crystalizer=i=2:c=1 output
ffmpeg -i input -af crystalizer=2:1 output
ffplay -i input -af crystalizer=2:1
ffmpeg 3.2 でリリースしたビデオフィルタ。隣り合うピクセルを平均化してぼかすavgblur
フィルタの使い方。似たフィルタにgblur
があるが、こちらは縦横に伸ばしたように輝度差がわかりやすい。CPU または GPU に opencl が使えるとavgblur_opencl
フィルタが使える。
既定値のオプションを当てる
ffmpeg -i input -vf avgblur=sizeX=1:planes=15:sizeY=0 output
ffmpeg -i input -vf avgblur=1:15:0 output
ffplay -i input -vf avgblur=1:15:0
ffmpeg 3.2 でリリースしたビデオフィルタ。ガウシアンカーネルを使ってしてぼかすgblur
フィルタの使い方。カーネルについてはconvolutionフィルタでも使えるが、具体的な内容は省略。似たフィルタにavgblur
があるが、こちらは満遍なくブラーを掛ける一般的なぼかしフィルタのイメージ。
既定値のオプションを当てる
ffmpeg -i input -vf gblur=sigma=0.5:steps=1:planes=15:sigmaV=-1 output
ffmpeg -i input -vf gblur=.5:1:15:-1 output
ffplay -i input -vf gblur=.5:1:15:-1
公式ドキュメント:FFmpeg Filters Documentation : gblur
ffmpeg 3.2でリリースしたビデオフィルタ。エッジ検出フィルタに単体ではedgedetect
とfrei0r
のsobelがあり、カーネルを指定するconvolution
でもエッジ検出ができるが、今回のこれらのフィルタはedgedetect
よりもエッジ部分の線が太くconvolution
よりも手軽なのでマスクするのにも便利。sobel
とprewitt
、roberts
はカーネルが少し異なるがオプションは同じである。
ffmpeg -i input -vf sobel=planes=15:scale=1:delta=0 output
ffmpeg -i input -vf sobel=15:1:0 output
ffplay -i input -vf sobel=15:1:0
ffmpeg 3.2でリリースしたビデオフィルタ。フィールドを合わせてフレームにするweave
フィルタの使い方。縦解像度が2倍になり、フレームレートとフレーム数は2分の1になる。3.4の追加フィルタでdoubleweave
フィルタもある。こちらは縦解像度が2倍になるが、フレームレートとフレーム数は変わらない。
各フィールドをフレームに変換する separatefields
separatefields
でフィールド分解したのをフレームに戻す。つまり何も変わらない
ffmpeg -i input -vf separatefields,weave output
ffplay -i input -vf separatefields,weave
tinterlace
フィルタのtinterlace=0
と同じことができる
2フレームに1フレーム、フィールドがずれたフレームが追加される。解像度はそのままにフレーム数とフレームレートは元映像の倍になる
ffmpeg -i input -vf separatefields,doubleweave output
ffplay -i input -vf separatefields,doubleweave
2以上の映像をPTSに即して連続した映像で出力するinterleave
フィルタの使い方。フィルタを使ってエンコードするときは出力オプションに-rで動画のフレームレートを指定する。select
フィルタを併用するとシーンチェンジやフレームタイプ別にフィルタを使い分けられる。
関連フィルタ:
フィールドを足したり引いたりする tinterlace
ピクチャーをインターリーブ、デインターリーブするil
ffmpeg 3.2 でリリースのビデオフィルタ。Cohen-Daubechies-Feauveau(CDF) 9/7 のウェーブレットデノイザ。フィルタを当てるチャンネルを指定できる。
ffmpeg -i input -vf vaguedenoiser=threshold=2:method=2:nsteps=6:percent=85:planes=15 output
ffmpeg -i input -vf vaguedenoiser=2:2:6:85:15 output
ffplay -i input -vf vaguedenoiser=2:2:6:85:15