我想创建一个淡入淡出的图像幻灯片。淡出它们之间的过渡,我正在使用FFmpeg淡入淡出过滤器。
如果我使用命令:
ffmpeg -i input.mp4 "fade=in:5:8" output.mp4
要创建具有淡入淡出效果的输出视频,然后它会输出前5帧黑色的输出视频,而不是显示淡入效果的图像,但我希望淡入淡出:in:帧变化之间的效果。
我该怎么做?
请告诉Centos服务器的解决方案,因为我只在此服务器上使用FFmpeg
答案 0 :(得分:7)
要创建具有淡入淡出效果的视频,只需将视频分成几部分,然后为每张图片创建单独的视频。例如,如果您有5张图像,那么首先要为每张图片创建50-60张副本并获取该视频:
$command= "ffmpeg -r 20 -i images/%d.jpg -y -s 320x240 -aspect 4:3 slideshow/frame.mp4";
exec($command." 2>&1", $output);
这将允许您创建5个不同的视频。然后,您需要这些五个图像的10-12个不同副本,并再次创建具有淡入淡出效果的单独视频。
ffmpeg -i input.mp4 "fade=in:5:8" output.mp4
在此之后,您将拥有以下视频:图像1的视频及其淡入淡出效果,然后是图像2及其淡入淡出效果等。现在按照各自的顺序组合这些视频以获得整个视频。
合并您需要的视频:
$command = "cat pass.mpg slideshow/frame.mpg > final.mpg";
这意味着使用cat
加入视频,然后您需要将它们转换为mpg,加入它们并再次将它们重新转换为mp4或avi以正确查看它们。转换后的mpg视频也不合适,所以不要打扰。当你将它们转换为mp4时,它将正常工作。
答案 1 :(得分:2)
您可以使用帧率过滤器在图片之间进行交叉渐变的幻灯片放映。在以下示例中,0.25是用于在图片中读取的帧率,在这种情况下,每张图片为4秒。参数fps设置输出帧速率。参数interp_start和interp_end可用于改变衰落效应:interp_start = 128:interp_end = 128表示根本没有衰落。 interp_start = 0:interp_end = 255表示连续衰落。当一张图片淡出并且下一张图片完全淡入时,第三张图片将立即开始淡入。显示第二张图片没有暂停。 interp_start = 64:interp_end = 191表示暂停一半的时间用于显示图片而另一半是淡入淡出。不幸的是,它不会从0到100%完全消失,但只有25%到75%。这不完全是你想要的,但最好不要褪色。
ffmpeg -framerate 0.25 -i IMG_%3d.jpg -vf“framerate = fps = 30:interp_start = 64:interp_end = 192:scene = 100”test.mp4
答案 2 :(得分:1)
您可以使用gifblender从图片中创建混合的中间帧,然后使用ffmpeg将其转换为电影。