Dash-cam evidence
Stream-copy three consecutive 3-minute clips from around the incident into one file to submit.
Guide
Video Merge joins several videos end to end into one file: a phone-recorded vlog shot in parts, dash-cam clips written one minute at a time, or course chapters recorded separately. It is the “Merge” tab of the audio/video workbench. It probes the container, video codec, resolution and audio codec of every selected file, and when all four match it stream-copies through concat — no decode, no re-encode, done in seconds, zero quality loss. If any one of them differs it switches to re-encoding automatically.
Updated 2026-09-094 min read
Video Merge joins several videos end to end into one file: a phone-recorded vlog shot in parts, dash-cam clips written one minute at a time, or course chapters recorded separately. It is the “Merge” tab of the audio/video workbench. It probes the container, video codec, resolution and audio codec of every selected file, and when all four match it stream-copies through concat — no decode, no re-encode, done in seconds, zero quality loss. If any one of them differs it switches to re-encoding automatically.
Re-encoding takes the width and height of the first video as the target; other clips are scaled proportionally and centred with black bars, the frame rate is unified at 30 fps and audio at 48 kHz stereo, and the output is H.264 CRF 23 + AAC 128 kbps in an MP4 container. Clips without sound get a silent track of the same length so that picture and audio stay in sync after the join.
merged_3_videos.mp4 when it finishes (under stream copy the extension follows the source).| Input | Output | Notes |
|---|---|---|
3 clips of 1080p MP4 from one phone |
stream copy → merged_3_videos.mp4 in seconds |
all four properties match, so nothing is re-encoded |
a 1080p MP4 + a 720p MKV |
re-encode → 1080p MP4 with black bars beside the second clip |
container and resolution differ, so re-encoding starts |
a matched pair of MP4s, one with sound and one silent |
audio codecs differ (aac vs none) → re-encode, silence filled in |
the silent part is generated with anullsrc |
Stream-copy three consecutive 3-minute clips from around the incident into one file to submit.
Merge the MKVs written by one screen recorder losslessly.
Accept the black bars and let the tool unify everything to the first clip's resolution in one pass.
Re-encode footage from different cameras into a single timeline, then take it into fine editing.
MP4 is only a container. Compare the rows in the panel or the “Media info” page: if the resolution, video codec (h264 vs hevc) or audio codec (aac vs mp3) differ in any way, stream copy is not possible.
This mostly happens under stream copy when the source timestamps are not continuous. Re-encode one clip with “Video format conversion” first, or temporarily change one file's extension to force the re-encoding path.
Yes, there is no count limit — but all files have to fit in memory at once, and a hint appears near 1.5 GB total, so splitting the work is recommended.
Every clip is read and joined locally in the browser by ffmpeg.wasm and nothing is uploaded. On first use the engine, about 31 MB, is downloaded from a CDN (the site asset domain or jsDelivr); that request contains no video content.
Updated 2026-09-09
Join several videos into one: lossless and instant when formats match, re-encoded automatically otherwise
Everything runs locally in your browser; files are never uploaded to a server