30fps 看着卡?用 RIFE / Flowframes 插帧到 60fps 实战
有些片源 24/30fps,放到 120Hz 屏上总感觉"不够顺",尤其快速横移的镜头。插帧(frame interpolation)就是让 AI 算出两帧之间的"中间帧",把 30fps 补到 60fps。这篇讲 RIFE 怎么用,以及哪些场景它反而会搞砸。
原理一句话
模型学的是"光流"——前后帧每个像素往哪动。中间帧 = 按光流把前后帧各取一半权重融出来。不是简单复制帧,是"算"出来的,所以运动更连贯。
命令行跑 RIFE
我用 rife-ncnn-vulkan(同样 Vulkan,核显能跑):
rife-ncnn-vulkan -i in.mp4 -o out.mp4 -t 2 -g -1
-t 2 是倍率(30→60),-t 4 就是 120fps。吃视频直接吐视频,比 Real-ESRGAN 那套拆帧省事。
想要 GUI 就 Flowframes,中文界面、可视化,但底层也是 RIFE(或 DAIN/CAIN)。
坑一:快速运动出鬼影
足球、拳击、快速甩镜头,光流算错,中间帧会出现重影/残影。这类片源我一般只插到 2 倍,再高鬼影明显。慢动作、慢移的风景片效果最好。
坑二:体积翻倍
帧数翻倍,码率不跟着提的话反而更糊;提码率体积直接 ×2 往上。插完我习惯再用 -crf 压一道,找个平衡点。
和"变速"不是一回事
前面变速那篇是改播放速度(快放慢放),帧数没变;插帧是真增加帧数,所以慢动作可以这么玩:-t 4 插到 120fps,再用 ffmpeg 按 0.25x 播放,得到丝滑慢动作,比直接降速流畅得多。
一点提醒
插帧是"观感优化",不会增加真实信息。比赛直播、游戏录制这类本来高帧率的,插了反而可能引入奇怪的拖影。适合老电影、动画补帧这类。别无脑全插。