You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用FFmpeg实现视频每帧显示1秒 不丢帧不增大文件体积

FFmpeg实现保留全部原始帧、调整单帧显示时长方案

直接使用码流层时间戳修改方案即可,全程不重编码视频帧、不丢帧不插帧、输出文件体积和原文件无差异,最终实现122帧每帧显示1秒、总时长122秒的效果。

可直接使用的命令

ffmpeg -i 你的输入文件路径 -c:v copy -bsf:v setts=pts=N*1/TB,dts=N*1/TB -r 1 -an output.mp4

参数说明

  • -c:v copy:直接复制原始视频流数据,不对帧内容做任何解码重编码操作,100%保留原始帧信息,不会额外增加文件体积
  • -bsf:v setts=pts=N*1/TB,dts=N*1/TB:通过比特流滤镜直接修改每帧的显示时间戳(PTS)和解码时间戳(DTS),让相邻两帧的时间间隔固定为1秒,整个过程不改动帧本身的画面内容
  • -r 1:将容器层面标记的视频帧率设置为1fps,保证所有播放器都能正确识别播放节奏
  • -an:移除原视频中的音频轨(如果需要保留音频,可去掉该参数,额外添加-c:a aac -filter:a "atempo=0.14"将音频速度匹配到122秒的总时长即可)

注意事项

不要单独使用-r 1参数执行操作,FFmpeg默认的帧同步模式会自动丢弃多余帧或生成插值帧来匹配目标帧率,必须配合上述时间戳修改参数才能保证全部122帧原始帧完整保留。
处理完成后可以用以下命令校验输出文件的帧数,确认结果符合预期:

ffprobe -v error -count_frames -select_streams v:0 -show_entries stream=nb_read_frames output.mp4

命令返回帧数为122即处理成功,此时视频总时长正好为122秒,每帧固定显示1秒。

内容的提问来源于stack exchange,提问作者Paulo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 08:15:45