fix(video): 解决视频时间戳处理和编码参数问题

- 统一归零视频起始时间戳,避免源素材非 0 起始 PTS 造成封装后首帧冻结
- 修改 setpts 滤镜表达式为 setpts=PTS-STARTPTS 格式
- 为所有速度调整场景应用标准化的时间戳处理
- 添加视频编码参数测试文件,确保 B 帧在各种硬件加速下被禁用
- 为软件、QSV 和 CUDA 硬件加速添加 B 帧禁用测试用例
This commit is contained in:
2026-03-06 17:30:34 +08:00
parent 379e0bf999
commit affe933fec
3 changed files with 49 additions and 6 deletions

View File

@@ -725,8 +725,11 @@ class RenderSegmentTsHandler(BaseHandler):
break
combined_pts_factor = (1.0 / speed) * ospeed_factor
# 统一归零视频起始时间戳,避免源素材非 0 起始 PTS 造成封装后首帧冻结
if combined_pts_factor != 1.0:
filters.append(f"setpts={combined_pts_factor}*PTS")
filters.append(f"setpts={combined_pts_factor}*(PTS-STARTPTS)")
else:
filters.append("setpts=PTS-STARTPTS")
# 2. LUT 调色
if lut_file: