How to Merge Subtitle Files
“Merging subtitles” means one of three things. Two halves of a movie (CD1 + CD2)? Shift the second file by the length of part 1 and join them. Two languages of the same video? Stack them into one bilingual file. Want the subtitles inside the video? Add them as a subtitle track, or burn them into the picture.
Pasting one SRT under another in a text editor almost never works: the second file's timecodes start again at zero and the cue numbers repeat. Here is how to do each kind of merge properly, with free tools.
Which kind of merge do you need?
| You have | You want | What to do | Free tool |
|---|---|---|---|
| Subtitles for part 1 and part 2 | One file for the full movie | Join with an offset | Merge subtitles |
| The same video in two languages | Both languages on screen | Stack into bilingual cues | Bilingual subtitle maker |
| One language only | Bilingual subtitles | Translate, export bilingual | SubtitleFlow |
| A video and an SRT | Subtitles inside the video | Mux or burn in | MKVToolNix, ffmpeg |
Translation method comparison table
1. Join two parts of a movie (CD1 + CD2)
Older releases split a film into two video files, each with its own subtitle file whose timecodes start at 00:00:00. To play the joined video, the second file has to start where the first one ends.
Find the length of part 1
Open the first video file in VLC (or any player) and note its total running time, for example 58:41. That is your offset.
Add both files and the offset
In the merge subtitles tool, add the first file, then the second, and enter the offset for the second file.
Merge and check the seam
Download the merged file, jump to just after the join in your player, and check a few lines. If everything after the join is early or late by the same amount, adjust it with the shift subtitles tool.
Going the other way — one subtitle file for a movie split into two videos — use split subtitles: it cuts at a timestamp and restarts the second part's timecodes at zero.
2. Make bilingual (dual-language) subtitles
Bilingual subtitles show two languages in each cue, usually the original on top and the translation underneath — popular with language learners and families who watch together.
If you already have both languages
Use the bilingual subtitle maker: add the top language first, then the second. When both files have the same number of cues, lines are paired one to one; otherwise they are paired by overlapping time. Two subtitle files made for different releases rarely pair cleanly — they are cut at different points — so check a few minutes in the middle, not just the start.
If you only have one language
Skip the merge. Translate the file with SubtitleFlow and choose bilingual export: every cue comes out with the original and the translation together, on exactly the same timing, because the translation is made cue by cue from the same file.
Tip: a bilingual cue can be four lines tall. If it covers too much of the picture, keep lines short or use a smaller font in your player's subtitle settings.
3. Put the subtitles into the video file
Most players load an SRT that sits next to the video with the same name (movie.mp4 + movie.srt). If you need a single file — for a phone, a TV, or an upload — there are two options.
Soft subtitles: add a subtitle track (fast, can be turned off)
MKVToolNix (free, with a GUI) adds an SRT as a track in seconds without re-encoding. With ffmpeg:
ffmpeg -i movie.mkv -i subs.srt -map 0 -map 1 -c copy movie-subbed.mkv ffmpeg -i movie.mp4 -i subs.srt -map 0 -map 1 -c copy -c:s mov_text movie-subbed.mp4
Hard subtitles: burn the text into the picture (always visible)
Needed for platforms that ignore subtitle tracks, such as some social video apps. The video is re-encoded, so it takes a while:
ffmpeg -i movie.mp4 -vf subtitles=subs.srt -c:a copy movie-burned.mp4
HandBrake does the same with a GUI (Subtitles tab → Import SRT → Burn In).
Mistakes that break sync
- Forgetting the offset: part 2's lines all appear during part 1.
- Mixing frame rates: files made for 25 fps and 23.976 fps drift apart over a film. Convert one with the subtitle FPS converter before merging.
- Pairing files from different releases: a bilingual file made from two unrelated SRTs pairs the wrong lines. Translate one file instead so both languages share timing.
- Editing in a word processor: it can change line endings or encoding and break the file. Use a plain-text editor or a subtitle tool.
Prefer a desktop app? Subtitle Edit (free) can also join files (Tools → Join subtitles) and shift timing.
Frequently asked questions
How do I combine two SRT files into one?
If they are two parts of the same video (CD1 and CD2), join them end to end: the second file's timecodes usually restart at 00:00:00, so shift them by the length of part 1 before joining. A merge tool can do both steps at once. If they are two languages of the same video, stack them instead to make bilingual subtitles.
How do I know the offset for the second subtitle file?
Use the exact running time of the first video part — open it in VLC or another player and read the total duration, e.g. 58:41. Enter that as the offset for the second file. If the joined subtitles drift by a second or two, check whether the first part has a short intro or black frames at the end.
How do I make dual-language subtitles from two SRT files?
Use a bilingual subtitle maker: add the language you want on top, then the second language. Each cue gets both lines. It works best when both files have the same number of cues — for example when one is a translation of the other with timing kept intact.
How do I merge subtitles with a movie permanently?
Either add the SRT as a selectable subtitle track (soft subtitles) with MKVToolNix or ffmpeg, which takes seconds and keeps the video quality, or burn the text into the picture (hard subtitles) with ffmpeg or HandBrake, which re-encodes the video and can't be turned off.
Need the second language?
Translate an SRT or VTT and export bilingual subtitles — both languages on the exact same timing.
No account needed to start.