LRC is song lyrics with a start time per line, and no end time. SRT is the subtitle format everything reads, and the simplest one. ffmpeg sits between the two, and this page says exactly what happens to an LRC file on the way to becoming an SRT one.
What runs when an LRC file becomes SRT
ffmpeg held to a single thread, on a machine we rent and watch. Your LRC file is uploaded once, ffmpeg runs once, the SRT comes back, and neither file is kept. LRC to SRT is one of the 3649 pairs that engine was probed on with a real file, which is why it has a page here and why the pairs the probe could not prove do not.
What survives from the LRC into the SRT
Every line, and the moment it appears. The engine reads your LRC and writes the same cues into the SRT: the text is not re-wrapped, the order is not touched, and the start of each cue lands where it was. It counts the cues on the way out and refuses the result if the count moved.
Accents and every other character. The SRT is written as UTF-8, which is the one thing that stops subtitles arriving as question marks on a machine that is not yours.
A file whose size you can predict. We put the same 200-cue file through all six formats and weighed what came out: 88 bytes per cue in SRT, 38 % larger than the LRC, because that is a number, two timestamps, the text and a blank line, once per cue. The extra bytes buy something, and the next section says what.
Every line, in order, with the instant it starts. That is everything an LRC file contains.
What LRC to SRT costs you
Nothing, and something is added instead, which is the unusual part. An LRC has no end times, so the engine has to invent them: each line runs until the next one starts. That is a reasonable guess and it is still a guess.
The last line has no next line, and this is where it used to go wrong. ffmpeg wrote its no-end marker there, up to 1193 hours, so the final subtitle stayed on screen for forty-nine days. The engine now caps it at five seconds and says so in a response header. On a two hundred line file, one hundred and ninety-nine cues were right and the last was absurd, which is exactly the kind of fault you only meet in production.
Where LRC and SRT files come from
LRC. Made for karaoke and for music players that highlight the current line. Each line carries the instant it begins and nothing else: there is no end time in the format at all, which is the single fact that decides what converting to and from it can mean.
SRT. Written for SubRip, a Windows program that pulled subtitles off DVDs, and it won by being trivial: a number, two timestamps, the lines, a blank line. No styling, no specification, no committee. Every player on earth reads it.
If a model is going to read the SRT
A subtitle file is a transcript with the clock attached, which is what makes it worth feeding to a model at all: every line comes with the moment it was said. LRC in, SRT out, and the START of every line lands where it was, so a question like "what was said at eleven minutes" still has an answer afterwards. The ends are another matter, since an LRC carries none: read the section below before you trust them.
LRC to SRT, measured rather than promised
Running LRC to SRT against the real engine with a real file, ffmpeg wrote 137 bytes of SRT in 0.1 seconds, machine otherwise idle. That is one LRC file on one day and not an average, which is why the number is given together with the file that produced it.
The LRC to SRT verdict was reached by reading the text, the timings and the length of every cue, meaning the output was read back and recognised. Which check was used matters, because they do not all prove the same thing, and a status code of 200 proves nothing whatsoever about whether the SRT file has anything inside it.
Other ways into SRT, and what they measured
Among the published routes into SRT, LRC is the first largest output of the 3 measured. The witness files differ, so this ranks the probe run and not your document.
VTT to SRT: 137 bytes in 0.1 seconds.
ASS to SRT: 137 bytes in under a tenth of a second.
What we will not pretend about LRC to SRT
An LRC file over 5 MB is refused before the upload finishes rather than after it, so you do not wait for a rejection.
An LRC to SRT run that passes 30 seconds is killed, and the ffmpeg process is killed with it. A run left behind would sit on one of the machine's two cores until somebody noticed.
The end times in your SRT were not in the LRC file and could not have been. They are the engine's guess, and the last one is a value we chose because ffmpeg's own was out of range. A response header says how many were capped. Saying it here rather than letting you find it in a player is the whole point of this section.
This family does not touch the timing itself. Shifting subtitles by two seconds, stretching them for a different frame rate or merging two files are real needs and none of them happens here: this converts a container into another container.
One LRC file at a time, chosen in the browser. There is nothing else to set up and nothing else on offer.
LRC to SRT: what people ask
What actually converts my LRC file to SRT?
ffmpeg does it, held to a single thread, on a machine we rent and watch. Not a browser trick and not somebody else service: the LRC file is uploaded once, ffmpeg runs once, the SRT comes back, and neither file is kept afterwards.
How long does LRC to SRT take?
On the file the probe used, ffmpeg took 0.1 seconds and wrote 137 bytes of SRT. That is one real measurement on one real LRC file, not an average and not a promise about yours: a larger LRC takes longer, and past 30 seconds the run is stopped.
What do I lose going from LRC to SRT?
The one to know about first: Nothing, and something is added instead, which is the unusual part. An LRC has no end times, so the engine has to invent them: each line runs until the next one starts. That is a reasonable guess and it is still a guess.
Will the timings still match my video?
Yes. The start of every cue is carried across unchanged, not recomputed. The ENDS are a different matter: your LRC file has none, so the engine works them out from the next line. Read the section above before you use the result.
How long does the last line stay on screen?
Five seconds, and that number is ours rather than yours. Your LRC file has no end times at all, so the engine works each one out from the next line; the last line has no next line, and ffmpeg's own answer there was an out-of-range value that left the subtitle up for forty-nine days. We cap it and say so in a response header.
Is LRC to SRT free?
There is a free allowance every month, and one LRC to SRT conversion costs half a credit against it. When the allowance runs out the tool says so and stops, rather than quietly handing you a worse SRT.