Merge videos

Add several videos, reorder them as you like, then merge them into a single MP4 file. Processing runs entirely in your browser thanks to ffmpeg compiled to WebAssembly, and your files are never sent to a server.

No videos added
Without this option, merging is very fast (direct copy) but only works well if all the videos have the same codec and resolution.

How it works

Each video is written to a virtual file system, then joined using ffmpeg's concat demuxer, run locally via WebAssembly. By default, the video and audio streams are simply copied (no re-encoding), which is very fast but assumes all the videos share the same codec and resolution.

Why does the merge fail or produce a strange result?

If your videos come from different devices or software, they may have different codecs, resolutions or frame rates. The "copy" mode without re-encoding can't reconcile these differences and either fails or produces a video with artifacts. Check the "Force re-encoding" option so ffmpeg converts each video to a common format (H.264 video / AAC audio) before joining them.

How long does merging take?

Without re-encoding, merging is almost instant regardless of the videos' length, since it's a simple concatenation of the streams. With re-encoding, the time depends on your device's power and the total length of the videos: generally expect a time close to the videos' actual duration, or longer on a low-powered device.

Your videos never leave your device: the merge is calculated locally by WebAssembly, right in your browser tab.