Free tool · H.264 · Runs in your browser

Merge videos

No uploadUp to 100 MB per fileReviewed October 9, 2026

Short answer

The tool fits every clip into one frame size, pads what does not fill it with black, and joins the clips end to end in the order you chose. The default frame is vertical 9:16, and a 16:9 clip fills only 31.6% of it, so pick the shape that matches your footage. If one clip has no audio, the result has no audio at all. Nothing is uploaded.

Clips are joined in the order shown and padded to the chosen shape, so nothing is stretched. Maximum 100 MB per file. Nothing is uploaded - merging runs on your device.

Key takeaways

  • Every clip is scaled to fit the frame you pick and padded, never stretched. In the default vertical 1080 × 1920 frame, a 1920 × 1080 clip fills 31.6% of the area; in a square 1080 × 1080 frame it fills 56.3%; in a horizontal frame it fills 100.0%.
  • Two 5.067 second clips (10.134 s together) came out 10.267 seconds long, 0.133 seconds more than their sum. FFmpeg's documentation says the concat filter uses the duration of the longest stream in each segment (except the last one) and pads shorter audio with silence; we did not isolate which part accounts for the difference.
  • Output size depends on the frame: 1.29 MB vertical, 1.27 MB square and 3.21 MB horizontal for the same two clips, because there are fewer pixels to encode in a frame that is mostly black bars.
  • If one clip has no audio, the first attempt (with sound) fails and the tool joins the pictures only. On our test, the result had no audio track, even though the other clip had sound.
  • Encoding took 22 s to 39 s for 10.3 s of output; a larger frame takes longer.

What the tool does to your clips

ffmpeg's concat filter needs every input to have the same frame size and pixel shape, so the tool first scales each clip to fit the target frame, pads the rest with black, and sets the pixel shape to square. Then it joins them.

The settings behind the Merge videos tool.
SettingValueWhat it means
Frame choicesVertical 1080 × 1920, horizontal 1920 × 1080, square 1080 × 1080The default is vertical
Fitscale, force_original_aspect_ratio=decrease, then padWhole picture shown, bars added, nothing stretched
Joinconcat filter, video and audioClips play end to end in the order chosen
If a clip has no audioSecond attempt, video onlyThe result has no sound
EncodeH.264 (libx264), yuv420p, preset veryfast; AACOne re-encode of everything, at the encoder default quality

Measured: the same two clips in three frames

Measured on a 5 second 1920 × 1080 excerpt of Big Buck Bunny (CC BY 3.0, Blender Foundation) with a speech soundtrack. It is an animated film, not camera footage, so the sizes of camera video will differ. The tool's own ffmpeg arguments ran on the same single-thread WebAssembly engine your browser downloads; times are from a headless run and your device will differ. Each clip is 5.067 seconds, and the two are the same excerpt.

The Merge videos tool joining two 5 second 1080p clips.
FrameOutput frameShare of the frame the picture fillsLengthOutput sizeTimeSound
vertical 9:161080 × 192031.6%10.267 s1,287,808 bytes (1.29 MB)29.0 sKept
square 1:11080 × 108056.3%10.267 s1,269,051 bytes (1.27 MB)21.8 sKept
horizontal 16:91920 × 1080100.0%10.267 s3,212,600 bytes (3.21 MB)39.1 sKept

The share is the area of the fitted picture divided by the area of the frame: a 16:9 picture in a 9:16 frame is 1080 × 607.5 pixels in 1080 × 1920.

One clip without sound silences the whole result

The tool first tries to join video and audio. A clip with no audio track makes that fail, so it joins the video only. That is useful because it does not stop, but it also removes the sound of the clips that had it. In our test one of two clips was silent, the fallback ran, and the merged file had no audio.

Check each clip has sound before you merge. If one is silent on purpose, add a quiet track to it first, or merge in an editor that fills the gap.

Two clips with sound against one silent clip, same frame.
CaseFirst attemptOutputSoundSize
Both clips have soundSucceeded1920 × 1080, 10.267 sKept3,212,600 bytes
One clip has no soundFailed, fell back to video only1920 × 1080, 10.267 sNone2,934,051 bytes

Choosing the frame

  • All clips landscape: choose horizontal, so nothing is boxed in.
  • All clips vertical: choose vertical. A vertical clip in a horizontal frame fills about a third of it.
  • A mix: choose the shape of the platform you will post to. The fitted clips will have bars.
  • Square 1:1 suits feed posts that must look the same in a grid.

Free tools:Crop a video preciselyTrim by timestampCompress a videoCrop video to 9:16

Limits

Each clip can be up to 100 MB, and the clips are held in your browser's memory together, so many large clips can exhaust it. The joined file is one re-encode, so quality is the encoder default, not a copy.

Questions people ask

How do I merge two videos into one?

Choose the clips in order, pick the frame shape, and run it. The result downloads as one MP4.

Do the clips have to be the same size?

No. Each is scaled to fit the frame you pick and padded with black, never stretched.

Why is my merged video mostly black bars?

The default frame is vertical 9:16, and a 16:9 clip fills only 31.6% of it. Choose the horizontal frame for landscape footage.

Why did my merged video lose its sound?

If any clip has no audio track, the tool joins the pictures only, so no clip keeps its sound.

Why is the merged file a little longer than the sum of the clips?

On our test two 5.067 second clips came out 10.267 seconds, 0.133 seconds more than their sum. We did not isolate the cause.

Is quality lost?

The clips are re-encoded once at the encoder defaults, so yes, a little. Merge from your originals.

Is anything uploaded?

No. Everything runs in your browser; each file can be up to 100 MB.

Related

Sources and how we checked

  1. FFmpeg Filters Documentation (read 2026-10-06)
  2. FFmpeg wiki: Encode/H.264 (CRF and presets) (read 2026-10-06)

Reviewed October 9, 2026. The measurements ran the tool’s own ffmpeg arguments on the same single-thread WebAssembly engine your browser downloads. The script, the results and the saved documentation are in data/seo/hub/evidence/2026-10-09/tools.