一番メジャーなインターレース解除フィルタ yadif
インターレース解除といえばとりあえずこのフィルタの名前が挙がるほど有名なフィルタ。yadif とは yet another deinterlacing filter。 基本コマンド ffplay input -vf yadif:mode=0:parity=-1:deint=1 ffplay input -vf yadif=0:-1:1 公式ドキュメント:FFmpeg Filters...
View Articleインターレース解除フィルタ w3fdif
w3fdif とは BBC R&D の Martin Weston氏を元とし、BBC R&D の Jim Easterbrook氏がインターレース解除の機能を実装した片フィールド補間のインターレース解除フィルタである。w3fdif とは stands for “Weston 3 Field Deinterlacing Filter”。 基本コマンド ffplay input -vf...
View Articleインターレースを解除する bwdif
bwdif(Bob Weaver Deinterlacing Filter)は yadif とキュービック補完アルゴリズムが使われている w3fdif を元とする動きに対応したインターレース解除フィルタである。 基本コマンド ffplay input -vf bwdif=mode=0:parity=-1:deint=1 ffplay input -vf bwdif=0:-1:1 オプション mode...
View Articleテレシネ処理ができる telecine
テレシネしてフレーム数を増やすことができる telecine の使い方。日本で一般的なテレシネからヨーロッパ形式のテレシネまでいろいろなタイプを指定できる。 基本コマンド インターレース具合がわかりやすいようにフレーム番号を振っている ffplay -f lavfi -i...
View Articleffmpeg でのフレームレート設定の違い
ffmpeg にはフレームレートの設定方法がいくつかあるが、同じオプションでも指定場所では効果が違ったりするので一般的な用途のまとめ。オリジナルよりもフレームレートが少ないときは同じように間引かれるが、出力結果も一致するとは限らない。 0番から249番までの250フレーム、25fps の基本動画 ffmpeg -f lavfi -i...
View Article高速で万能な逆テレシネフィルタ pullup
pullup は逆テレシネフィルタで、ハードテレシネや 24000/1001 fps プログレッシブや 30000/1001 fps...
View Article先鋭化やぼかし、エンボス処理などができる convolution
3×3 または 5×5 のカーネルが指定できる convolution の使い方。数学的な話やマトリクスはここでは説明しない。 基本コマンド 3×3 のカーネル。基本コマンドは何も変化しない ffplay -i input -vf convolution="0 0 0 0 1 0 0 0 0:0 0 0 0 1 0 0 0 0:0 0 0 0 1 0 0 0 0:0 0 0 0 1 0 0 0...
View Article詳細な分割設定ができる Segment
segment muxer とは時間やフレーム数指定でストリームを分割する。出力ファイル名には image2 muxer と同じように連番出力や、strftime オプションを使って日時設定もできる。正確にストリームを分割するにはキーフレームを分割毎の先頭に挿入しなければならない。キーフレームが先頭に来ないとキーフレームが来るまで映像が乱れる原因になる。hls muxer...
View Articleffmpeg で Apple HTTP Live Streaming(HLS)を扱う
ffmpeg で Apple HTTP Live Streaming(通称、HLS)形式に出力する方法。各セグメントの動画ファイルは .ts でプレイリストとなるマニフェストは .m3u8 で出力される。また segment muxer のオプションを使うことでより詳細な設定ができる。 詳細な分割設定ができる Segment 基本コマンド ffmpeg -i input output.m3u8...
View Articleconcat を使い分ける
ffmpeg で映像や音声を連結(後ろにつなげる)する方法に concat があるが、concat にも3種類ありそれぞれ使い道が異なるのでそれらの説明。個別の記事は以前に書いているので補足説明を加えた。 filter : 【ffmpeg】動画・音声を連結する concat の使い方 protocol : 【ffmpeg】動画・音声を連結する concat の使い方 其の2 demuxer :...
View Articleフィールドを足したり引いたりする tinterlace
入力した映像のフレームをフィールドに分離し足したり引いたりする tinterlace フィルタの使い方。1入力1出力なので別ソースの同じ映像を取り込む場合は偶数フレームと奇数フレームを interleave してから1映像にすることで2映像の偶数フィールドと奇数フィールドを混ぜることができる。 ちなみに偶数フレーム、奇数フレームそれぞれをドロップさせるフィルタに select...
View Articleffmpeg で Twitter に投稿できる PNG に変換する
普通の PNG で投稿しても画質の悪い JPEG に変換されるのでこれを透過PNG で投稿することで PNG のまま投稿できる。 コマンド例 コマンドの説明 nullsrc:映像のテストソース。テストソースの中では一番負荷が軽い scale2ref:映像フィルタ。2入力して、相手側の解像度に合わせることができる lutrgb:映像フィルタ。特定のRGBに色を変更する...
View Articleffmpeg 3.1 リリース
追記 2016年7月3日 3.1 の4日後に 3.1.1 がリリースされた。 git.videolan.org Git – ffmpeg.git/shortlog 2016年6月27日、ffmpeg 3.1 Laplace(ラプラス)がリリースされた。3.1 は 3.0 からのメジャーアップデートでこれまでに取り込まれたコミットのすべてが入っている。 git.ffmpeg.org Git –...
View Articleplane を入れ替え、コピーする shuffleplanes
plane(YUV や RGB の個別チャンネル)を入れ替えたり、コピーしたりできる shuffleplanes の使い方。 オプション plane の順番は一般的には YUVA, RGBA の順番になっているが、このフィルタは RGB/A には対応していない。YUV420P の場合 Y と UV では解像度が違うので Y と UV を入れ替えるには YUV444P に変換する必要がある。 map0...
View Article別ファイルの情報から元映像を透過させる alphamerge
alphamerge は2番目の入力のグレースケール(グレースケールでなければ変換される)の白黒具合に応じて1番目の入力に透過情報を加える。透過具合については黒が透過し、白に近いほど透過しなくなり、出力は YUVA または ARGB, RGBA になる。アルファチャンネルを含む映像になるのでそれに対応したコーデックで出力しないとアルファチャンネルが消えてしまうのに注意。YUVA なら...
View Articleアルファチャンネルをグレースケールで出力する alphaextract
映像にアルファチャンネルがあるときに alphaextract を使えばグレースケールで取り出すことができる。同時にフォーマットもグレースケールに変換される。同じ効果のフィルタに extractplanes=a があり、これもグレースケールで出力する。透過部分の値は小さく、透過しない部分の値は大きくなる。 各映像チャンネルを分離する extractplanes 基本コマンド...
View Articleffmpeg でグレースケールを扱う
フィルタでグレースケールを扱うには大まかに YUV の Y を取り出す方法と、グレーにフォーマット変換する方法の2通りがある。前者は限定レンジになるので 16 から 235 の範囲に収まるが処理速度は速い。一方の後者はフォーマット変換を挟むので処理は遅いが 0 から 255 までのフルレンジを扱える。 extractplanes で YUV の Y を取り出す。この方法が一番高速でわかりやすい。...
View Articleffmpeg でエッジマスク
ffmpeg でエッジ検出するフィルタに edgedetect と convolution がある。これらのフィルタを使ってエッジ領域を拡大しグレースケールのマスクとすることでエッジ部分に特定のフィルタを当てないようにすることができる。 コマンド例 エッジ部分に hqdn3d を当てないようにマスクして、unsharp をかけるコマンド例。効果の具合を調べるには hqdn3d の代わりに...
View Article手軽にモーションブラー atadenoise
各チャンネルの変化具合と平均化するフレーム数の指定により手軽にモーションブラーを当てることができる atadenoise フィルタの使い方。設定値を 0 にしてもすべてのチャンネルに影響を与えるので色味の変化が大きいと軽くフィルタを当てても変化が大きい。フレーム間で平均化するので3次元デノイズとも言える。 ffmpeg でモーションブラーを掛ける 基本コマンド ffmpeg -i input -vf...
View Article映像の黒枠の座標を検出する bbox
映像フレームの輝度チャンネルから黒枠を検出して黒枠以外の座標をコンソール上に表示する。crop と drawbox のコマンドも表示する。 基本コマンド ffplay input -vf bbox=16 出力例 n:0 pts:0 pts_time:0 x1:0 x2:1279 y1:78 y2:641 w:1280 h:564 crop=1280:564:0:78...
View Article