forked from jsl/video_editing_poc
A montage edits many short shots pulled from ANYWHERE in the source (not a few fixed contiguous highlight windows), sequenced establishing -> quick detail cuts -> slow-motion hero, over one continuous music bed -- much closer to how a car film is actually cut. - MontagePlan model + director/montage.json shot list (per-shot source time, duration, punch-in zoom, speed). - HighlightDirectorFlowService.processMontage: builds one EditPlan from the shot list (bypassing the highlight-window validator), one continuous music cue, distributed voiceover, and titles; reuses asset prep + worker + renderer. - Renderer: explicit per-shot framing via a "zoom=" token (falls back to the progressive punch-in); pin each segment to its exact target duration with -t so frame-quantization drift cannot accumulate across many short shots. Verified on the DJI source: 18 shots, 16.7 s, -16.5 LUFS, TP -2.8 dBTP, QA green. The edit now reads as a real montage (varied framing + detail cuts + hero) rather than slow pans. mvn -o verify green (248). Remaining ceiling is the source footage. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bg76sLc43Wc3j5ZcLkboYR |
||
|---|---|---|
| .claude/skills | ||
| .idea | ||
| dashboards | ||
| docs | ||
| input/source | ||
| output | ||
| src | ||
| tools | ||
| .gitignore | ||
| pom.xml | ||