Skip to content

Preserve recording timestamps through file transcription and export - #42

Draft
RioPlay wants to merge 10 commits into
feat/obs-mix-provenancefrom
feat/recorded-file-timelines
Draft

RioPlay wants to merge 10 commits into
feat/obs-mix-provenancefrom
feat/recorded-file-timelines

Conversation

@RioPlay

@RioPlay RioPlay commented Sep 13, 2026 •

Copy link
Copy Markdown
Owner

Recorded-file transcription previously collapsed track offsets and timestamp gaps. This draft adds recording-clock transcription and SRT/VTT export: a late track stays late, and an internal pause remains in the subtitle timeline. The window inspects actual audio streams, offers Keep recording timestamps when a common clock exists, and explains when only relative timing is available. Changing track or timing clears the old preview; unchanged reinspection preserves it. CLI/API callers explicitly select recording timing and retain relative defaults. Ordinary PCM WAV still works without extra tools.

An explicitly selected compatible FFmpeg/FFprobe pair supplies original frame timing through a bounded private metadata journal and independently flushed resampling runs. Source/tool checks, exact sample counts, successful child exits and journal integrity are required before a transcript can complete. Late failures discard tentative recognition. There is no automatic executable discovery, model download, recording or export. Decoder setup stays compact with scrolling guidance and separate verified tool selections. Source PyAV remains separate from packaged support.

Validation: 309 targeted tests passed with no skips, including eight real selected-tool cases. A real two-track MKV reaches production transcription and atomic SRT/VTT export with only the speech engine substituted: its 1-second origin normalizes once; second-track cues remain at 0.2 and 0.4 seconds, while explicit relative mode starts at zero. Independent backend and UI/CLI reviews pass. Seven synthetic Windows captures cover default/compact file and setup windows; current screenshots are included in documentation. All five desktop jobs passed in CI 34788391220 at 770ebf0. The preceding adapter checkpoint babaae6 passed all five desktop jobs in CI 34787584275.

Grouped multi-track jobs/export and remaining recording/release acceptance stay open in docs/plans/active/recorded-file-timelines.md. This is unreleased source; it does not establish general speech quality or live OBS acceptance. Published desktop RC2 and Android alpha15 remain separate. Stacked on #41 at 813cce7.

@RioPlay RioPlay changed the title Preserve recorded-file timing and inspect actual tracks Add recorded-file timing core and explicit probe identity Sep 13, 2026
@RioPlay RioPlay changed the title Add recorded-file timing core and explicit probe identity Inspect recorded audio tracks and build shared file timeline foundations Sep 13, 2026
@RioPlay RioPlay changed the title Inspect recorded audio tracks and build shared file timeline foundations Inspect recorded tracks and preserve original decoder timing Sep 13, 2026
@RioPlay RioPlay changed the title Inspect recorded tracks and preserve original decoder timing Preserve recording timestamps through file transcription and export Sep 13, 2026
RioPlay added 3 commits September 13, 2026 23:35
Selecting several inspected streams now runs one all-or-none job and writes sibling subtitle files. A later no-overwrite failure still publishes nothing. Recording jobs pin one inspected origin; relative remains the default unless asked for.
When a decoder actually keeps a negative common origin, recording transcription subtracts it once so SRT/VTT cues stay nonnegative and a late track stays late. A real Matroska mux that drops forced-negative timestamps leaves the clock unavailable instead of reporting zero.

This branch has not been deployed

No deployments
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