Repository navigation
Edit a full multicam episode: sync every camera and mic, cut to the speaker - #226
Merged
Merged
Conversation
…peaker podcli could only start from one finished video. A podcast recorded on three cameras and two recorders had to be synced and cut somewhere else first. Point podcli at the folder of one episode's recordings. It guesses who each file belongs to from its name, syncs everything by audio, and cuts cameras to whoever is talking. Crosstalk and long monologues go to the wide shot. The result renders as an MP4 with one WAV per person, or exports as a Premiere XML or FCPXML timeline that points at the original files. Sync cross-correlates onset envelopes over the full length of both files, then refines with GCC-PHAT at several checkpoints and fits a line through them. The line gives the offset and the clock drift between devices, which the render and both timelines correct. A file that shares no sound with the reference gets a second try against every file that did sync, so split camera parts line up without a continuous mic. Audio that starts late inside a video file is anchored to container time, and offsets set by hand survive a re-sync. Who is talking comes from each person's mic, normalized to that mic's own speech level so bleed and a hot preamp don't decide the cut. Shows with one shared mic fall back to speaker detection. The same edit runs from the studio (Multicam edit), the CLI (podcli multicam <folder>) and the manage_multicam MCP tool. All three share one saved edit per set of files, so re-running reuses the sync and the cut, and an unchanged render is skipped. A job holds its edit until it finishes, so a second job or an edit made meanwhile is refused instead of lost.
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 47 minutes. View limit detailsLimit details: You’ve used the included review currently available. Review configuration: ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (27)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Merged
nmbrthirteen
added a commit
that referenced
this pull request
Oct 1, 2026
Version bump only. Ships multicam editing from #226.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
podcli could only start from one finished video. A podcast recorded on several cameras and recorders had to be synced and cut in another tool first. This adds the full-episode edit: point podcli at one episode's folder and it maps, syncs, cuts, and delivers.
What changes
Tr1/Tr2numbering. A single stereo recorder is split one person per side. Guesses are flagged until someone confirms them.podcli multicam <folder>, with--set FILE=ROLE:NAME,--export,--no-renderand--resync.manage_multicamMCP tool, bringing the total to 27./api/multicam/fileserves only files inside a multicam output folder. Folder scans stop at 40 media files or 20,000 entries.fcpxml.file_urinow usesPath.as_uri(), so Windows paths import in Resolve. This also fixes the existing DaVinci export.Verification
test_ai_fallback::test_find_cli_falls_back_to_shell_lookup, also fails onmain.manage_multicam, driven through the real MCP server with the MCP client SDKNot verified: opening the exported timelines in Premiere, Resolve or Final Cut, and rendering multi-hour 4K footage.