有一个命令可以从 *.jpg 文件制作幻灯片 mp4:
ffmpeg -r 1/3 -f concat -safe 0 -i <(ls -v *.jpg | sed "s|^|file '$PWD/|") -vf "scale='min(1920,iw)':min'(1080,ih)':force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2" -c:v libx264 -pix_fmt yuv420p -r 60 -preset slow -crf 14 slideshow.mp4
需要从一个 jpg 到另一个 jpg 的良好效果,例如变形或淡入淡出,而不仅仅是“一张图片 3 秒,下一张图片 3 秒,等等”。OpenAI 或 ChatGPT 对于这个问题有点笨拙,因此需要人类的知识和智慧 :)
答案1
我已经针对这个问题做了一些研究。看起来构建一行命令并不容易。需要一个包含多个步骤的脚本来描述每张图片之间的效果。一些使用-loop 1 -i './01.jpg' -loop 1 -i './02.jpg'
和逐步filter_complex
的东西。 这很有用setpts=PTS-STARTPTS,split=2[stream1out1][stream1out2];[stream2blurred][stream2raw]
github 链接使用幻灯片脚本,例如模糊背景、淡入/淡出、放大/缩小。但这些脚本占用大量内存,生成时间缓慢,并且 mp4 最终大小较大。
因此看起来初始命令使用起来还不错。