← Back to Retros

iota-editor

editor

What Went Well

What Didn’t Go Well

Failure Modes & Bottlenecks

Key Decisions Made

Suggestions for Improvement

Addendum: Pixel Format Bug (Post-Delivery Rework)

After delivery, Preston reported the video freezing on the title card’s final frame while audio continued. Root cause: the genmedia-assemble timeline renderer outputs yuv444p, but the title cards (generated via separate ffmpeg pipeline) were yuv420p. The concat demuxer cannot handle mid-stream pixel format changes — it silently fails at the boundary rather than erroring.

Fix applied: Re-encoded the rough cut to yuv420p with libx264 -crf 18 (visually lossless), then re-concatenated. Total rework time: ~3 minutes.

Lesson: Always verify pixel format consistency across all concat inputs with ffprobe -show_entries stream=pix_fmt before concatenation. The genmedia-assemble concat tool’s “All inputs match target specs” check validates resolution and fps but does not check pixel format — this should be added as a pre-flight check in the tool itself.

Addendum: Selective Reshoot Phase (v2)

An external reviewer identified visual-audio conflicts (characters with open mouths during narrator VO) and lack of conversational back-and-forth. Three targeted changes:

  1. Shot 16 → frozen tableau. Regenerated with “frozen mid-action” motion prompt so the VO narration plays over silent awe instead of a crowd visibly shouting. Simple swap, no timeline math.
  2. Shot 6 → compound VO+dialogue. Converted from pure VO to a two-part shot: shortened VO intro (4.3s) followed by Craig dialogue (7.5s L-cutting into Shot 7). Required removing the original craig_01_noodle stem to avoid same-track overlap.
  3. New shot 14b → compound dialogue insert. Gary and Reginald back-and-forth between shots 14a and 15. Required +7.5s shift of all downstream clips and audio. The Reginald stem (13.28s) was far longer than the analyst’s planned 4s window — trimmed to 6s via source_out to prevent collision with the siege VO.

What went well: The programmatic timeline update (Python script to shift clips and insert new ones) caught overlap issues that manual editing would have missed. Identified and resolved 3 voice-track collisions before rendering.

What didn’t go well: TTS stem durations didn’t match the reshoot plan’s time windows. The analyst specified “Gary at 0-3s, Reginald at 3.5-7.5s” but actual stems were 8.44s and 13.28s respectively. The editorial workaround (L-cuts + source trimming) was sound but the mismatch suggests TTS generation briefs should include target duration constraints.

Key lesson: When inserting a shot mid-timeline, always audit the full voice track for downstream collisions — shifted clips can overlap with new insertions in non-obvious ways. The systematic overlap check (iterating the sorted clip list) was essential.