Bilingual Caption Doctor

Apply a fixed subtitle timing offset safely

A fixed timing offset moves every cue by the same amount. If a caption currently starts at 1.000 seconds and should start at 1.500 seconds, use +500 milliseconds. Its end moves by the same amount, preserving its duration.

Check the earliest cue

The english fixture starts at 1.000 seconds. An offset of -1000 milliseconds moves that start to zero. An offset of -1001 would produce a negative start, so Caption Doctor rejects the entire proposed export. It does not clamp individual timestamps, silently drop cues, or shorten them to fit.

  1. Inspect the file and resolve malformed timestamps first.
  2. Enter a whole number of milliseconds in Fixed timing offset.
  3. Compare both start and end times in the proposed result.
  4. Export a new file and inspect captions near the beginning and the end of the video.

When an offset is insufficient

If the timing error grows as the video progresses, one fixed offset cannot correct the changing difference. This version does not stretch timing, detect frame-rate differences or align speech automatically. Use a dedicated editor when you need those operations.

WebVTT settings such as align:center remain attached to their cues after a supported timing shift. Segment timestamp maps and inline karaoke timestamps require additional synchronization rules; those inputs are diagnostic-only here. Bilingual text and direction controls are preserved during the shift.

Tested examples: english,negative,overlap,vtt-settings. Original synthetic fixtures maintained with the tool.