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.
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.