A birthday filmed in six short clips, a lecture recorded in parts because the phone stopped, three screen recordings that should be one tutorial: joining videos is one of the most common things people want to do with them. Every editor can do it, but most of them quietly re-encode the whole thing, which takes time and softens the picture a little. Sometimes that is unavoidable. Often it isn’t.
We tested this on 15 October 2026 on Windows 11 with Chrome, using short test clips with their frame number drawn into every frame and a different tone in each clip’s sound, plus two 12-second 1080p phone videos (one landscape, one portrait). The phone-app steps below come from the apps’ own menus and help pages, not from our devices, and we say so.
The quick answer
| Where you are | Easiest way | Watch out for |
|---|---|---|
| Any device with a browser | Merge videos: drop the clips, put them in order, download | Nothing uploaded; it tells you whether the join is lossless |
| iPhone | iMovie (free from Apple): new Movie project, select the clips, Create Movie, then Share > Save Video | Always re-encodes; not tested by us |
| Android | Google Photos: select the clips, then Create > Movie (menu names vary by version) | Re-encodes; not tested by us |
| Windows 11 | Clipchamp (built in): add the clips to the timeline, Export | Asks you to sign in; re-encodes; not tested by us |
| Mac | QuickTime Player: open the first clip, Edit > Add Clip to End, then File > Export As | Re-encodes; not tested by us |
| Desktop, lossless | LosslessCut or Avidemux (free, open source), set to copy | Only safe when the clips match, see below |
When videos can be joined without losing quality
A video file is a run of compressed frames plus one small block of settings the player needs to decode them: the codec (H.264, HEVC…), 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 new time stamps. Nothing is decoded or encoded again, so the result is the original quality and the join is almost instant.
The difference in time is dramatic. Joining two matching 12-second 1080p clips took our Merge videos page 0.07 seconds, with all 720 frames identical to the originals. Joining a landscape and a portrait clip of the same length, which has to be re-encoded, took 12 seconds on the same laptop.
Clips usually match when they were:
- filmed on the same phone in the same camera mode (same resolution, same frame rate, HDR on or off for all of them);
- all held the same way, all upright or all sideways;
- not passed through a messaging app, an editor or a compressor in between.
That last point catches people out. We re-encoded one of our test clips at a lower quality setting but the same size and frame rate, the way a messaging app might, and it no longer matched the original: the encoder’s parameter block was different, so the page reported “different encoder settings” and offered to re-encode instead.
What happens if you force a lossless join anyway
Desktop tools that copy streams (ffmpeg’s concat with -c copy, or a “copy”
setting in other apps) will often let you join clips that don’t match. We did exactly that with
a 320×240 clip at 30 fps followed by a 240×320 portrait clip at 25 fps: both
clips’ compressed frames written into one MP4 under the first clip’s settings.
- The file opened without any error message and showed a length of 3 seconds, so nothing looked wrong.
- A separate video library decoded the second clip’s frames at the first clip’s 320×240 size, though they were filmed 240×320, and read their frame numbers out of order: 0, 1, 0, 1, 2, 3, 2, 3…
- In Chrome, the picture did not follow along when we jumped through the file: it showed the same opening frame at 1, 2.2, 2.5 and 2.8 seconds.
In other words, a forced lossless join of mismatched clips doesn’t fail loudly. It produces a file that looks fine in the file list and breaks when someone plays it. That is why a merger should check the settings first and re-encode only when it must, and tell you which it did.
Joining a vertical and a horizontal video
A video can only have one shape, so mixing portrait and landscape clips always means re-encoding, and you have to decide what happens to the clips that don’t fit:
- Black bars: each clip is shrunk to fit the frame, nothing is lost. This is what our page does, using the shape of the first clip; put a portrait clip first for a portrait result. In our test the portrait 1080p clip appeared in the middle of the 1920×1080 frame with bars at the sides.
- Cropping: the odd clips fill the frame but lose their edges. To do this, crop them to the same shape first with Crop video, then merge.
- Stretching is what some quick tools do by default. People look wide or thin; avoid it.
Sound
When clips are joined without re-encoding, each clip keeps its own sound exactly. In our test the first clip’s 440 Hz tone was followed by the second clip’s 660 Hz tone at the 2-second mark. When some clips have no sound at all (screen recordings often don’t), a good merger fills their length with silence; otherwise the sound of every later clip drifts ahead of its picture. Our page does this automatically, and our 1-second silent clip came out as a full second of silence after the first clip.
Step by step in the browser
- Open Merge videos and drop all the clips in, or add them one at a time.
- Use the arrows to put them in order. Remove any you don’t want with ×.
- Read the line under the list. “Joined without re-encoding” means a lossless result. Otherwise it names the clip that doesn’t match and why, and that clip is highlighted.
- Press Merge videos, play the result on the page, and download it.
- If a clip has an unwanted start or end, cut it first with Trim video. If the merged video is too big to send, shrink it with Compress video.
The clips are read and written by your browser on your own device; nothing is uploaded, and there is no watermark. On a phone, very long videos can run out of memory, because the merged file is built in memory before you download it.