次のコマンドを使用して、ビデオの下から上に画像をスクロールする方法を知っています:
ffmpeg -f lavfi -i color=s=1920x1080 -loop 1 -t 0.08 -i "input.jpg" -filter_complex "[1:v]scale=1920:-2,setpts=if(eq(N\,0)\,0\,1+1/0.02/TB),fps=25[fg]; [0:v][fg]overlay=y=-\'t*h*0.02\':eof_action=endall[v]" -map "[v]" output.mp4
しかし、私は画像とテキストが下の位置から表示され、スムーズにスクロールして、下の図のように上の位置で消えるようにしたいのです。
答え1
背景画像から関連領域を切り取り、スクロールされたテキストを切り取った領域にオーバーレイし、その結果を背景画像の同じ領域にオーバーレイすることができます。
例:
input.jpg
:
前景画像 - 事前に準備したもの(サンプル解像度は 270x257):
サンプルコマンド:
ffmpeg -y -loop 1 -r 25 -i bk.jpg -loop 1 -r 25 -i input.jpg -filter_complex "[0:v]crop=270:257:360:55[c0];[c0][1:v]overlay=y='257-t*257*0.04':eof_action=endall[fg];[0:v][fg]overlay=x=360:y=55:eof_action=endall" -t 50 output.mp4
[0:v]crop=270:257:360:55[c0]
- 背景から 270x257 の領域を切り取ります。[c0][1:v]overlay=y='257-t*257*0.04':eof_action=endall[fg]
- スクロールされたテキストをトリミングされた領域の上に重ねます。[0:v][fg]overlay=x=360:y=55:eof_action=endall
-[fg]
背景画像の上にオーバーレイします(切り取られた領域と同じ場所)。