Explore Polyglot

Download now

For Apple Silicon · macOS 14.4+

Local AI. Your Mac.

The Polyglot journal

Combine SRT files for videos joined end to end

Separate video parts have separate subtitle clocks. Map each part to the final edit before combining cues, and keep silence and transition audio in the review.

Two inflated black foil filmstrips with raised caption bars, blue and violet reflections, and a narrow gap between their ends.
AI-generated editorial illustration · Two parts, one final subtitle clock

Give every part a place on the final clock

To combine SRT files for videos joined end to end, first find where each part begins in the finished video. Add that start time to both timestamps of every cue in that part’s local subtitle file. Then assemble the adjusted cue blocks, give them unique sequential numbers, and review the joins against the final export. Pasting files together without changing their clocks sends later subtitles back to the beginning.

This guide assumes that each input subtitle file already matches its own video part, starts on that part’s zero-based clock, and uses the same language and track purpose. Use media and captions you are authorized to edit and distribute. Keep the originals untouched. Combining two languages for the same scene is a different task; so is choosing between two competing transcripts of the same recording.

Finish the video assembly before merging the text

Write down the exact video revision and the final start position of each part. Include opening slates, chapter cards and deliberate gaps. A subtitle file only tells you when its text appears; its final cue does not tell you when the video ends. Silent footage after the last caption still occupies time in the finished video.

For unchanged parts joined with simple cuts, the next start can be calculated from the previous start, the full retained video duration and any inserted gap. Confirm those positions in the exported video. A crossfade, trimmed introduction, reordered excerpt or speed change invalidates a simple sum of the original file durations. Prepare matching subtitles for each retained excerpt first, then map its new local zero to the assembly.

FFmpeg’s concat documentation illustrates why duration matters: it adjusts later media timestamps using earlier file durations, and warns that incorrect durations can cause artifacts. That is a description of its media demuxer, not a guarantee that concatenating standalone SRT files will preserve the timing of your video. Use the actual final edit as your reference.

Work through a silent ending and a chapter card

Imagine an authorized two-part craft demonstration. Part A is twelve seconds long, but its last subtitle ends at nine seconds. A two-second silent chapter card follows. Part B lasts eight seconds and begins at fourteen seconds in the final video. Its first spoken line appears one second into B. These times and lines are invented teaching material, not a recording or a Polyglot processing test.

The first B cue therefore begins at fifteen seconds: fourteen plus one. Using A’s last cue end as the joining point would place it at ten seconds, five seconds early. Those missing five seconds are the three-second silent tail plus the two-second card. A cue-free interval can be correct; never remove it merely because there is no subtitle text.

Final video: 22 seconds
A:      00:00 to 00:12
Card:   00:12 to 00:14
B:      00:14 to 00:22

A local cues: 01–03, 07–09
A offset: +00:00:00,000
B local cues: 01–03, 05–07
B offset: +00:00:14,000

Shift each part once, then assemble complete blocks

For each part, calculate final start = local start + part start in the final video, and final end = local end + the same part start. Work in elapsed hours, minutes, seconds and milliseconds. If your edit list uses frame timecode, convert using the actual timebase before doing this arithmetic. Shifting only one endpoint changes the cue’s duration instead of moving it intact.

Use a subtitle editor that lets you select the intended cues and move both endpoints, or make the changes in a copy of a very short plain-text SRT. Aegisub documents separate controls for affected rows and for shifting both start and end times. Confirm the selection before applying any shift. Importing an already shifted file and applying the offset again would move it twice.

After adjustment, append complete cue blocks in final playback order. Keep each cue’s text attached to its timestamp pair and retain blank lines between blocks. The Library of Congress describes these numbered, timed blocks as the basic SRT structure. Renumber the assembled file from one; two inputs can both contain a cue numbered one even though their text belongs at different times.

Keep a small mapping outside the delivered SRT: A/1 becomes final/1, A/2 becomes final/2, B/1 becomes final/3 and B/2 becomes final/4. Here, two plus two means four cues. If you deliberately add, split or remove a cue, record the reason and revise that expected total. Identical wording in different parts is not automatically a duplicate.

Check the merged result against the worked example

The complete illustrative SRT below preserves the two A cues and places the B cues at fifteen to seventeen seconds and nineteen to twenty-one seconds. It contains no caption for the deliberately silent chapter card. Save plain text as UTF-8 with an .srt extension, using a new filename tied to the assembled video revision.

Reopen the exported file and inspect its first and last cue, the first cue from every later part, the cue count and the original-to-final mapping. Check that start times are ordered and every end is after its start. Do not sort or delete text to conceal a bad offset. An apparent collision can reveal a wrong edit boundary or an unreviewed transition.

1
00:00:01,000 --> 00:00:03,000
Lay the paper flat.

2
00:00:07,000 --> 00:00:09,000
Keep the fold facing up.

3
00:00:15,000 --> 00:00:17,000
Open the folded edge.

4
00:00:19,000 --> 00:00:21,000
Press the corners down.

Listen across every join, not just the opening

Play from before the final cue of one part until after the first cue of the next. The last subtitle must disappear at the intended time, the gap must match the actual audio, and the next line must appear with the correct speech. Repeat this at every join and near the end of the video. Turn off any temporary player subtitle delay so it cannot mask a file error.

An inserted title card may be silent, but a transition can also contain a spoken introduction, music or meaningful sound. W3C’s caption guidance includes the speech and non-speech audio needed to understand the content. Review newly added audio separately: merging existing files cannot supply captions for material that did not exist in either input.

If dialogue overlaps during a transition, or a cut removes half a sentence, stop and review that section against the final soundtrack. Do not force the cues into adjacent non-overlapping boxes just to make the file look tidy. The right repair may require changing wording, timing or the edit itself. A numerical count cannot establish faithful captions.

Assemble each language as its own track

Use the same final-video part positions for all languages, while respecting each language file’s existing cue times and wording. A translation may have different cue boundaries. Its last cue is still not a substitute for the video’s duration, and its cue count need not equal another independently edited track’s count.

Keep English A with English B and Dutch A with Dutch B, unless the delivery specification explicitly calls for a mixed-language track. If a translation for one part is missing, mark the track incomplete. Filling that gap with another language without explanation can make an apparently complete export unusable. A reviewer who understands the target language should check continuity across the joins.

Review the prepared file in Polyglot and in its destination

Polyglot can import a prepared SRT, preserve its cue structure for review, edit text and timing, and export a separate subtitle file. The assembly procedure above happens before that review; this guide does not promise an automatic SRT merger or a video-stitching command. Polyglot’s uniform timing adjustment applies to all project languages together, so it should not be used to apply a different offset to each part of an already combined project.

Deliver the final video revision, one matching SRT per requested language, and a brief note listing each part’s start position and any changed transition cues. Keep the input files and mapping with your working archive. Test the delivered file with the actual final video in the intended player, including language selection, accented characters and every join. If only local playback has been checked, leave destination acceptance pending.

Sources & further reading

Library of Congress: SRT block structure and text encoding

Aegisub: shifting selected rows and both endpoints

FFmpeg: concat timestamps and file-duration warnings

W3C WAI: synchronized captions and meaningful audio

Published by Polyglot using an AI-assisted editorial workflow. How we prepare and update our guides.

Keep exploring.

Try it on your Mac.

Find the right tools for your words and video, with processing on your Mac.

Download now

Apple Silicon · macOS 14.4 or later