Vulkan を使ったハードウェアアクセレーションフィルタのまとめ
ffmpeg 4.3 から使える予定のフィルタ。GPU を取り付けていると使える Vulkan フィルタのまとめ。現状ビルドスクリプトは対応していない。フィルタの使い方の公式ドキュメントはまだない。 CUDA を使ったハードウェアアクセレーションフィルタのまとめ 以下のコマンドでGPUが対応しているか調べられる。 ffmpeg -hide_banner -v verbose...
View Articleフィルタ内容をテキストで読み込む filter_script、filter_complex_script
ffmpeg が難しいと言われる理由の一つにフィルタの書き方がわからないというのがある。コマンドプロンプトだと改行できないので長くなるほど読みにくくなる。これを解決するのが -filter_script、-filter_complex_script である。 -filter_script は映像と音声別々に扱い、同じ種類の2番目以降のストリームを扱えない。-filter_complex_script...
View Articleブロックマッチングアルゴリズムでデノイズするbm3d
nlmeansフィルタ並みに処理が遅いが、フレーム間の動きを推定してデノイズする3次元デノイザbm3dフィルタの使い方。3次元のデノイザは他に hqdn3d フィルタがある。bm3dはBlock-Matching 3Dの略語。 非局所平均のデノイザ nlmeans Windows の ffmpeg で生放送する方法 – hqdn3d Block-matching algorithm –...
View Articleバンディング低減フィルタdeband
バンディングアーチファクトを低減させるdebandフィルタの使い方。バンディング部分は参照した周辺のピクセルで平均化される。 基本コマンド ffmpeg -i input -vf deband=1thr=0.02:2thr=0.02:3thr=0.02:blur=1 -c:a copy output ffplay -i input -vf deband=0.02:0.02:0.02:1 -c:a...
View Articleフレーム、サンプル単位で情報を得るshowinfo、ashowinfo
PTSやピクチャータイプやピクセルフォーマット、ピクセル値などを調べるのに使うshowinfo、ashowinfoフィルタの使い方。一般的な使い方はffplayで再生してコンソールに情報を流しながら見るもので、得た情報のメタデータを他のフィルタに渡すことは今のところできない。 基本コマンド ffplay -i input -vf showinfo=1 ffplay -i input -af...
View Articleシーンチェンジの時間を調べるscdet
ffmpeg 4.3から使える予定のフィルタ。映像の切り替わり、シーンチェンジの時間を調べてそのフレームを出力するのに便利なscdetフィルタの使い方。似たフィルタにselectフィルタのsceneがあるがこれとは計算方法が異なる。 基本コマンド 調べた内容をコンソールとscdet.txtに出力する。 ffmpeg -i input -vf...
View Articleフレーム間のメディアンフィルタtmedian
ffmpeg 4.3から使える予定のフィルタ。1つの映像の連続したフレームの中央値や任意の割合のピクセル値で出力するtmedianフィルタの使い方。 1フレーム内のメディアンフィルタ median 複数ファイルの映像のピクセル中央値を返す xmedian 基本コマンド 3つのチャンネルで2フレームの中央値をとる。 ffmpeg -i input -vf...
View Article256色のパレットを出力するshowpalette
パレット最適するpalettegenフィルタがあるが、こちらは映像に最適化したパレットを作らないのできれいなグラデーションにならない。 ffmpeg で 256色を最適化する palettegen, paletteuse 基本コマンド 16×16にオプションの16を掛けた256×256で256色のパレットを作る。入力映像でパレットの内容は変わらない。 ffmpeg -f lavfi -i color...
View Article任意の絶対値の差を返すmaskedthreshold
ffmpeg 4.3から使える予定のフィルタ。2入力した映像のピクセル値を比較し絶対値の差が、任意のしきい値と等しいかそれ以下ならば1入力のピクセル値が選ばれ、そうでなければ2入力のピクセル値が選ばれるmaskedthresholdフィルタの使い方。 基本コマンド input1、input2は同じ映像とする。効果がわかりやすいように lutyuv...
View Article英語版のffmpegの使い方解説本が1日だけ無料
‘FFMPEG Quick Hacks’ Kindle ebook free for a few days : ffmpegより、 It seems to be free now. I checked the KDP page. The offer ends at midnight (PDT) on 4th June. 6月4日の夜までkindleで無料になっている。同時にKindle...
View ArticleRGBの座標をずらすrgbashift
RGBとアルファチャンネルの座標をずらすrgbashiftフィルタの使い方。フィルタ名はrgbaだが、オプションの順番はgbraになる。 基本コマンド 緑色は右下に5ずらし、青色は左上に5ずらす。 ffmpeg -i input -vf rgbashift=gh=5:gv=5:bh=-5:bv=-5 -c:a copy output ffplay -i input -vf...
View Article彩度の座標をずらすchromashift
彩度の座標をずらすことで色収差のような効果が得られるchromashiftフィルタの使い方。RGBの座標をずらすならrgbashiftフィルタがある。 RGBの座標をずらすrgbashift ハードウェア支援を使ったchromaber_vulkanフィルタもある。 Vulkan を使ったハードウェアアクセレーションフィルタのまとめ 基本コマンド...
View Article映像を拡大するアップコンバートフィルタのまとめ
等倍率で解像度を大きくするアップスケーリング(アップコンバート)フィルタのまとめ。 通常のリサイズフィルタ: リサイズする scale Zライブラリを使ったリサイズフィルタ zscale 比較する動画の解像度に合わせる scale2ref hqx Maxim Stepin氏が作った拡大フィルタ。hqxはhigh-quality magnificationの略語。出力フォーマットはbgra。...
View Article映像を分割し連続フレームにするuntile
ffmpeg 4.3から使える予定のフィルタ。tileフィルタで一覧にした複数フレームを1つの連続したフレームに戻すのと、1フレームを分割して複数フレームにするuntileフィルタの使い方。 1フレームに複数のフレームを表示する tile 基本コマンド tileフィルタで複数並べたのを元に戻す例。 ffmpeg -i input -vf...
View Article方向ブラーdblur
ffmpeg 4.3 から使える予定のフィルタ。特定の方向にぼかすdblurフィルタの使い方。 基本コマンド 既定値のオプションを当てる。 ffmpeg -i input -vf avgblur=angle=45:radius=5:planes=15 -c:a copy output ffplay -i input -vf avgblur=45:5:15 効果がわかりやすいサンプル例。 ffplay...
View Articleカラールックアップテーブルを適用するlut1d、lut3d
カラールックアップテーブル(CLUT)を適用して色調補正するlut1d、lut3dフィルタの使い方。lut1dフィルタが1次元でlut3dフィルタが3次元になる。 外部ファイルを参照して色調補正するフィルタにcurvesフィルタがある。 トーンカーブで RGB の調整が出来る curves CUBE形式の書き方 1次元、3次元のCUBE形式の書き方の仕様PDF:Cube...
View Articleffmpeg 4.3 リリース
2020年6月16日に ffmpeg 4.3 “4:3” がリリースされた。今回のリリースバージョン名は人名ではない。今回のリリースはメジャーアップデートとなり、セキュリティ対応や 4.2 以降に追加された新機能の中からマスターにしか追加されていなかったフィルタやデコーダの新機能が全て取り込まれた。 今回のリリースで気になった部分を列挙すると、 Intel QSV-accelerated MJPEG...
View Article異なるダイナミックレンジにトーンマッピングするtonemap
HDRからSDRなどのトーンマッピングするのに使われているtonemapフィルタの使い方。高ビット深度から低ビット深度へ変換するために範囲外の値を線形化と浮動小数点にしてトーンマッピングし、出力先の変換式などに直す処理も同時に行う。ネイティブフィルタtonemapフィルタの他にOpenCLを使ったtonemap_openclフィルタもある。 tonemap 基本コマンド...
View Articleフレームを間引くdecimate、mpdecimate
一定のフレーム間隔で重複フレームを間引くdecimateフィルタと、前フレームとあまり変化のないフレームを間引くmpdecimateフィルタの使い方。 Windows の ffmpeg で生放送する方法で書いていた内容をこちらに引っ越し内容を修正した。 一定周期のフレームを間引くフィルタにshuffleframesフィルタがある。 指定フレーム毎に順番を入れ換える shuffleframes...
View Article連続フレームの映像を任意の割合でミックスするtmix
連続したフレームのピクセル値を任意の割合で混ぜ合わせるtmixフィルタの使い方。 複数入力した映像を混ぜ合わせるならmixフィルタがある。 複数の映像を任意の割合でミックスする mix 基本コマンド 連続した3フレームを3で割った1フレームで出力する。 ffmpeg -i input -vf "tmix=frames=3:weights=1 1 1:scale=0" -c:a copy ouput...
View Article