Mic*_*ael 6 video codec ffmpeg slideshow
我刚刚想出了如何使用交叉淡入淡出制作幻灯片。这是一个两步过程。第一步读取帧率为 0.5 的图片(每张图片 2 秒),并生成帧率为 2 的中间视频。这意味着每张图片重复 4 次。第二步应用帧率过滤器。结果是每张图片显示 1.5 秒,然后是 0.5 秒的淡入淡出。
ffmpeg -framerate 0.5 -i IMG_%3d.jpg -r 2 -codec:v mpeg4 temp.mp4
ffmpeg -i temp.mp4 -vf "framerate=fps=25" -codec:v mpeg4 out.mp4
Run Code Online (Sandbox Code Playgroud)
这两个步骤的过程工作正常,但我有两个问题:
谢谢,迈克尔
我想总结一下解决方案:
ffmpeg -i IMG_%3d.jpg -vf zoompan=d=(A+B)/B:s=WxH:fps=1/B,framerate=25:interp_start=0:interp_end=255:scene=100 -c:v mpeg4 -maxrate 5M -q:v 2 out.mp4
Run Code Online (Sandbox Code Playgroud)
其中 A 是每张图片显示的持续时间(无交叉淡入淡出持续时间),以秒为单位,B 是以秒为单位的淡入淡出持续时间,WxH 是输出视频的大小。
您可以在应用过滤器之前重新调整帧的时间:
ffmpeg -i IMG_%3d.jpg -vf "setpts=N/0.5/TB,framerate=fps=25" -codec:v mpeg4 out.mp4
Run Code Online (Sandbox Code Playgroud)
更新:帧率过滤器似乎与摄取时的输入帧率相关,因此使用管道的替代方法
ffmpeg -framerate 0.5 -i IMG_%3d.jpg -vf fps=2 -f nut - | ffmpeg -f nut -i - -vf framerate=25 -c:v mpeg4 out.mp4
Run Code Online (Sandbox Code Playgroud)
单行解决方法:
ffmpeg -i IMG_%3d.jpg -vf zoompan=z=1:d=4:s=WxH:fps=2,framerate=25 -c:v mpeg4 out.mp4
Run Code Online (Sandbox Code Playgroud)
其中 W 和 H 替换为输入尺寸。
| 归档时间: |
|
| 查看次数: |
5405 次 |
| 最近记录: |