Choose one SRT file
Select or drop the subtitle file. UTF-8 and BOM-marked Unicode are detected automatically, with explicit fallback choices for supported legacy encodings.
Subtitle Tools
Convert SRT cue timing between common film, television, and video frame rates with exact rational scaling. Preview how the timeline changes before downloading a verified UTF-8 subtitle file.
Private browser processing
Choose the FPS the subtitles were timed for and the FPS they need to match. Your file stays on this device.
is not valid UTF-8. Select its original encoding to decode it locally.
Source ready
Only safe SRT structure is normalized. Cue text and order remain unchanged.
Live timing summary
Calculated from the original parsed SRT. Each timestamp is scaled once and rounded to the nearest whole millisecond, with exact halves rounded upward.
The first three, last two, and latest-timeline cue are shown where distinct.
Conversion complete
The file was regenerated from the original selected file, reparsed, and checked for exact rational timing, cue order, and text preservation.
Local processing
The SRT is decoded, validated, retimed, serialized, and verified in a route-specific browser worker. BrowserPine does not upload or persist subtitle content, timing, filenames, or frame-rate choices.
Read how BrowserPine handles filesThree simple steps
Select or drop the subtitle file. UTF-8 and BOM-marked Unicode are detected automatically, with explicit fallback choices for supported legacy encodings.
Select the frame rate the subtitles were timed for and the rate of the video they need to match. No rate is assumed by default.
Review the exact factor, total timing change, cue samples, overlaps, and any rounding corrections, then download the verified converted SRT.
Frame-rate conversion changes every timestamp proportionally. The converter uses new time = old time × source FPS ÷ target FPS, so a 25 FPS subtitle converted to 23.976 FPS becomes about 4.27% longer. This is different from adding one fixed delay.
NTSC rates use their exact rational values: 23.976 is 24000/1001, 29.97 is 30000/1001, and 59.94 is 60000/1001. Timestamp calculations use integer rational arithmetic, not floating-point approximations, and each final SRT timestamp is rounded once to the nearest millisecond with exact halves rounded upward.
Use FPS Converter when subtitles begin close to sync but become progressively early or late because the subtitle and video frame rates differ. Use Subtitle Time Shifter when the same fixed early-or-late offset applies from beginning to end. Use Subtitle Editor when individual cues need separate changes.
Cue order, multiline text, Unicode characters, styling text, speaker labels, and positive cue durations are preserved. Because SRT stores whole milliseconds, an extremely short positive duration that collapses during rounding is kept at 1 ms and reported. Rounding can also change an exact overlap boundary, which is shown in the analysis instead of hidden.
Source and target choices include 23.976, 24, 25, 29.97, 30, 50, 59.94, and 60 FPS. Choosing the same rate produces a neutral no-op state and no download, because there is no timing change to make.
The downloaded SRT uses sequential numbering, standard HH:MM:SS,mmm timestamps, CRLF line endings, one blank line between cues, UTF-8 without a byte-order mark, and one final newline. Every conversion starts from the original selected subtitle, so changing or swapping rates never stacks an earlier result.
If the offset stays constant from start to finish, use Subtitle Time Shifter. If synchronization begins correctly but gets progressively worse, use Subtitle FPS Converter. If only individual cues are wrong, use Subtitle Editor for manual cue-by-cue timing and text changes.
The converter does not need, inspect, or upload a video. It only uses the source and target rates you explicitly choose, runs on the SRT locally in your browser, and requires no account.
Common questions
Every cue start and end time is multiplied by source FPS divided by target FPS. The converter uses exact rational integer arithmetic and rounds the final timestamps once to the nearest millisecond.
23.976 FPS uses the exact NTSC rational value 24000/1001. Likewise, 29.97 uses 30000/1001 and 59.94 uses 60000/1001.
Use FPS Converter when the sync error grows over time. Use Time Shifter when every cue needs the same fixed delay or advance.
No conversion is performed and no file is created. The page reports that the timing already matches the selected rate.
Start and end timestamps are rounded independently to whole milliseconds. If a positive duration would collapse to zero, the end is set to exactly 1 ms after the start and that correction is reported.
Yes. The output is reparsed and checked against the original parsed SRT for cue count, order, exact expected timestamps, line structure, and text.
The converter supports 23.976, 24, 25, 29.97, 30, 50, 59.94, and 60 FPS as both source and target rates.
No. File decoding, parsing, timing analysis, conversion, serialization, and output verification occur locally in your browser worker.
Keep working
Move every SRT cue forward or backward by one precise offset.
View tool
Review and edit SRT cue text, timing, order, and file sections.
View tool
Normalize SRT structure and preview optional formatting, SDH, speaker-label, or duplicate cleanup.
View tool