如何用FFmpeg为12fps定格动画逐帧复制画面?
用FFmpeg实现定格动画帧复制的方案
完全可以用FFmpeg实现你的需求,根据你想要的最终效果,有两种常用方法:
情况1:保持总时长不变,输出24fps视频(每帧复制一次)
如果希望最终视频帧率翻倍为24fps,同时总时长和原视频一致,只需指定输出帧率并强制恒定帧率模式,FFmpeg会自动复制每帧一次填充帧率差,不会做插值处理,完美适配定格动画的需求:
ffmpeg -i input.mp4 -r 24 -vsync cfr output.mp4
参数解释:
-r 24:指定输出视频的帧率为24fps-vsync cfr:强制恒定帧率输出,确保FFmpeg通过复制帧而非插值来达到目标帧率
如果你的素材是图片序列(定格动画常用拍摄方式),比如命名为img_0001.png、img_0002.png的12fps序列,命令调整为:
ffmpeg -framerate 12 -i img_%04d.png -r 24 -vsync cfr output.mp4
情况2:保持12fps帧率,总时长翻倍(每帧显示两次)
如果希望保持12fps的帧率,但让每个原始帧停留两倍时间(总时长变为原视频的2倍),可以使用setpts滤镜修改帧的时间戳:
ffmpeg -i input.mp4 -filter:v "setpts=2*PTS" output.mp4
参数解释:
setpts=2*PTS:将每个帧的显示时间戳加倍,相当于把每帧的停留时长变为原来的2倍,最终视频仍为12fps,但每个原始帧会被连续显示两次
内容的提问来源于stack exchange,提问作者Gillian
相关产品推荐
相关产品推荐

