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

使用FFmpeg concat demuxer拼接视频时关键帧偏移问题咨询

关于FFmpeg concat demuxer拼接后关键帧偏移的问题解答

现象是否正常?

这个关键帧PTS偏移的现象是正常但需修正的情况,核心原因在于:

  • 图片生成的5秒视频与修剪后的视频,时间基准(timebase)可能存在细微差异;
  • 使用-c copy流复制时,FFmpeg不会重新编码调整时间戳,仅按顺序封装数据包,MP4容器会根据自身规则重新对齐时间戳,导致关键帧PTS出现微小偏移;
  • MP4容器的moov原子结构封装逻辑,也会对最终显示的关键帧时间戳产生影响。

拼接时是否需要添加参数处理关键帧?

需要,可根据需求选择以下两种方案:

方案1:流复制(无画质损失,速度快)

通过参数强制生成对齐的时间戳,或在concat列表中确保片段属性一致:

  1. 保持list.txt的基础格式:
file '5秒图片视频.mp4'
file '修剪后的视频.mp4'
  1. 执行拼接命令时添加时间戳修复参数:
ffmpeg -f concat -safe 0 -i list.txt -c copy -fflags +genpts -shortest output.mp4 -y

方案2:重新编码(彻底解决对齐问题,画质可控)

如果流复制仍有偏移,可重新编码统一关键帧间隔与时间基准,同时确保拼接处首帧为关键帧:

ffmpeg -f concat -safe 0 -i list.txt -c:v libx264 -crf 23 -g 原视频关键帧间隔 -shortest output.mp4 -y

其中-g参数需与原视频关键帧间隔匹配(比如原视频5秒一个关键帧,帧率25fps则设-g 125)。

另外,可优化关键帧查看命令,直接读取帧信息更精准:

ffprobe -loglevel error -select_streams v:0 -show_entries frame=pts_time,key_frame -of csv=print_section=0 input.mp4 | awk -F',' '$2==1 {print $1}'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 15:55:13