有 FFMPEG 专家能告诉我 FFMPEG 是否可以进行类似于 After Effects 中的 Twixtor 插件的任何复杂帧插值吗?如果可以,建议尝试哪些设置?我正在尝试从 60fps 源创建超慢动作高清素材。即转换为 120fps 并插入帧。
答案1
FFmpeg 无法做到这一点。
有一些讨论几年前他们就曾考虑过实现这样的功能,但到目前为止他们还没有在项目中发布任何类似于帧插值的东西。
当然,你也可以使用类似的免费工具,例如慢动作视频还举办在 GitHub 上如果你想看看源代码。
答案2
libavfilter 库有一个名为最小插值,自 2016 年 11 月起可用。根据 fitler 的描述,它的用途是:
“使用运动插值将视频转换为指定的帧速率。”
使用示例:
ffmpeg -i input.60fps.hevc -filter "minterpolate='fps=120'" output.120fps.hevc
我不知道要使用哪些设置才能获得最佳效果。根据我的经验,默认设置提供了可接受的运动插值质量。但偶尔会出现一些非常明显的视觉伪影。我无法找到可以完全消除这些伪影的设置组合。
目前,该滤镜的速度非常慢。在现代高端 x86 CPU 上,它每秒可以输出大约 2 个 1080p 视频的运动插值帧。我注意到插值仅使用单个 CPU 线程,这可能是速度如此缓慢的主要原因。
为了加快多核 CPU 上的过滤器速度,建议将输入视频分成几个等长的块,然后对所有块并行应用运动插值。
答案3
更新后几个月:
ffmpeg -i 输入.mp4 -movflags +faststart -filter_complex “[0:v]minterpolate='fps=60:mi_mode=mci:me_mode=bidir:mc_mode=obmc:me=ds:vsbmc=1'” -preset 超快输出.mp4
原始帖子:
我可以实现这样的效果(虽然并不完美), 混合筛选
ffmpeg -i 源.mp4 -filter:v tblend -r 120 结果.mp4