I’d love a feature that embeds NTP-synchronized timecode into SRT output from OBS.
Why
Why
- Many live and broadcast workflows need frame-accurate alignment across multiple encoders/locations.
- An absolute, NTP-locked timecode inside the stream makes downstream switching, logging, replay, compliance, and multi-camera sync far more reliable than relying on local clocks.
What I’m asking for
- Option to sync OBS to an NTP server (user-specified, with fallback to system time).
- Embed absolute UTC timecode (HH:MM:SS:FF) in the SRT stream.
- Reasonable choices for carriage (any one of these would work):
- H.264/H.265 SEI timecode/user-data,
- MPEG-TS timecode metadata (e.g., time stamps aligned to PCR/PTS with explicit UTC reference),
- or SRT metadata/OOB message channel if available.
- Configurable frame rate for the timecode to match the output FPS, plus an optional offset (± ms).
- [ ] Embed NTP-synchronized timecode
- NTP server(s): pool.ntp.org (editable list)
- Timecode format: UTC absolute
- Output FPS (auto from encoder)
- Offset (ms): 0
- Status: Locked / Holdover / Unlocked with last sync age
- Graceful holdover if NTP drops (continue with local monotonic clock; flag status).
- Jitter filtering and sanity checks on NTP adjustments (avoid jumps mid-stream).
- Expose status in stats window and logs.
Acceptance criteria
- When enabled, downstream decoders/recorders that read the chosen carriage can see monotonic, NTP-aligned UTC timecode matching the encoded FPS.
- If NTP is unavailable, OBS clearly indicates Holdover and continues without frame drops.
- Timecode remains continuous across scene changes and encoder restarts within a session.