A LITTLE HELP. A LOT DONE.
Good tools.
Great flow.
Your shortcut to the everyday. Create, convert, calculate,
and get back to what you love.
✳
✳
✓ Free to use✓ No sign-up✓ 500+ possibilities
About this tool
Video Merger joins two or more video clips end-to-end into a single output file, all inside your browser. Powered by ffmpeg.wasm, it uses the FFmpeg concat demuxer for fast stream-copy concatenation when your inputs share the same codec, container, and resolution. For mixed sources — clips from different cameras, codecs, or screen recorders — toggle the re-encode option and the tool transcodes to a uniform H.264/AAC MP4 so the joins line up cleanly. Reorder or remove clips in the queue before merging. Nothing uploads — all the videos and the final output stay on your device.
Why use it
100% private — none of your clips ever leave your device
Stream-copy concat is lossless and fast when sources match codec
Re-encode option handles mixed-codec sources without manual conversion
No file count limits — merge dozens of clips in one go
No watermarks, no signup, completely free
Works offline after the first ffmpeg.wasm download
How to use
- Drag two or more MP4, WebM or MOV files onto the upload area.
- Review the order in the queue — drag-uploaded order is preserved.
- Remove any clips you don't want by clicking the × next to them.
- Add more clips by clicking the upload area again.
- Toggle 'Re-encode to H.264' on if your sources have different codecs or resolutions.
- Click 'Merge Videos' and wait for ffmpeg.wasm to concatenate locally.
- Preview the merged result and click Download to save the combined MP4.
When it helps
- Joining multiple short phone clips into one continuous recording
- Combining screen-capture segments after pause/resume
- Stitching tutorial chapters into a single deliverable file
- Merging dashcam segments around an event for a continuous timeline
- Concatenating GoPro clips that auto-split at the 4 GB boundary
- Joining multiple Zoom recordings of the same meeting
Examples
01Join 5 phone clips from same camera
Input5 × 1080p MP4 H.264, total 200 MB, re-encode off
Expected resultSingle MP4, ~200 MB, lossless, completes in seconds
02Merge mixed phone + screen recording
InputiPhone HEVC + OBS H.264 mp4, re-encode on, CRF 23
Expected resultUnified 1080p H.264 MP4 with no glitches at join points
03Stitch GoPro auto-split chapters
Input4 × 4 GB 4K MP4 chapters, re-encode off
Expected resultSingle 16 GB-class MP4 in under a minute on a fast machine
Tips
- If your clips were exported from the same source/camera, leave re-encode off for a lossless instant merge.
- If you see stuttering or audio drift at clip boundaries, turn on re-encode.
- Pre-trim oversized clips with the Video Trimmer tool before merging to stay under the ~500 MB total memory budget.
- For more than 10 clips, consider merging in two passes (5+5 → final) to keep peak memory usage lower.
- GoPro and DJI camera files often need re-encode because they auto-split at exact 4 GB boundaries with timestamp resets.
- Naming files 01-clip.mp4, 02-clip.mp4 etc before drag-uploading guarantees alphabetical order matches the order you want.
Frequently Asked Questions
Does my video leave my device?⌄
No. All concatenation happens locally via ffmpeg.wasm — your clips and the merged output never reach any server.
Why does it require Chrome / Edge?⌄
ffmpeg.wasm needs SharedArrayBuffer for multi-threaded WebAssembly, which only works in browsers that send COOP/COEP cross-origin isolation headers — Chrome, Edge, Brave, and Arc qualify.
What is the file size limit?⌄
There is no server-imposed cap, but the browser tab can address roughly 2 GB before running out of memory. Practically, total combined input around 500 MB is the safe ceiling.
When do I need to enable re-encode?⌄
Whenever your clips differ in codec, resolution, frame rate, or pixel format. Stream-copy concat requires identical streams; re-encoding normalizes them to H.264 720p+ AAC.
Will re-encoding reduce quality?⌄
Slightly. Re-encoding at CRF 23 is visually transparent for most content but is technically lossy. If your sources match exactly, leave re-encode off for lossless joining.
Can I reorder clips?⌄
The merge order matches the upload order. Remove a clip and re-add it last to move it to the end. Drag-and-drop reordering is on the roadmap.
Why do I get a glitch at the join points with stream-copy?⌄
Stream-copy concat needs identical streams — different keyframe intervals or pixel formats cause stutters. Enable re-encode to fix.
Why does the first run take longer?⌄
ffmpeg.wasm is ~30 MB and downloads on first use, then is cached by your browser for instant subsequent merges, even offline.
Glossary
- Concat demuxer
- An FFmpeg input mode (-f concat) that reads a text list of files and joins them as one logical input — fast and lossless when codecs match.
- Stream copy
- FFmpeg's -c copy mode: muxes existing audio/video streams into a new container without decoding/re-encoding.
- Container
- The wrapper file (MP4, WebM, MOV) that holds video, audio and metadata streams together.
- Codec
- Algorithm that encodes/decodes video (H.264, VP9) or audio (AAC, Opus) — must match across clips for stream-copy concat.
- ffmpeg.wasm
- WebAssembly port of FFmpeg that runs locally in your browser tab — no server processing.
- SharedArrayBuffer
- A JS memory primitive required for multi-threaded WebAssembly; gated by COOP/COEP headers.