連続したフレームのピクセル値を任意の割合で混ぜ合わせるtmixフィルタの使い方。

複数入力した映像を混ぜ合わせるならmixフィルタがある。
複数の映像を任意の割合でミックスする mix

基本コマンド

連続した3フレームを3で割った1フレームで出力する。
ffmpeg -i input -vf "tmix=frames=3:weights=1 1 1:scale=0" -c:a copy ouput
ffplay -i input -vf "tmix=frames=3:weights=1 1 1:scale=0"

フレームを混ぜてfpsを減らすにはselectフィルタを併用する。
ffplay -i input -vf "tmix=frames=3:weights=1 1 1",select='not(mod(n\,3))'

特定の映像フレームや音声サンプルを出力するselect, aselect
ffmpeg – How do I blend/average N amount of frames as opposed to only 2? – Super User

公式ドキュメント:FFmpeg Filters Documentation : tmix

オプション

  • frames[int]
    連続したフレーム数の指定
    既定値:3
    範囲:1から128まで
  • weights[string]
    入力の比重指定。入力毎にスペースを空ける
    既定値:”1 1 1″
  • scale[float]
    各ピクセルの値とweightsの積の和に掛ける値。0だと連続するフレームの和になる
    既定値:0
    範囲:0から32767まで

scaleの扱い

0以外を指定するとマスクのようなピクセル値になるが2極値化はそのままではしないので用途が思いつかない。scale=3scale=4の例。
ffplay -i input -vf split[0v][1v];[0v]tmix=frames=3:weights="-1 2 -1":scale=3,signalstats,drawtext=fontfile=C\\://WINDOWS/Fonts/arial.ttf:textfile=signalstat_drawtext.txt:fontsize=20:borderw=1:bordercolor=white[0v];[1v]tmix=frames=3:weights="-1 2 -1":scale=4,signalstats,drawtext=fontfile=C\\://WINDOWS/Fonts/arial.ttf:textfile=signalstat_drawtext.txt:fontsize=20:borderw=1:bordercolor=white[1v];[0v][1v]vstack

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)