Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video ffmpeg将循环插值为平滑_Video_Filter_Ffmpeg_Interpolation - Fatal编程技术网

Video ffmpeg将循环插值为平滑

Video ffmpeg将循环插值为平滑,video,filter,ffmpeg,interpolation,Video,Filter,Ffmpeg,Interpolation,我使用ffmpeg创建循环视频,循环完全平滑,就像在所有帧之间移动一样。 我有27幅图像,其中一幅在另一幅中变换,所以第0帧=第27帧 我在图像之间使用-vf minterpolate=fps=30,所以过渡非常平滑。我有-framerate 10,所以理论上插值过滤器会创建3个额外的帧。所以我删除了第27帧并创建了一个视频 ffmpeg-帧速率10-开始编号0-i./motion/%d.png-vf“minterpolite=fps=30” 但当它循环时,在0和最后一帧之间没有过渡,并且不平滑

我使用ffmpeg创建循环视频,循环完全平滑,就像在所有帧之间移动一样。 我有27幅图像,其中一幅在另一幅中变换,所以第0帧=第27帧 我在图像之间使用-vf minterpolate=fps=30,所以过渡非常平滑。我有-framerate 10,所以理论上插值过滤器会创建3个额外的帧。所以我删除了第27帧并创建了一个视频

ffmpeg-帧速率10-开始编号0-i./motion/%d.png-vf“minterpolite=fps=30”

但当它循环时,在0和最后一帧之间没有过渡,并且不平滑。如何在循环之间创建平滑过渡?我试图离开第27帧,在胶合视频时,删除最后一帧,这是重复的。但我不知道如何在失败时只剪切一帧


请帮我用minterpolate过滤器使环路平滑

如果我没弄错的话,循环时从最后一帧到第一帧没有插值。快速解决方案是复制第一帧并重命名它以使其成为最后一帧。因此,如果1.png是第一个图像,27.png是最后一个图像,那么将1.png复制为28.png。现在,运行当前命令。在循环关节处,您将有一个额外的1/28.png帧重复。这将使视频持续时间增加0.033秒。如果您需要删除它,请在Minterpole之后应用
trim=end\u frame=83

我将视频解包并插入到帧中,发现在开始时,在第一帧之间出现了问题。也许minterpolate跳过了一些内容,但我使用trim=start\u frame=81:end\u frame=162解决了这个问题,所以我又生成了两次图像,并在第一次循环后进行了剪切。我知道,这是开销,并试图只添加3-4个额外的帧,但只有这种组合工作得很好


@Mulvya,谢谢你的回答,你帮了我很多

谢谢你的信息。我试过了,但没用。为了测试循环,我使用ffmpeg的concat将同一个文件加倍多次。当循环开始时,会出现“间隙”或“快速移动到下一帧”,而不会产生任何效果/插值。很糟糕,minterpolate无法缓存它的结果,这就是我现在拆分这些进程的原因。我只需要在这28帧之间进行插值,并重复多次。而且速度非常慢,而且只使用1个线程/1个内核。只使用cpu:(我不知道其他插值方法,我试过butterflow,但没用。你能分享图片吗?请在这里获取:谢谢帮助。0.png=27.png