fix(blocks): validate transition_duration against shortest clip in concat

Prevents confusing MoviePy errors when transition_duration exceeds
the duration of any input clip.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Nicholas Tindle
2026-02-04 22:24:09 -06:00
parent dd2ccd31d3
commit cbab0c2149

View File

@@ -112,6 +112,19 @@ class VideoConcatBlock(Block):
strip_chapters_inplace(v)
clips.append(VideoFileClip(v))
# Validate transition_duration against shortest clip
if transition in {"crossfade", "fade_black"} and transition_duration > 0:
min_duration = min(c.duration for c in clips)
if transition_duration >= min_duration:
raise BlockExecutionError(
message=(
f"transition_duration ({transition_duration}s) must be "
f"shorter than the shortest clip ({min_duration:.2f}s)"
),
block_name=self.name,
block_id=str(self.id),
)
if transition == "crossfade":
for i, clip in enumerate(clips):
effects = []