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\,10)
  • 3秒から13秒までを0から10まで返す
    min(max(t-3\,0)\,13)

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

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

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

普通の tri ならこうなる。

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

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

一部計算方法がわかってないので省略してある。

afade, acrossfade 意味 代替オプション カーブ
tri triangular, linear slope ‘st(0\,mod(t\,10)/10);ld(0)’ afade - triangular, linear slope
qsin quarter of sine wave ‘st(0\,mod(t\,10)/10);sin((ld(0)*PI)/2.0)’ afade - quarter of sine wave
hsin half of sine wave ‘st(0\,mod(t\,10)/10);(1.0-cos(ld(0)*PI))/2’ afade - half of sine wave
esin exponential sine wave ‘st(0\,mod(t\,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\,10)/10);1-(1-ld(0))*(1-ld(0))’ afade - inverted parabola
qua quadratic ‘st(0\,mod(t\,10)/10);ld(0)*ld(0)’ afade - quadratic
cub cubic root ‘st(0\,mod(t\,10)/10);pow(ld(0)\,3)’ afade - cubic root
exp exponential ‘st(0\,mod(t\,10)/10);exp(-11.512925464970227*(1-ld(0)))’ afade - exponential

コメントを残す

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

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