Skip to content

Add synchronized media conversion and guarded rough cuts - #22

Open
RichardBray wants to merge 2 commits into
mainfrom
feat/synchronized-media-workflow
Open

Add synchronized media conversion and guarded rough cuts#22
RichardBray wants to merge 2 commits into
mainfrom
feat/synchronized-media-workflow

Conversation

@RichardBray

@RichardBray RichardBray commented Sep 9, 2026

Copy link
Copy Markdown
Member

Source-time rebuilds currently serialize separate screen/camera/audio sources, and reuse the first clip on an already-cut track, potentially discarding later adjustments. This adds synchronized source groups and refuses timelines whose existing edits cannot be preserved.

  • Add rebuild --sync-groups with explicit source offsets, shared cut boundaries, unique clip IDs, finite/range/frame-rounding validation, and member timings in dry-run output.
  • Add convert-media to create a new editable MP4/WAV .cmproj from one uncut TREC. Preserve static framing/gain and track flags, validate streams, refuse existing output, and leave the original project and Camtasia settings/cache untouched. Native cursor data and unused bin items are explicitly excluded. A bounded final-frame hold covers short decoded TREC tails.
  • Request full local Whisper JSON for word offsets and exclude reversed word timestamps without losing segment text.
  • Document supported input and limitations. Existing rebuild lock/backup protections remain; --force does not bypass timeline validation.

Validation: 80 tests pass (including an FFmpeg conversion integration test); TypeScript check and standalone CLI build pass. A separate-media sample was opened, played, saved/reopened and exported in Camtasia 2026.2.1; exported audio/video durations matched. Full-recording validation also passed: an 864.5-second recording converted and rebuilt into 34 synchronized sections (102 clips), played and saved/reopened in Camtasia 2026.2.1, and exported as a 319.5-second MP4 with matching video/audio duration. Full export decode passed, sampled compositions were inspected, and exported-audio correlation against the edited PCM showed offsets below 0.5 ms at five points. This is a workflow mitigation related to #17, not a claim to fix Camtasia's underlying decoder issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant