To reassemble chaptered video files, you need three things in order: the correct segment group, a confirmation that the segments share identical encoding parameters, and a join that rewrites track tables instead of copying bytes. Skip the first step and you will merge two different flights. Skip the second and you will produce a file that plays for four minutes and then freezes. Skip the third and the output will open in one player and fail in the next.
The operational detail that separates a clean result from a frustrating afternoon is knowing how each brand names and orders its segments, because the filename encodes the sequence and nothing inside the files does.
Step One: Group the Segments Before Touching Anything
Every continuous recording is a single group. Cameras write multiple groups to the same card on the same day, and confusing two of them is the most common cause of a merge that “worked” but produced nonsense.
| Brand | Segment naming | How the sequence is encoded | Companion files |
|---|---|---|---|
| GoPro | GH01xxxx.MP4, GH02xxxx.MP4 | Chapter number after GH, shared clip number | GL01xxxx.LRV proxies, THM thumbnails |
| GoPro MAX | GS01xxxx.360, GS02xxxx.360 | Same pattern with a 360 extension | LRV proxies |
| DJI drones | DJI_0001.MP4, DJI_0002.MP4 | Sequential four-digit file numbers | Matching .SRT telemetry subtitles |
| DJI Osmo | DJI_0001.MP4 and onwards | Sequential numbering | .SRT where telemetry is enabled |
| Insta360 | VID_20230923_141200_00_001.insv | Timestamp plus a sequence suffix | Two-track per segment, one per lens |
Read the middle characters, not the file size. Two separate GoPro recordings both begin with GH01, so a group is defined by the clip number shared across chapters, not by the chapter prefix. DJI numbering restarts after a card format, so a card that was formatted mid-trip will contain two DJI_0001.MP4 files in different directories, and merging them produces a jump cut between two unrelated flights.
Sort by filename ascending within the group, and keep the proxies and thumbnails in a separate folder so they do not enter the merge. A proxy file that matches a chapter’s number is a low-resolution review copy, not part of the sequence.
Step Two: Confirm That Lossless Joining Is Possible
The join can be lossless only if every segment carries the same codec, resolution, frame rate, audio layout, and pixel format. That is normally true because the camera wrote them in one continuous process, but it is worth thirty seconds of checking, because there are real cases where it is not.
| Condition | Lossless join | What to do |
|---|---|---|
| Identical codec, resolution, frame rate, audio | Yes | Join with a concat demuxer, no decode |
| Frame rate changed mid-recording | No | Re-encode, or accept a separate second clip |
| One segment repaired after a failure | Usually yes | Verify the repaired segment first, then join |
| Segments from two different cameras | No | Edit them as separate clips |
| 360 dual-lens segments | Not a concat job | Stitch with the vendor tool, order preserved |
Frame rate changes are the case people do not expect. A camera under thermal load can reduce its recording frame rate mid-take in some modes, or switch to a lower-bitrate profile. When that happens, the segments either side of the change no longer share parameters, and a concat demuxer either refuses them or produces a file whose timestamps drift after the splice. Checking each segment’s frame rate and bitrate before committing to a lossless join saves an hour of confusion later.
Verification of the source segments comes first in any case. A segment that was recovered after a failure, or that came off a card with errors, should be validated on its own before it enters a sequence, following the checks in our guide to verifying recovered video files. A file that plays but has a damaged internal timestamp will corrupt the merged output.
The distinction between reassembly and repair is worth keeping straight. This page covers the operational flow for device-generated segments; the underlying architecture of chaptering, including which formats can survive a missing index, is covered in our article on repairing and merging chaptered video. Where a segment will not play at all, that is the repair problem, and our page on chapter files that will not play covers reconstruction.
Step Three: Perform the Join So It Actually Holds
A lossless join is a container operation with three requirements: the segments in the right order, a demuxer that rewrites the track tables, and an output that does not inherit a stale timebase from the first segment.
Two practical traps appear at this stage. First, players tolerate a byte-level concatenation more often than you would expect, so a rough copy-and-merge can appear to work during testing and fail during a later edit or export, when software has to seek to a timestamp that no longer exists. Second, negative or shifted timestamps in the output cause certain players to show a black frame at the start or to report a duration that is too short. Generating fresh timestamps and normalizing the starting point are the standard remedies, and most competent merge tools apply both by default.
Do the merge once, from the copies rather than from the card, and write the output to a drive with enough free space for a file that will be larger than any single segment. A 4K merge of ten chapters is roughly 40 GB at common bitrates, and running out of space partway through produces a file that is truncated in a way that looks like corruption.
Frame Alignment and Audio at the Splices
Splices are where people look hardest for problems, and most reported problems are not real. Cameras close a chapter on a keyframe and open the next one with the next frame of capture, so a properly merged sequence is frame-accurate across the boundary. What looks like a stutter when scrubbing is usually the player seeking to the nearest keyframe, which is not the same as a duplicated frame in the file.
The reliable test is frame stepping rather than scrubbing. Step through the splice one frame at a time. A single duplicated frame at the boundary is normal in some cameras and is invisible at playback speed. A jump of several frames means the camera dropped frames while closing and reopening the file, which happens with slower cards, and no merge tool can reconstruct frames that were never written.
Audio behaves differently because AAC frames do not align to video frames. At a chapter boundary the audio can carry a gap of up to about 21 milliseconds at 48 kHz, which is audible on headphones as a faint click. A re-encode of the audio track only, leaving video untouched, removes it without touching a single video frame.
One more device-level check: if the merged clip will not play in a given player while each segment played fine, the codec is usually the reason rather than the merge. HEVC footage from modern action cameras and drones requires an HEVC decoder, and a missing decoder produces a black window rather than an error message. Our page on repairing HEVC footage covers the playback checks, and the container differences between drone brands are set out in our overview of drone video file formats.
When a Segment Is Missing
A missing segment is a continuity problem rather than a technical one, and there are four honest ways to handle it.
The simplest is to merge the surviving segments and accept a jump cut at the gap. That is usually the right answer for a personal edit, and it keeps every frame you still have.
The second is to make the gap visible. Inserting a two-second title card stating that footage is missing reads better than an unexplained jump and prevents a viewer from assuming the camera glitched. If the camera recorded a total duration, the difference between that and the sum of the surviving segments tells you how long the missing piece was.
The third is to freeze the last frame before the gap for a second or two, which preserves the sense of continuous time when the missing material is short and the shot is a static one.
The fourth applies when the missing segment is the first in the sequence. If the sequence is index-dependent rather than self-contained, losing the opening segment can leave the rest without their decoding description, and the remaining files have to be rebuilt from the bitstream rather than simply joined. Treat that as a repair job before you attempt any merge.
Do not attempt to forge continuity by shortening timecodes or by splicing frames from another recording. Both approaches create files that are internally inconsistent and that fail unpredictably in an editor, usually long after the merge appeared to succeed.
If you are on Windows and the card is still detected by a computer, a purpose-built recovery tool such as XRecovery (xappset.com) can scan SD, microSD, and other memory cards for deleted or formatted photos and videos. As with any recovery tool, stop writing to the card first and always save recovered files to a different drive. A segment that was overwritten by later recording cannot be brought back by any tool, so check the gap against how much new footage the card has recorded since.
Frequently Asked Questions
Can I merge GoPro chapters without losing quality?
Yes, when all chapters come from the same recording and share codec, resolution, frame rate, and audio configuration. Use a concat demuxer that copies the compressed frames and rewrites the track tables. Nothing is decoded, so the merged file is frame-identical to the originals.
Why does my merged video stutter at the point where two chapters meet?
Check it by frame stepping rather than scrubbing. A single duplicated frame is normal at a camera’s chapter boundary. A jump of several frames means frames were never written, which happens with slow cards under thermal load; no merge tool can invent them.
What should I do if one chapter is missing from the sequence?
Merge the surviving chapters and handle the gap deliberately. Insert a short title card or freeze the last frame before the gap rather than splicing in unrelated footage, which produces files that fail unpredictably in an editor. If the missing file is the first chapter, rebuild before merging.
Why does a merged drone video play in one player but not another?
That is normally a codec support issue rather than a merge problem. Modern action cameras and drones record HEVC, which requires an HEVC decoder. Install the codec or use a player with built-in HEVC support and the same file will play in both.