時間でフィルタに強弱をつける


アルファチャンネルの濃さを調整することで時間で強弱をつけるフィルタができあがる。

基本コマンド

3秒から4秒に掛けて gblur フィルタを当てる
ffplay -i input -vf split[0],gblur=4:enable='between(t,3,4)',format=yuva420p,fade=t=in:st=3:d=0.5:alpha=1,fade=t=out:st=3.5:d=0.5:alpha=1,[0]overlay=enable='between(t,3,4)'

解説

  • split
    フィルタを当てる動画と当てない動画の2つを用意する
  • gblur=4:enable='between(t,3,4)'
    経過時間で強弱をつけるフィルタを指定し、タイムライン編集で効果のある時間だけを設定する。これを設定しないと効果が現れてない時間帯にもフィルタが働き負荷が余分にかかるのを避けるため
  • format=yuva420p
    動画にアルファチャンネルがなければアルファチャンネルを追加する
  • fade=t=in:st=3:d=0.5:alpha=1
    フィルタの効果が始まる時間の指定。3秒から始まり0.5秒(3.5秒まで)で最大になる。効果はアルファチャンネルで適用
  • fade=t=out:st=3.5:d=0.5:alpha=1
    フィルタの効果が終わる時間の指定。3.5秒から始まり0.5秒(4秒まで)で無効になる。効果はアルファチャンネルで適用
  • overlay=enable='between(t,3,4)'
    アルファチャンネル付きの動画が上に来るように読み込み、時間差で強弱をつけるフィルタと同じ時間で有効になるようにタイムライン編集で指定する。フィルタが無効になると下の動画、つまり1入力になる [0] がそのまま表示される

アルファチャンネルの効果を調べるコマンド。黒の映像は透明になり、白に近づくほど透過しなくなる
ffplay input -vf format=yuva420p,fade=t=in:st=3:d=0.5:alpha=1,fade=t=out:st=3.5:d=0.5:alpha=1,alphaextract

コマンド例

コントラストを上げて暗いところがより暗くなる
ffplay -i input -vf split[0],eq=1.3:enable='between(t,3,4)',format=yuva420p,fade=t=in:st=3:d=0.5:alpha=1,fade=t=out:st=3.5:d=0.5:alpha=1,[0]overlay=enable='between(t,3,4)'
画面全体が明るくなる
ffplay -i input -vf split[0],eq=brightness=.1:enable='between(t,3,4)',format=yuva420p,fade=t=in:st=3:d=0.5:alpha=1,fade=t=out:st=3.5:d=0.5:alpha=1,[0]overlay=enable='between(t,3,4)'
画面全体が暗くなる
ffplay -i input -vf split[0],eq=brightness=-.1:enable='between(t,3,4)',format=yuva420p,fade=t=in:st=3:d=0.5:alpha=1,fade=t=out:st=3.5:d=0.5:alpha=1,[0]overlay=enable='between(t,3,4)'
画面全体にノイズが当たる
ffplay -i input -vf split[0],noise=alls=100:allf=t+u:enable='between(t,3,4)',format=yuva420p,fade=t=in:st=3:d=0.5:alpha=1,fade=t=out:st=3.5:d=0.5:alpha=1,[0]overlay=enable='between(t,3,4)'

紹介した内容
ffmpeg で使える計算書式
Windows の ffmpeg で生放送する方法 : オーバーレイ
Windows の ffmpeg で生放送する方法 : eq(明暗調整)
フェードイン、フェードアウトの設定ができる fade
FFmpeg Filters Documentation : noise

表示例

3秒から4秒の間に暗くなり明るくなる

普通にタイムライン編集した場合

タイムライン編集でフィルタの強度を変えた場合

コメントを残す

メールアドレスが公開されることはありません。