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

如何使用FFmpeg将视频起始时间设置为0?

如何使用FFmpeg将视频起始时间设置为0?

看起来你遇到了自定义PTS后视频起始时间不为0的问题,我来帮你梳理下解决思路~

你提到用FFmpeg给MP4设置了自定义PTS,但通过ffprobe检测到输出视频的信息是:

Duration: 00:00:05.00, start: 0.033008, bitrate: 2638 kb/s

起始时间不是预期的0,对吧?

从你补充的命令来看,问题根源已经被你找到了——你在setpts滤镜里错误地把帧ID从-1开始计算了,这直接导致第一帧的PTS值大于0,最终让视频的起始时间产生了偏移。

要解决这个问题,只需要调整setpts滤镜里的帧ID起始逻辑,去掉针对N=-1的判断,直接从第0帧(视频的第一帧)开始定义对应的PTS值就可以了。

修正后的命令示例如下:

ffmpeg -y -i input.mp4 -filter_complex "[v]setpts='(330*eq(N,0)+191*eq(N,1)+211*eq(N,2)+...)'[out]" -map [out] out_video.mp4

简单解释下:这里移除了原命令中0*eq(N,-1)+这部分无效逻辑,直接从第一帧(N=0)开始设置对应的PTS值,这样第一帧的PTS就会是你期望的起始值,最终视频的起始时间就会变成0。

处理完成后,你再用ffprobe检查输出视频,就能看到start: 0.000000的结果,说明设置成功啦。

备注:内容来源于stack exchange,提问作者legeba

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 10:45:31