# Subtitle Frame-Rate Retime Converter

Rescale subtitle timings for frame-rate changes: PAL speedup presets (23.976↔25), custom fps pairs, a direct linear factor, or two-point linear calibration t′ = a·t + b.

> Canonical page: https://elysiatools.com/en/tools/subtitle-framerate-retime-converter

- **Category:** Media

- **Keywords:** subtitle frame rate, srt fps converter, pal speedup, 23.976 to 25, subtitle resync, linear retiming, two point sync, subtitle drift, time stretch subtitles

## Overview

When a video changes frame rate the subtitle clock changes with it. A film at 23.976 fps broadcast in PAL at 25 fps plays 4.2708% faster, so every subtitle must shrink by the factor 23.976/25 — shifting alone can never fix that, because the error grows over time (about 2.6 seconds per hour). This converter multiplies every cue start and end by the exact ratio: presets for the common PAL speedup / slowdown pairs (23.976↔25, 24↔25, 24↔23.976), arbitrary source/target frame-rate pairs, a direct duration factor, or two-point calibration — you give one cue's current and correct time, a second cue's current and correct time, and the tool solves the line t′ = a·t + b that maps both exactly, fixing drift AND offset in one pass (a mismatched frame rate is exactly a linear error). The report shows the factor applied, the first cue's shift and the accumulated drift at the last cue so you can verify the direction. Millisecond rounding only; the input is never re-formatted beyond the timing lines.

## Inputs

- **Subtitle text** (textarea): Paste SRT or WebVTT text here
- **Retime mode** (select)
- **Frame-rate preset** (select)
- **Source frame rate (fps)** (number): e.g. 25
- **Target frame rate (fps)** (number): e.g. 23.976
- **Factor (target / source duration)** (number): e.g. 0.9590
- **Point 1 — now (ms)** (number): e.g. 10000
- **Point 1 — should be (ms)** (number): e.g. 10400
- **Point 2 — now (ms)** (number): e.g. 60000
- **Point 2 — should be (ms)** (number): e.g. 61600
- **Output format** (select)

## When to use

- Subtitles drift progressively out of sync after a video is converted between 23.976 fps, 24 fps, or 25 fps standards.
- You need to apply an exact linear duration factor or custom frame-rate conversion across an entire subtitle track.
- You have two reference points (such as the first and last spoken line) and need to solve time offset and speed drift simultaneously.

## How it works

- Paste your raw SRT or WebVTT subtitle text into the input area and select your target output format.
- Choose a retiming mode: standard FPS preset, custom source/target frame rates, direct linear factor, or two-point millisecond calibration.
- Generate the retimed subtitle output with recalculated timestamps and review the calculated linear factor, initial offset, and total accumulated drift.

## Use cases

- Adapting film subtitles timed at 23.976 fps for 25 fps European PAL television broadcasts or streaming platforms.
- Slowing down 25 fps PAL subtitles to sync with a 23.976 fps or 24 fps theatrical/Blu-ray video release.
- Aligning mismatched community subtitles against a newly re-encoded video release using two known spoken dialogue cues.

## Frequently asked questions

### Why do subtitles slowly lose sync over the course of a video?

Frame-rate changes (such as 23.976 fps film sped up to 25 fps PAL) change video playback speed, causing timestamps to drift linearly by roughly 2.6 seconds per hour.

### What is the difference between a time shift and linear retiming?

A time shift moves all cues by a fixed millisecond offset, whereas linear retiming stretches or compresses the entire timeline proportionally to match video speed.

### How does two-point calibration calculate timing?

It takes the current and target timestamps of two separate cues and solves the linear equation t′ = a·t + b to fix both constant offset and speed drift in one pass.

### Does this tool modify subtitle text or styling tags?

No. The converter only recalculates the timestamp lines with millisecond rounding; all cue indices, text content, and formatting remain untouched.

### What file formats can be processed?

The converter accepts standard SRT (SubRip) and WebVTT text inputs and can output to either SRT or WebVTT format.

## Related tools

- [Bilingual Subtitle Merger](https://elysiatools.com/en/tools/bilingual-subtitle-merger): Merge two single-language subtitle files (SRT or WebVTT) into one bilingual track — primary language on top, secondary below — aligning cues by time overlap or cue index.
- [LRC SRT Lyrics Converter](https://elysiatools.com/en/tools/lrc-srt-converter): Convert synced LRC lyrics into SRT subtitles (each line ends where the next begins, editable last-cue and maximum durations, \[offset:\] and enhanced word-timing tags handled) and turn SRT subtitles back into LRC lyrics — both directions lossless on text.
- [SDH Annotation Cleaner](https://elysiatools.com/en/tools/srt-sdh-annotation-cleaner): Strip hearing-impaired (SDH) noise from subtitles: bracketed sound effects like \[APPLAUSE\] and (engine rumbles), speaker labels like JOHN: or NARRATOR -, music-note lines ♪ ♫ — then drop the empty cues left behind.
- [Subtitle Timing Transplant](https://elysiatools.com/en/tools/subtitle-timing-transplant): Borrow the timings from a correctly synced subtitle and graft them onto a translation: cue-by-cue in strict order when counts match, or monotonic nearest-time assignment when they drift apart.
- [WebVTT · TTML · SBV · SRT Subtitle Converter](https://elysiatools.com/en/tools/webvtt-ttml-sbv-subtitle-time-axis-and-cue-style-converter): Convert subtitles between WebVTT, TTML (with SMPTE frame timing and styles), YouTube SBV and SRT — frame-precision time axes (23.976/24/25/29.97 drop-frame/30/50/59.94 DF/60), TTML tts styles bridged to WebVTT ::cue CSS, cue-id uniqueness, and IMSC 1.0.1 compatibility checks.
- [Adaptive 12-Point Hidden Watermark](https://elysiatools.com/en/tools/adaptive-12-point-hidden-watermark): Add a subtle text watermark to one image or every supported image in a ZIP, at all, random, or chosen perimeter positions with automatic dark/light local contrast.
- [Audio Caption Timing Shifter](https://elysiatools.com/en/tools/audio-caption-timing-shifter): Shift SRT or WebVTT captions to a likely speech onset or by a manual offset.
- [Audio Read-Along Cue Generator](https://elysiatools.com/en/tools/audio-read-along-cue-generator): Generate sentence or word-level timestamp cues from a narration audio and its script, for karaoke-style reading and language learning.

## Samples

- [ASS Subtitle Samples](https://elysiatools.com/en/samples/ass-samples): Sample ASS subtitle files from simple to complex for style-aware subtitle parsing, translation, conversion, and localization QA
- [SRT Subtitle Samples](https://elysiatools.com/en/samples/srt-samples): Sample SRT subtitle files from simple to complex for testing import, translation, conversion, and timing-preservation workflows
- [Copyright-Free MP3 Audio Samples](https://elysiatools.com/en/samples/mp3-samples): Collection of royalty-free audio samples for testing and development purposes including nature sounds, meditation music, and ambient audio
- [Web Image Processing Python Samples](https://elysiatools.com/en/samples/web-image-processing-python): Web Python image processing examples using PIL/Pillow including reading, saving, resizing, and format conversion

## Related content

- [Repair Translated Subtitle Sync and Deliver a Bilingual Track](https://elysiatools.com/en/hubs/translated-subtitle-sync-repair-and-bilingual-delivery): Diagnose fixed offset, progressive drift or edit differences in existing translated subtitles, confirm cue correspondence, merge a bilingual track and verify readable selectable playback.
