SRT vs LRC: which format for your lyric video
Both formats store when words happen. They store it differently and are supported in different places, so the right one depends on what you are opening the file in.
The short answer
Video editor: SRT. Music player or karaoke app: LRC. Animating the text yourself: probably neither, and JSON saves a conversion step. The table below has the detail.
What SRT actually is
SRT is a subtitle format. It is a numbered list of cues, and every cue carries a start time, an end time and some text:
1 00:00:00,668 --> 00:00:03,838 When I returned I could barely sleep at night.
The important detail is that every cue has an explicit end time. A subtitle appears, then it disappears, and the format says exactly when both happen. That is why editors like it: the cue maps directly onto a clip on a timeline.
Two things catch people out. The decimal separator is a comma, not a full stop, and a surprising number of hand written parsers get that wrong. And SRT has no concept of a word: for word by word highlighting you produce either one cue per word, or one cue per word that repeats the whole line with the current word marked up. Both are valid SRT and look very different on a timeline.
What LRC actually is
LRC came from music players, not video. It is a plain text file where each line is stamped with the time it starts:
[00:00.67]When I returned I could barely sleep at night.
LRC has no end time. A line runs until the next line begins, which is fine for lyrics scrolling beside a track and no use if a line has to disappear during a long pause. Some players treat a blank stamped line as a way to clear the display; support is inconsistent.
There is also an extended form, usually called Enhanced LRC, which adds word level stamps inside the line:
[00:00.67]<00:00.67>When<00:00.81> <00:00.88>I<00:01.05> <00:01.09>returned<00:01.96> <00:02.06>I<00:02.17> <00:02.24>could<00:02.34> <00:02.41>barely<00:02.93> <00:02.97>sleep<00:03.25> <00:03.32>at<00:03.42> <00:03.49>night.<00:03.84>
Karaoke apps use it for the moving highlight. A word tag runs until the next tag appears, so the only way to end a word early is to open another stamp, which is what the extra stamps after When and after the last word do. Without them a word stays lit until the next one starts, which is very visible across a gap in the vocal. We write them wherever there is a real gap and at the end of every line. Support is patchy: some players ignore word tags or show them as text, so test the file in your target app. For karaoke video, ASS is often a better fit because it carries an explicit duration for every word.
Compare three formats using the same demo excerpt
The same 48.5-second Isla excerpt from the LyriSync demo, with its word timings, in three formats. Listen, then try a file in your target app.
- Download Line-level SRT (Subtitle cues with explicit start and end times.)
- Download Standard LRC (One start timestamp for each lyric line.)
- Download Enhanced LRC (Word timestamps inside each lyric line.)
Picking between them
| If you are | Use | Why |
|---|---|---|
| Editing in Premiere, Resolve, Final Cut or CapCut, or uploading captions to YouTube | SRT | Imports as a caption track with real in and out points, and is the format the YouTube uploader expects |
| Building a karaoke or lyrics app | LRC | Line stamps are what the format was designed for |
| Driving a moving word highlight | Enhanced LRC | Word stamps inside the line, if your player supports them |
| Animating text yourself | JSON | No parsing, no format limits, every word already separated |
The conversion that loses information
You can convert SRT to LRC easily, because you are throwing information away: keep the start time, drop the end. Going the other direction means inventing end times that were never in the file, and whatever you invent will be wrong wherever the song has a gap. If you need both, export both from the source rather than converting one into the other.
Ready to make the file? Use the SRT lyrics generator or LRC generator, and read word level vs line level timing to decide which one to ask for.
Align any whole song up to 10 minutes and open it in the editor: play it, check every word and fix timings. The private preview is available for 5 days. You pay per song, when you export.
Next guide: What are synced lyrics, and how do you make them?