Merge videos

Merge Videos Online — Combine Clips Into One File

Drop in two or more clips, reorder, hit merge. The output is one file you can play, share, or hand to an editor. Runs entirely in your browser via FFmpeg compiled to WebAssembly — your videos never get uploaded.

  • No upload
  • No signup
  • Stream-copy concat
  • Up to 800 MB total
  • Same-codec sources
Merge works best when all clips were recorded with the same tool and settings (same codec, resolution, frame rate). Mixed-codec sources may need re-encoding — for those, use a desktop tool or convert each clip first.

Files never leave your browser. Merge runs locally via FFmpeg/WebAssembly.

When merging is the right move

A few obvious cases: an interview cut into Q&A chunks that needs to be one deliverable, a screen recording that auto-split into chunks because the recorder hit a duration limit, b-roll plus the main take that should ship as a single video, or multiple speakers each recorded separately on their own machine. If the source clips were created the same way, merging is fast and lossless. If they weren't, merge is the wrong tool — see below.

How it works under the hood

We use FFmpeg's concat demuxer with -c copy, which splices the bitstream of each clip end-to-end without re-encoding. That's why it's fast and lossless — but it's also why every input must share codec, profile, resolution, and frame rate. If they don't, the demuxer either errors out or produces a file with audio/video drift. We surface the error if FFmpeg complains; if you get a file back that plays weirdly, that's the diagnostic.

When you need a desktop tool instead

If your clips came from different cameras, different recording apps, or have different resolutions, stream-copy won't work. The fix is to re-encode each clip to a common format first, then merge. You can do that one-clip-at-a-time with our WebM → MP4 converter or MOV → MP4 converter and then merge — or skip the dance entirely and use HandBrake, FFmpeg locally, or a video editor on your machine. For mixed-source merges at scale, desktop is faster.

Recording in chunks on purpose?

If you're recording a long session and worried about losing it all to a crash, chunked recording is sensible — but the easier path is a recorder designed for long sessions to begin with. Clipy handles long takes natively, ships you a sharable link without an upload-step round trip, and never asks for a signup on the viewer side. Use this merge tool to tidy up after the fact; use Clipy if you'd rather not need to merge.

Common questions

Why does merging fail with 'invalid data found' or weird audio?

The concat demuxer needs every input to match on codec, resolution, frame rate, and audio sample rate. If your clips came from different recorders or settings, FFmpeg refuses or the output drifts. The fix is to re-encode each clip to a common format first, then merge.

Why is merging so much faster than converting?

Because we pass -c copy. We're not re-encoding — we're splicing the existing bitstream end-to-end. That's why same-source clips merge in seconds and why mixed-source clips break.

Can I drag clips to reorder them?

We kept the UI to up/down arrows on each clip, which is faster than full drag-and-drop on a touch device and works the same on mouse. Each click swaps a clip with its neighbor.

What's the size limit?

About 800 MB combined input — that's the WebAssembly memory ceiling we comfortably stay under. For larger merges, run FFmpeg locally or use a video editor; the math doesn't change, just the runtime.

Does the output preserve audio?

Yes — we stream-copy both audio and video tracks. As long as inputs share an audio codec (AAC for MP4, Opus for WebM, etc.), audio joins cleanly. Mismatched audio is the most common silent failure mode for mixed-source merges.

More free tools