我想从一张 1000x600 的图像生成一个视频 [假设为 1000x600]。
图像首先必须从中心点放大一倍(2000x1200),然后滚动到左上角,再到中心点,再到右上角,依此类推。
如果可能的话,我还需要加速器效果。
我找不到有关此主题的任何文档;有人可以给我提示吗?
答案1
您可以使用 ffmpeg 执行此操作zoompan
筛选。您需要找出一个复杂的数学表达式来计算任何给定时间点所需的缩放(z
值)和平移(x
和值)。y
您可以在这篇博文:
ffmpeg -i in.jpg \
-filter_complex
"zoompan=z='zoom+0.002':d=25*4:s=1280x800" \
-pix_fmt yuv420p -c:v libx264 out.mp4
添加更多图片和过渡时,情况很快就会变得复杂,例如一秒钟的过渡:
ffmpeg -i in1.jpg -i in2.jpg \
-filter_complex
"color=c=black:r=60:size=1280x800:d=7.0[black]
[0:v]format=pix_fmts=yuva420p,zoompan=d=25*4:
s=1280x800,fade=t=out:st=3.0:d=1.0:alpha=1,
setpts=PTS-STARTPTS[v0];[1:v]format=
pix_fmts=yuva420p,zoompan=d=25*4:s=1280x800,
fade=t=in:st=0:d=1.0:alpha=1,setpts=PTS-
STARTPTS+3.0/TB[v1];[black][v0]overlay[ov0];
[ov0][v1]overlay=format=yuv420" \
-c:v libx264 out.mp4
因此作者发布了Ruby 脚本使这一过程自动化。
我还发现diascope
,这是一个用于从命令行创建幻灯片的专用工具。它具有Ken Burns 风格特色。代码已经有一段时间没有更新了——我希望它能与最新的 ffmpeg 兼容。还没有尝试过。