wjs-syncing-multicam
Use when the user has 2+ video / audio recordings of the same event captured by different devices (cameras, phones, separate audio recorders) and wants them aligned to a single common timeline. Outputs only a lightweight `.sync.json` sidecar per input — original files are never re-encoded. Triggers — "多机位同步", "对齐这几个机位", "match camera timelines", "sync these angles", "audio drift between cameras", "separate audio recorder", "Riverside / Zoom recording that needs to line up".
npx skills add jianshuo/claude-skills --skill wjs-syncing-multicam --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
# wjs-syncing-multicam Compute a single time offset for each multi-source recording of the same event using audio cross-correlation, and emit a `.sync.json` sidecar next to each original. **Originals are never modified, copied, or re-encoded.** Downstream tools use `-itsoffset` to apply the offset at consume time. ## Setup & commands The implementation lives in the open-source **`polysync`** pip package (<https://pypi.org/project/polysync/> · <https://github.com/jianshuo/polysync>) — this skill no longer ships its own scripts. Ensure it's installed, then drive it via its CLI: ```bash python3 -m pip install -U polysync # needs ffmpeg/ffprobe on PATH polysync sync REFERENCE SOURCE # align SOURCE to REFERENCE, write sidecars polysync sync REFERENCE SOURCE --partial # source covers only part of the session polysync verify REFERENCE SOURCE SOURCE.sync.json # independent residual check ``` Run one `polysync sync` per non-reference angle (reference first, same reference each time). The sections below document the algorithm, the sidecar schema, and the gotchas baked into the package — read them to interpret output and choose flags. ## Design principle — sidecar over re-encode Earlier versi
- Setup & commands
- Design principle — sidecar over re-encode
- When NOT to use
- Why envelope-based, not raw waveform
- Algorithm
- Sidecar schema (<input>.sync.json)
- Field reference
- How downstream consumes the sidecar
- Partial-coverage clips — polysync sync --partial
- When to skip drift correction
- Verification (always run)
- Common pitfalls
python3 -m pip install -U polysync # needs ffmpeg/ffprobe on PATH polysync sync REFERENCE SOURCE # align SOURCE to REFERENCE, write sidecars polysync sync REFERENCE SOURCE --partial # source covers only part of the session polysync verify REFERENCE SOURCE SOURCE.sync.json # independent residual check Play cam_b aligned to cam_a's timeline ffmpeg -itsoffset $(jq -r .delta_seconds cam_b.MOV.sync.json) -i cam_b.MOV \ Trim to mutual overlap window (read from cam_b.MOV.sync.json) ffmpeg -ss <overlap_in_source[0]> -i cam_b.MOV -t <overlap_dur> ...
What does the wjs-syncing-multicam skill do?
Use when the user has 2+ video / audio recordings of the same event captured by different devices (cameras, phones, separate audio recorders) and wants them aligned to a single common timeline. Outputs only a lightweight `.sync.json` sidecar per input — original files are never re-encoded. Triggers — "多机位同步", "对齐这几个机位", "match camera timelines", "sync these angles", "audio drift between cameras", "separate audio recorder", "Riverside / Zoom recording that needs to line up".
How do I install it?
Run `npx skills add jianshuo/claude-skills --skill wjs-syncing-multicam --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From jianshuo/claude-skills, a repository with 112 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
