通常はタイムライン編集で時間別にフィルタのオンオフを行うが、アルファチャンネルの濃さを調整することでフィルタの強弱を時間でつけることができる。
基本コマンド
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 で使える評価式
- 映像の上に映像をのせる overlay
- FFmpeg Filters Documentation : noise
- フェードイン、フェードアウトの設定ができる fade
- Windows の ffmpeg で生放送する方法 : eq(明暗調整)
表示例
3秒から4秒の間に暗くなり明るくなる
普通にタイムライン編集した場合
タイムライン編集でフィルタの強度を変えた場合