How to join multiple clips into one video
- Step 1Open the online joiner — Go to the video-merger tool. It loads FFmpeg.wasm in the page — after that first load it works offline. Nothing about your clips is transmitted.
- Step 2Add at least two clips — Drop or select your clips (
.mp4,.mov,.mkv,.webm,.avi,.m4v,.ts). The joiner needs two or more — one file throws 'Pick at least two clips to merge'. - Step 3Put them in order as you add — Clips join in add order. There's no drag-to-reorder, so add them in the sequence you want. Wrong order? Remove a clip with its trash icon and re-add it in place using Add more.
- Step 4Check your tier allows the count — Joining needs Pro or higher: Pro 5 clips, Pro + Media 50, Developer unlimited. Free is one file and can't join. Per-file size caps: 10 GB (Pro), 100 GB (Pro + Media / Developer).
- Step 5Click run — no settings needed — There's nothing to configure. The joiner tries lossless stream-copy and re-encodes only if your clips don't match. Watch the stage label to see which path it took.
- Step 6Download the joined video — The combined file downloads to your device as
<firstclip>-merged.<ext>— no upload round-trip, no email, no watermark. On Pro + Media you can stream it directly to a folder you choose.
Why this online joiner is different
Comparison of common online-joiner catches vs how JAD's in-browser joiner behaves.
| Common online joiner | JAD video-merger |
|---|---|
| Uploads your clips to a server | Runs in-browser via FFmpeg.wasm — no upload |
| Adds a watermark on free plans | No watermark, any tier |
| Caps free use at a few minutes | No duration cap — limited by size/count only |
| Re-encodes everything (lossy) | Lossless stream-copy when clips match |
| Needs a desktop install | Works in any modern browser |
Join behaviour at a glance
The joiner picks the path automatically; you don't set a mode. Verified against the merge processor.
| If your clips... | Path | Output | Speed |
|---|---|---|---|
| Match (codec/res/fps/audio) | Stream-copy -c copy | Lossless; last clip's container | Seconds |
| Differ in any property | Re-encode (concat filter) | H.264/AAC .mp4, +faststart | Minutes |
| Number fewer than 2 | Rejected | Error message | — |
| Exceed tier batch limit | Rejected at add time | Limited to tier max | — |
Tier requirements
Joining is a multi-file action, so it needs Pro or higher. Real numbers.
| Tier | Clips | Per-file cap | Joins? |
|---|---|---|---|
| Free | 1 | 1 GB | No |
| Pro | 5 | 10 GB | Yes |
| Pro + Media | 50 | 100 GB | Yes (streams to disk) |
| Developer | Unlimited | 100 GB | Yes |
Cookbook
Everyday joining scenarios, the kind you'd reach for an online tool to handle. Each note tells you which path runs and what you get.
Three quick clips, same export settings
Three short clips exported from the same editor with the same settings. They match, so the joiner stream-copies them losslessly in a few seconds.
Inputs (all H.264 1080p30 AAC): part1.mp4, part2.mp4, part3.mp4 -c copy concat -> lossless, ~2s Output: part1-merged.mp4 (no watermark, no upload)
Fixing the order
You added clips out of sequence. Since there's no drag handle, fix it by removing the misplaced clip and re-adding it where it belongs.
Added: B, A, C (you wanted A, B, C) 1. Remove A and B (trash icons) 2. Add more -> re-select A, then B (now list is C, A, B) ...easier: remove all, re-add A, B, C in order 3. Run The list order = the final video order.
Two clips from different apps
One clip from a phone, one exported from a desktop editor with different settings. They don't match, so the joiner re-encodes to one MP4 automatically — no manual conversion.
Inputs: phone.mov (H.265) editor.mp4 (H.264, different res) Stage: 'Codecs differ — re-encoding for clean concat' -> libx264 -crf 20, aac 192k, .mp4 out You still just clicked 'run' — no settings.
Joining without a watermark
The output never carries a watermark, unlike many free online joiners. This is true on the stream-copy and the re-encode path alike.
Free online joiners often stamp: 'Made with X' JAD output: clean frames, no overlay, no logo Verified: the merge processor adds no overlay filter on either path.
Two files on the Free tier — blocked
A common surprise: even with two clips ready, the Free tier can't join because its batch limit is one file. Upgrade to Pro to join up to 5.
Tier: Free Dropped: clipA.mp4, clipB.mp4 Result: batch limit (1) prevents the join. Upgrade to Pro (5 files) or higher to proceed.
Edge cases and what actually happens
Fewer than two clips
RejectedThe joiner needs at least two files and throws Pick at least two clips to merge otherwise. For a single clip, use lossless-trimmer (to trim) or video-transcoder (to convert).
Free tier
Blocked by tierJoining requires the multi-file batch limit, and the Free tier is capped at one file. You need Pro (5 files) or higher. This is enforced before processing.
Clips added in the wrong order
By designThere is no drag-to-reorder control. Clips join in the order they appear in the list, which is the order you added them. To reorder, remove a clip and re-add it in the right slot, then run.
Clips don't match
Re-encoded (auto)If the clips differ in codec, resolution, frame rate, or audio format, stream-copy fails and the joiner re-encodes them to one H.264/AAC MP4. You get a continuous file either way; the only cost is time and a small quality hit on the re-encode path.
Output has no watermark — confirmed
By designThe merge processor applies no overlay or branding on either path. The joined video is clean. This is a deliberate difference from many free online joiners that watermark free exports.
A clip is over your tier's size cap
RejectedEach clip is checked against the per-file byte cap (10 GB Pro, 100 GB Pro + Media / Developer). An over-cap file is rejected by name. Compress it first with discord-compressor or trim it.
Page reloaded mid-join
Job lostBecause processing happens in the page, reloading or closing the tab cancels the in-progress join — there's no server-side job to resume. Keep the tab open until the download completes.
Large join exhausts browser memory (Free/Pro)
Out of memoryWithout a destination folder, the joined output is held in a memory blob, which can run out for very large totals. Pro + Media streams output to disk via a chosen folder — use it for big joins.
Unsupported file type dropped
RejectedOnly .mp4, .mov, .mkv, .webm, .avi, .m4v, .ts, or video/* files are accepted. Other files are filtered out with a 'No video files in the drop' message.
Mismatched audio between clips
Re-encodedDifferent audio codecs or sample rates between clips break stream-copy and trigger the re-encode, which normalises audio to AAC 192k. Clips with no audio at all are handled by the optional audio mapping in the concat filter.
Frequently asked questions
Is this online joiner really free and watermark-free?
There's no watermark on the output, ever. It's free to use within a Pro subscription — there's no per-export charge. The catch versus a typical 'free' site is that joining needs Pro or higher (because it's a multi-file action) and the Free tier can't merge.
Does it upload my clips to a server?
No. Despite being an online tool, the joining happens entirely in your browser via FFmpeg.wasm. Your clips are read locally and the joined file downloads (or streams to a folder you pick on Pro + Media) — nothing is transmitted.
Is there a time limit on the videos I can join?
No duration cap. Limits are by file size (per-file byte cap) and clip count (tier batch limit), not minutes. You can join long clips as long as each is within the size cap and the total fits your tier's file count.
How do I set the order of the clips?
Add them in the order you want — the join order is the add order. There's no drag-to-reorder handle. To change the order, remove a clip with its trash icon and re-add it in position with Add more, then run.
Will joining re-encode and degrade my clips?
Only if the clips don't match. Matching clips (same codec, resolution, frame rate, audio) are stream-copied losslessly. Mismatched clips are re-encoded to a clean H.264 CRF 20 MP4 — high quality, but not lossless.
How many clips can I join?
At least two. The maximum is your tier's batch limit: Pro 5, Pro + Media 50, Developer unlimited. The Free tier is capped at one file, so it can't join.
What video formats can I join?
MP4, MOV, MKV, WebM, AVI, M4V, and TS (plus anything with a video/* MIME type). You can mix them — the joiner re-encodes mismatched formats to a common MP4 automatically.
Do I need to install anything?
No install. It runs in any modern browser. The page loads FFmpeg.wasm once, after which the joiner works locally — no desktop app, no extension.
Why can't I join on the free plan?
Joining is inherently a multi-file operation, and the Free tier's batch limit is one file. Pro raises it to 5 (with 10 GB per file), which covers most online-joiner use cases.
Can I choose the output format or quality?
No — the joiner has no settings. It either stream-copies (keeping your clips' format) or re-encodes to a fixed H.264 CRF 20 / AAC 192k MP4. For control over codec, container, or CRF, join first and then convert with the video-transcoder.
What happens if I close the tab while it's joining?
The job is lost — processing is local to the page, so there's no server-side job to resume. Leave the tab open until the joined file finishes downloading.
Can I add more clips after the first batch?
Yes, up to your tier's limit. The 'Add more' button shows how many slots remain (e.g. '3 remaining' on Pro after adding 2). Files you add appear at the end of the list and join last.
Privacy first
Every JAD Video tool runs entirely in your browser via WebCodecs and FFmpeg (WebAssembly). Your video files never leave your device — verified by zero outbound network requests during processing.