test(#1749): 旧行为测试适配新口径(目标段长为准/逐处转场重叠/voice_ids 移除)+ filter_complex trim 口径统一
- unified_render_service filter_complex Step1 trim 时长改为 effective-freeze(与直通路径同口径,tpad 补冻结) - test_duration_compensation / render_audio_utils / render_audio_pure / 两处 render_layer_utils:min(duration,actual) 断言改为目标段长为准 - estimate_total_duration 测试:cut 零重叠、非 cut 逐处扣转场(FakeClip 加 transition_effect/duration) - test_generation_tasks/preview:voice_ids kwarg/字段移除,配音改 voice_library_id
This commit is contained in:
@@ -1736,12 +1736,15 @@ class UnifiedRenderService:
|
||||
# trim — 裁剪到指定区间,精确到帧
|
||||
effective_duration = UnifiedRenderService._clip_effective_duration(clip)
|
||||
trim_start = getattr(clip, "start_time", 0) or 0
|
||||
# #1749 冻结时素材内截取时长 = 目标段长 − freeze(末帧冻结由 tpad 铺满,与直通路径同口径)
|
||||
freeze_seconds = float((clip.config or {}).get("_freeze_seconds", 0.0) or 0.0)
|
||||
trim_dur = max(0.0, effective_duration - freeze_seconds) if freeze_seconds > 0 else effective_duration
|
||||
|
||||
if effective_duration > 0:
|
||||
if trim_dur > 0:
|
||||
if trim_start > 0:
|
||||
filters.append(f"trim=start={trim_start:.3f}:duration={effective_duration:.3f}")
|
||||
filters.append(f"trim=start={trim_start:.3f}:duration={trim_dur:.3f}")
|
||||
else:
|
||||
filters.append(f"trim=duration={effective_duration:.3f}")
|
||||
filters.append(f"trim=duration={trim_dur:.3f}")
|
||||
filters.append("setpts=PTS-STARTPTS")
|
||||
|
||||
# 调速 — 基于 setpts 改变播放速度
|
||||
@@ -1793,7 +1796,6 @@ class UnifiedRenderService:
|
||||
filters.append("setpts=PTS-STARTPTS")
|
||||
filters.append(f"fps={self.output_fps}")
|
||||
# #1749 末帧冻结:素材短于目标段长时克隆末帧铺满(禁慢放)
|
||||
freeze_seconds = float((clip.config or {}).get("_freeze_seconds", 0.0) or 0.0)
|
||||
if freeze_seconds > 0:
|
||||
filters.append(f"tpad=stop_mode=clone:stop_duration={freeze_seconds:.3f}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user