タグ別アーカイブ: Expression_Evaluation

YUV RGB を比較計算する blend

2入力した映像の YUVA や RGBA を比較して結果を表示する blend の使い方。差分を調べて比較動画を作ったり、マスクした部分に別の映像を重ねたりいろいろな映像効果を作ることができる。

基本コマンド

比較動画として上に二つ並べて左下に差分(Y は 0 差分、UV は1入力)の動画を表示するコマンド例
ffplay -f lavfi "movie=left.mp4,setpts=PTS-STARTPTS,split[a1][a2];movie=right.mp4,setpts=PTS-STARTPTS,split[b1][b2];[a1][b1]blend=c0_mode=difference,pad=2*iw:ih:0:0[blend];[a2][b2]hstack[tmp];[tmp][blend]vstack"
比較動画として上に二つ並べて左下に差分(Y は 0 差分、UV は128)の動画を表示するコマンド例
ffplay -f lavfi "movie=left.mp4,setpts=PTS-STARTPTS,split[a1][a2];movie=right.mp4,setpts=PTS-STARTPTS,split[b1][b2];[a1][b1]blend=c0_mode=difference,lutyuv=val:128:128,pad=2*iw:ih:0:0[blend];[a2][b2]hstack[tmp];[tmp][blend]vstack"

間違い探しを簡単に調べるコマンド(インターネット上の画像も入力できる)
ffmpeg -i img1.jpg -i img2.jpg -filter_complex setsar=1/1[0a];[1]setsar=1/1,[0a]blend=c0_mode=grainextract,lutyuv=val:128:128 out.jpg

公式ドキュメント:FFmpeg Filters Documentation : blend, tblend
続きを読む YUV RGB を比較計算する blend

特定の区間だけフィルタを当てるタイムライン編集について

ffmpeg のフィルタの中には区間、以上、未満、毎の時間の条件をつけることができるものがある。これらをつけられるのは filters で調べたときに T と表示されるフィルタである。記事の下で紹介。

続きを読む 特定の区間だけフィルタを当てるタイムライン編集について

Zライブラリを使ったリサイズフィルタ zscale

scale と同じようにリサイズ出来るフィルタだが、それとは別のリサイズ方法 point, spline16, spline36 が使える。ただし spline16, spline36scale で設定できるオプションと比べ処理が速くないのでリアルタイムエンコード、つまり配信用途なら処理が遅くても問題ない。scale と違ってインターレース保持のリサイズは出来ない。3.0 以降で使える。

ffmpeg の scale で使えるリサイズ方法:FFmpeg Scaler Documentation :: Scaler Options
続きを読む Zライブラリを使ったリサイズフィルタ zscale