平均ブラー avgblur
ffmpeg 3.2 でリリース予定のビデオフィルタ。隣り合うピクセルを平均化してぼかす avgblur フィルタの使い方。 基本コマンド 既定値のオプションを当てる ffmpeg -i input -vf avgblur=sizeX=1:planes=15:sizeY=0 output ffmpeg -i input -vf avgblur=1:15:0 output ffplay -i...
View Article音声のダイナミックレンジを広げる crystalizer
ffmpeg 3.2 でリリース予定のオーディオフィルタ。単純なアルゴリズムで音声のダイナミックレンジを広げる crystalizer フィルタの使い方。 基本コマンド 既定値のオプションを当てる ffmpeg -i input -af crystalizer=i=2:c=1 output ffmpeg -i input -af crystalizer=2:1 output ffplay -i...
View Article映像の場所を入れ換えて暗号化する
ネット上で漫画を読めるサービスで画像のリンクを開いてみると、本来の映像の位置からバラバラに配置されている画像を見られる。これを ffmpeg の swaprect フィルタを使って映像をバラバラに配置して同じ効果が得られる。 映像の2カ所を入れ替える swaprect...
View Article非局所平均のデノイザ nlmeans
ffmpeg 3.2 でリリース予定のビデオフィルタ。ffmpeg のフィルタの中でかなり処理が重たい部類に入るエッジ保護のデノイザ nlmeans フィルタの使い方。なぜこれほどまでに重たいかというとデノイズする部分を映像内容によって異なる処理をするために重たくなるから。詳しい処理内容は「non-local means filter」で検索する。 処理内容の紹介記事 Non-local Means...
View Articleffmpeg 3.1 リリース
追記 2016年10月1日 3.1.4 がリリースされた。 git.videolan.org Git – ffmpeg.git/shortlog git.videolan.org Git – ffmpeg.git/blobdiff – Changelog 追記 2016年8月26日 3.1.3 がリリースされた。 git.videolan.org Git – ffmpeg.git/shortlog...
View Article前後フレームの差分をブレンドする tblend
1入力から前後フレームを読み込んでそれぞれを計算する tblend(time blend)フィルタの使い方。オプションは blend フィルタと同じ。 YUV RGB を比較計算する blend コマンド例 average オプションを使えば、前後フレームのモーションブラーになり、difference128 オプションを使えばモーションマスクに使える。 前後フレームのモーションブラー ffmpeg...
View Article前後フレームの差分で動いた部分だけマスクする モーションマスク
前後フレームの YUV 差分をマスクしてフィルタを当てなくするモーションマスクの使い方。マスクするチャンネルは Y だけと、YUV のすべてを指定でき、マスクを反転することもできる。使うフィルタは tblend で前後フレームを1入力で取り込み、maskedmerge で1,2入力の割合を決めている。 前後フレームの差分をブレンドする tblend マスクして2入力を合わせる maskedmerge...
View Articleffmpeg 3.2 リリース
2016年10月28日、ffmpeg 3.2 Hypatia(ヒュパティア)がリリースされた。3.2 は 3.1 からのメジャーアップデートでこれまでに取り込まれたコミットのすべてが入っている。 前回更新記事:ffmpeg 3.1 リリース git.ffmpeg.org Git – ffmpeg.git/blob – RELEASE_NOTES git.videolan.org Git –...
View Articleユーフォ2期OP冒頭部分のモノクロ部分だけ黒にする
モノクロ部分の UV が 128 になるのを利用してこの部分以外をマスクして真っ黒にする。 コマンド例 ffmpeg -i video.ts -vf...
View Article静止画放送かどうかを ffmpeg で調べる
ffmpeg には blend フィルタの difference128 オプションを使うことで特定シーン同士を比較して映像の差分を調べることができる。今回はニコ生の雑談放送でよく見られる静止画1枚を映しながら放送しているタイプの動画を調べるコマンドである。 最初に動画時間を調べる。このコマンドでは秒時間で出力される ffprobe -i input.flv -show_entries...
View Article色相を動的に変更できる hue
YUV の輝度と彩度を調整できる hue フィルタ。値の指定にフレーム数やタイムスタンプが使えるので時間によって動的に変えられる。 基本コマンド 既定値では変化ない ffmpeg -i input -vf hue=h=0:s=1:b=0 output ffplay -i input -vf hue=0:1 色相を動的に変える例 ffplay -i input -vf hue=n 評価式(計算書式)の...
View Articleフェードイン、フェードアウトの設定ができる fade
フェードするチャンネルにアルファチャンネルあるなしで用途が異なる fade フィルタの使い方。アルファチャンネルがない場合のフェードインは指定色から元映像にフェードし、フェードアウトは元映像から指定色にフェードする。アルファチャンネルがあればクロスフェードのように2映像をきれいにつなげることができる。そのほかにアルファチャンネルの濃度の変化をマスクとして利用し、別のフィルタの濃度変化にも使える。...
View Article輪郭を保護しながらぼかしたりシャープにする smartblur
似たフィルタに unsharp があり、こちらもぼかしたりシャープにできる。RGB の映像は YUV に変換され、輝度だけ、彩度だけ、また両方にフィルタを当てられる。 基本コマンド 輝度、または彩度の片方しか指定しなかった場合はもう片方も同じように指定される。片方のオプションを無効にするには luma_strength, chroma_strength のオプションを 0 にする。 ffmpeg...
View Article輪郭を保護しながらシャープにしたりぼかしたりする unsharp
似たフィルタに smartblur があり、こちらもぼかしたりシャープにできる。RGB の映像は YUV に変換され、輝度だけ、彩度だけ、また両方にフィルタを掛けられる。 基本コマンド ffmpeg -i input -vf unsharp=lx=5:ly=5:la=1:cx=5:cy=5:ca=0:opencl=0 output ffplay -i input -vf...
View Article閾値の指定で2つのフィルタを使い分けやすくする threshold
ffmpeg 3.3 から追加予定のフィルタ。4つの映像を入力して、1、2入力の比較で3、4入力を使い分けて1出力する threshold フィルタの使い方。高ビット深度対応の YUV, GBRP, GRAY, アルファ に対応している。2つのフィルタを使い分けたり、白黒2色のマスクが手軽に設定できる。 具体的に説明すると1入力と2入力を比較して、1 <= 2 の部分に4入力が、2 <...
View Article2つの映像のヒストグラムをうまく揃えるように調整する midequalizer
ffmpeg 3.3 から追加予定のフィルタ。2つの映像を入力して2つ目の映像のヒストグラムを1つ目の映像にうまく揃える midequalizer フィルタの使い方。高ビット深度対応の YUV, GBRP, GRAY, アルファ に対応している。同じ場面を映している2台のカメラ、例えばステレオカメラで、映像の明るさを揃えるのに使う。 基本コマンド ffmpeg -i input1 -i input2...
View Articleffmpeg でドット絵風の低画質に変換する
画像をドット絵風の低画質に変換するTwitter Bot「低画質」を作った – razokulover publog で話題になったのを ffmpeg のフィルタでドット絵風の低画質に変換する。 ffmpeg での出力例 けものフレンズプロジェクト|公式サイト よりサーバルちゃんを引用 けもフレ図鑑のサーバルちゃん、左がオリジナル、右が pixeliz0r 0.8倍の16色...
View Articleffmpeg で ocr
Tesseract-OCR を使った ocr フィルタで文字認証を行う。本家と同様に英語や日本語などたくさんの言語に対応している。ただし日本語の漢字の精度はかなりよくない。識字率を上げるのに OCR する前に対象文字周辺を crop フィルタで切り取ると上がりそうだがその他はわからない。 x:y は出力解像度。横:縦 w:h は出力解像度の左上隅の座標。横:縦 Windows の ffmpeg...
View Article2入力する映像のフィルタを詳しく設定する
2つ以上の映像を入力してフィルタを当てるときにそれらの読み込み開始時間は等しくなる。これを -ss オプションや trim フィルタを使って読み込み開始時間をずらす方法。対象となるフィルタは overlay, blend などの2映像のチャンネルを合わせるフィルタである。 コマンド例 overlay フィルタは有効になると2入力が映り、無効になると1入力が映る。color...
View Articleffmpeg で使える映像のテストソース
手元に映像ファイルがなくても単色や、カラーバーを使うことが出来る。 基本コマンド ffmpeg -f lavfi -i color -vframes 1 color.png ffplay -f lavfi -i color=c=black:s=340x240:r=25:sar=1/1:d=60 表示サンプル allrgb を縦横8分の1にした allyuv を縦横8分の1にした color YUV...
View Article