Feature Request: NTP-synchronized timecode embedded in OBS SRT output

misiu84

New Member
I’d love a feature that embeds NTP-synchronized timecode into SRT output from OBS.

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).
Proposed UI (Output → SRT)
  • [ ] 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
Behavior/Requirements
  • 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.
This would be incredibly helpful for multi-site productions and time-aligned ingest.
 
Top