通常はタイムライン編集で時間別にフィルタのオンオフを行うが、アルファチャンネルの濃さを調整することでフィルタの強弱を時間でつけることができる。

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

基本コマンド

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)'

紹介した内容

表示例

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

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

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

コメントを残す

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

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