How to merge videos
- Drop two or more MP4, MOV, M4V, WebM or MKV files into the box above. You can drop them all at once or one by one; each new file goes to the end of the list.
- Put them in order with the ↑ and ↓ buttons, and remove a clip with ×. Each line shows the clip’s length, picture size, frame rate and formats.
- Read the plan line. It says whether the clips can be joined without re-encoding, and if not, which clip differs and how.
- Press Merge videos, watch the result on the page, and download it.
When videos can be joined without re-encoding
Inside an MP4, the picture is a stream of compressed frames plus one small block of settings that the player needs to decode them: the codec, the picture size, and the encoder’s own parameters. If every clip carries exactly the same block, their frames can simply be placed one after another with shifted times, and a player cannot tell the result from a single recording. Nothing is decoded or encoded, so it takes seconds and the quality is exactly the original.
This page compares that block byte for byte, for both the picture and the sound, before it offers to copy. Clips filmed on the same phone in the same camera mode (same resolution, same frame rate, same HDR setting) normally match. A screenshot recording and a camera clip, a vertical and a horizontal clip, or a clip that has already been through an editor or a messaging app normally do not, and then the plan line names the first clip that differs from clip 1: a different picture size, orientation, codec, encoder settings or sound format.
When they cannot: one frame, no stretching
Clips that differ are re-encoded together. Every frame is drawn into one picture the size of clip 1 (so put the clip whose shape you want first), scaled to fit without stretching or cropping, with black bars where the shapes differ. The result is an H.264 video with AAC sound at roughly the bitrate of the original clips, which plays on every phone, computer and site. If some clips have sound and some do not, the silent ones get silence of their own length, so the sound of the later clips stays in sync with their picture.
What we measured
We ran each case through this page in Chrome and checked the merged file with a separate video library (PyAV). Our short test clips have their frame number drawn into every frame and a different tone in each clip, so the order of both picture and sound can be read back.
| Clips | Path | Result | Time |
|---|---|---|---|
| Two 2 s clips, same settings, tones 440 and 660 Hz | joined without re-encoding | all 120 compressed frames identical to the originals; clip 2 starts at 2.00 s; 440 Hz then 660 Hz | 0.03 s |
| Same two, order swapped with ↑ | joined without re-encoding | 660 Hz clip first | – |
| 320×240 clip with sound + 240×320 clip without sound, 25 fps | re-encoded | 320×240, 60 + 25 frames, 3.0 s; second clip with black side bars and silence | 0.85 s |
| The same 1080p phone video twice (2 × 12.16 MB) | joined without re-encoding | 720 of 720 frames copied, 24.3 MB | 0.07 s |
| 1080p landscape + 1080p portrait phone video | re-encoded (“different orientation”) | 1920×1080, 720 frames, 24.3 MB, portrait clip with side bars | 12.1 s |
| Two Chrome screen recordings (WebM) | joined without re-encoding | stays WebM, 16 s | – |
Joining two matching 12-second 1080p clips took 0.07 seconds; re-encoding a landscape and a portrait clip of the same length took 12 seconds on the same laptop, about half real time. That is the whole difference between the two paths, and why the page tells you which one you are about to get.
Tips for a clean merge
- Film in one mode. Same orientation, resolution and frame rate on every clip lets them join without re-encoding.
- Cut first. Trim the start or end of a clip with Trim video before merging, and play the trimmed clip once to check where it starts.
- Make shapes match. To avoid black bars, crop the odd clip to the same shape with Crop video, or turn a sideways one with Rotate video.
- Too big to send? Shrink the merged file with Compress video.
- Memory. The merged video is built in your browser’s memory. A few GB of clips is fine on a computer but may be too much for a phone.