afade, acrossfadeフィルタにあるフェードトランジションのカーブを別フィルタにも同様の変化を持たせるために評価式を使って実装する。

入力した2つの音声にクロスフェードをかける acrossfade の使い方

FFmpeg Filters Documentation : afade
FFmpeg Filters Documentation : acrossfade
画像は公式Wikiを引用した:AfadeCurves – FFmpeg

コードはここを参照:FFmpeg/af_afade.c at master · FFmpeg/FFmpeg

効果は0秒から任意の秒までと、0秒から任意の秒までのループ、指定秒から指定秒までの効果になる。適宜指定秒間で割ると最大値を調整できる。

t はタイムスタンプ秒。

  • 0秒から10秒まで
    min(t\,10)
  • 0秒から10秒ごとにループ
    mod(t-1\,10)

画像から動画を作るにはloop 1でループ読み込みしてframerateでfpsを指定する。
ffmpeg -loop 1 -framerate 24 -i img.jpg

例えば esin を使うとこのような効果になる。

hue=s='st(0\,mod(t-1\,10)/10);((1.0-cos((PI/4)*pow(2*ld(0)-1\,3)+1)))'

普通の tri ならこうなる。

hue=s='st(0\,mod(t-1\,10)/10);(ld(0))'

動画から特定フレームを画像で出力する方法
色相を動的に変更できる hue

afade、acrossfadeフィルタの内容。一部計算方法がわかってないので省略してある。10秒毎に0から1になる。

opt 意味 代替オプション カーブ
tri triangular, linear slope 'st(0\,mod(t-1\,10)/10);ld(0)' afade - triangular, linear slope
qsin quarter of sine wave 'st(0\,mod(t-1\,10)/10);sin((ld(0)*PI)/2.0)' afade - quarter of sine wave
hsin half of sine wave 'st(0\,mod(t-1\,10)/10);(1.0-cos(ld(0)*PI))/2' afade - half of sine wave
esin exponential sine wave 'st(0\,mod(t-1\,10)/10);(1.0-cos((PI/4)*pow(2*ld(0)-1\,3)+1))' afade - exponential sine wave
ipar inverted parabola 'st(0\,mod(t-1\,10)/10);1-(1-ld(0))*(1-ld(0))' afade - inverted parabola
qua quadratic 'st(0\,mod(t-1\,10)/10);ld(0)*ld(0)' afade - quadratic
cub cubic 'st(0\,mod(t-1\,10)/10);pow(ld(0)\,3)' afade - cubic
exp exponential 'st(0\,mod(t-1\,10)/10);exp(-11.512925464970227*(1-ld(0)))' afade - exponential
desi double-exponential sigmoid 'st(0\,mod(t-1\,10)/10);(between(ld(0)\,0\,0.5)*pow(2*ld(0)\,3)/2)+(between(ld(0)\,0.500001\,1)*(1-pow(2*(1-between(ld(0)\,0.5\,1)*ld(0))\,3)/2))' afade - exponential

コメントを残す

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

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