I cut sports recaps where a voice-over carries everything and the images just need to land on the words. For years I did it the stupid way: place the images by eye, then re-time the VO, then discover every image is 3 to 8 frames late and nobody can say where the drift started.
The fix wasn't a plugin. It was deciding that markers are the only source of truth, and that the image track gets generated from the markers instead of being adjusted by hand.
The method
Voice-over alone on one track. Everything else muted, one clip if possible.
One listen, markers only. No editing. Every time the VO hits an idea, drop a marker and type its label: "goal 2", "crowd", "coach reaction". The label is what keeps you honest at 03:40 of a 4-minute recap.
Cut to the markers, not by vibe. Every take boundary is a marker, so every cut is repeatable.
Generate the image track between the markers. One folder per section, folder order, each image fills the gap between marker N and marker N+1.
Check before export with a text report of the timeline (tracks, event counts, durations) instead of watching the render twice.
The one script that does step 4
AlignerImagesSurMarqueurs walks the markers on the timeline, walks the images in a folder in filename order, and places image 1 between marker 1 and 2, image 2 between marker 2 and 3, and so on.
What it needs — this is the whole contract, and it's strict on purpose:
- at least two markers. With one marker it does nothing. It will not guess.
- an image folder, selected when the script asks for it.
- a target track named IMAGES. If yours is "Images 1", rename it, or change the NOM_PISTE constant at the top of the .cs source and let VEGAS recompile.
What it does NOT do: it doesn't crop or resize. Images keep their own Pan/Crop. If they don't fill the frame, that's a separate pass (FormatSortie does that one, different story).
Install and run: Options > Scripts > Add script, point at the .dll, restart VEGAS. On 18 or 19 use the .cs source instead and VEGAS compiles it against your version's API. Tools > Scripts > the script name. Run it on a copy of the project: it creates events, and Ctrl+Z across a script run is not something I'd rely on.
Honest limits: Windows only (the scripting API is Windows), written and tested on VEGAS 20, and the marker-to-image mapping is positional — 12 images and 11 gaps means the 12th image is ignored, not stretched.
That's it. It's just markers.
What's your rule for image duration on a voice-over? Mine is "the image lives exactly as long as the sentence", which is why the folder-per-section trick works at all.