FFMPEG运动插值替代或加速



我使用ffmpeg创建视频,这是很棒的工具。我从图片中创建视频,需要使它们尽可能流畅。我发现,我需要称为"运动插值"。我开始搜索所有论坛,发现只有3件事可以帮助我:Slowmovideo,Lutterflow和New FFMPEG的Filter filter Minterpalle。

SlowMovideo需要许多配置,我无法按照我的意愿工作。使用奶油,我尝试了任何东西。从安装OpenCL,OpenGL和其他内容到切换到NVIDIA二进制驱动程序,并安装所有SDK工具和CUDA。它从来没有起作用。关于CUDA的错误,Google不知道。

因此,第三个选项是唯一可用的选项。当我尝试它时,它确实做了我想要的!但这非常慢。我有8核CPU,它处理约0.1-0.3 fps。仅使用1个核心,没有视频卡。

有什么方法可以在GPU或CPU上运动插帧但更快?仅GNU/Linux

有什么方法可以在GPU上运动插图?

使用Minterpaly?否。它正在使用我知道的没有视频硬件加速支持的libswscale。

或在CPU上但更快?

您可以尝试各种Minterpaly选项以提高速度。或在Bug Tracker或BountySource上提供赏金以启用线程支持,或提交补丁以启用它(尽管我不确定此过滤器是否可能或现实)。

编辑:回答后不久,我看到您在FFMPEG-DEVEL邮件列表上询问了这一点提高速度。

我知道这是一个愚蠢的解决方案,但确实为您提供了想要的加速:如果您有多个剪辑,则可以同时为每个剪辑运行一个单独的FFMPEG命令,而不会影响该剪辑每个过程的性能,直到您拥有比内核更多的过程。

这是 linux/macos hack:

@thomashollier建议使用的bash脚本,该脚本创建主视频的切片,在切片上运行并行minterpolate实例,然后将结果串联到所得的" minterpolated"上。一起切片。

这是一个工作解决方案:
https://gist.github.com/majal/1E63A511B41FAEAE188083777F8E4B46

(对于Windows,移动到Linux 有人必须制作这样的批处理文件。)

正如预期的那样,它可以在串联点上在串联点上有点有趣的

最新更新