The timing problem (and how we solve it)
A plain transcript has no timing information. To turn it into a valid .srt, every cue needs a start and end timestamp — and the converter has to invent them from nothing.
We use a characters-per-second reading speed heuristic. Each cue’s on-screen duration is set to length / 15 seconds (with a 1-second minimum), and consecutive cues are stacked with a 100ms gap between them. 15 cps is the same default Netflix, the BBC, and Aegisub use for accessibility captions — it’s the rate a competent reader can comfortably keep up with.
The resulting timing is a plausible approximation, not a match to any specific audio. If you’re building subtitles for a video that actually exists, plan to open the output in an SRT editor and adjust each cue to land on the real speech.
Side-by-side example
Input on the left, generated .srt on the right:
Hello and welcome. My guest today is Alice Chen. She runs a robotics lab.
1 00:00:00,000 --> 00:00:01,133 Hello and welcome. 2 00:00:01,233 --> 00:00:03,067 My guest today is Alice Chen. 3 00:00:03,167 --> 00:00:04,567 She runs a robotics lab.
Each non-blank line in the input becomes one SRT cue. The first cue starts at 00:00:00,000; the rest stack sequentially. Cue durations scale with text length (the second line is the longest, so it gets the longest on-screen time).
How to convert plain text to SRT
- Prepare your
.txtfile: one cue per line. Blank lines are ignored. If your text is a wall of prose, break it into lines first (use Find & Replace to swap.with.\nin your text editor as a starting point). - Drop the file onto the drop zone above (or click to open the file picker).
- The converter generates a sequenced
.srtwith estimated timing and offers it as a download. Open it in your video editor or a dedicated SRT editor to verify and adjust the timing.
When TXT to SRT is the right tool
Use this converter when:
- You have a transcript from a service that doesn’t output timed subtitle files (a manual transcriber, a court reporter, an LLM-generated transcript).
- You need an
.srtstructure quickly and the audio either doesn’t exist yet or isn’t the source of truth. - You’re bootstrapping subtitles you’ll then refine in an SRT editor — the heuristic timing saves you from typing out 200+ timestamps by hand.
When this is not the right tool:
- You have the audio and want accurate timing — use a transcription tool that listens (Whisper, Deepgram, or Subflow inside After Effects) instead. They produce timing that actually matches the audio.
- You need broadcast-grade timing (frame-snapped, aspect-ratio-aware) — heuristic timing won’t pass QC. Use a proper subtitle workflow for compliance work.