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)' |
|
qsin |
quarter of sine wave |
'st(0\,mod(t-1\,10)/10);sin((ld(0)*PI)/2.0)' |
|
hsin |
half of sine wave |
'st(0\,mod(t-1\,10)/10);(1.0-cos(ld(0)*PI))/2' |
|
esin |
exponential sine wave |
'st(0\,mod(t-1\,10)/10);(1.0-cos((PI/4)*pow(2*ld(0)-1\,3)+1))' |
|
ipar |
inverted parabola |
'st(0\,mod(t-1\,10)/10);1-(1-ld(0))*(1-ld(0))' |
|
qua |
quadratic |
'st(0\,mod(t-1\,10)/10);ld(0)*ld(0)' |
|
cub |
cubic |
'st(0\,mod(t-1\,10)/10);pow(ld(0)\,3)' |
|
exp |
exponential |
'st(0\,mod(t-1\,10)/10);exp(-11.512925464970227*(1-ld(0)))' |
|
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))' |
|