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

使用FFmpeg无损截取视频后播放卡顿的原因及解决方法

FFmpeg截取视频卡顿问题的解决方法

问题原因

你使用-vcodec copy和-acodec copy直接复制音视频流时,-ss放在-i参数之后,FFmpeg会先解码视频到指定时间点再复制流。如果起始时间点(00:02:00)不是视频的关键帧,会导致输出文件的时间戳混乱,加上原视频可能存在编码信息不完整的情况,就会触发日志中的pts has no value等错误,最终导致播放卡顿。

解决方法

方法1:调整-ss位置并修正时间戳

将-ss放在输入文件参数前,让FFmpeg快速定位到最接近起始时间的关键帧,同时添加时间戳修正参数:

ffmpeg -ss 120 -t 90 -i input.mp4 -vcodec copy -acodec copy -avoid_negative_ts make_zero output.mp4
  • -ss前置:FFmpeg会利用视频索引直接跳转到关键帧,避免解码大量非关键帧,同时保证流复制的时间戳完整性
  • -avoid_negative_ts make_zero:强制输出文件的时间戳从0开始,修复日志中提示的时间戳未设置问题

方法2:重新编码(兼容性最优)

如果直接复制流的方式仍有问题,放弃copy参数,重新编码生成完整的视频文件:

ffmpeg -ss 120 -t 90 -i input.mp4 -c:v libx264 -c:a aac output.mp4

重新编码会生成标准的关键帧和正确的时间戳,彻底解决时间戳异常和播放卡顿问题,适合原视频编码格式存在缺陷的场景。

方法3:精确截取+时间戳修正

如果需要毫秒级的精确截取,结合-ss后置、-copyts和时间戳修正参数:

ffmpeg -i input.mp4 -ss 120 -t 90 -vcodec copy -acodec copy -copyts -avoid_negative_ts make_zero output.mp4
  • -copyts:保留原视频的时间戳信息,保证截取精度
  • -avoid_negative_ts make_zero:修正可能出现的负时间戳,避免播放器解析错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 23:06:00