Skip to content

Video Joiner

Join several clips into one video.

Video Joiner

Your file is processed on your device and is never uploaded to TubePull servers.

Drop files here, or

Video processing uses FFmpeg (via ffmpeg.wasm) and Mediabunny. See third-party licenses.

How to use the Video Joiner

  1. Press Choose files and select two or more clips, or drag them onto the page. You can add more later, up to 20, and none of them leaves your device.
  2. Put the clips in playing order with Move up and Move down, and use Remove for any you don't need.
  3. Check for a notice below the list. If one appears, the clips don't match and will be converted to MP4 in the size and frame rate of the top clip.
  4. Press Start. Lists of MP4 and WebM files are joined in the page; a list with a MOV, MKV or MPEG-TS file uses the compatibility engine, a download of about 32 MB the first time.
  5. Download the joined video, which takes the name of the top clip with -joined added.

Merge several clips into one video

TubePull Video Joiner plays your clips back to back in a single new file, in the order you set. It takes from 2 to 20 videos: phone clips from one afternoon, a recording that was split into pieces, or an intro to go in front of the main video. When the clips match in codec, picture size, frame rate and sound settings, the joiner simply strings them together and nothing about the picture or the sound changes. When they differ, every clip is converted to one common MP4. Your browser does the work on your own computer or phone, so none of the footage is sent anywhere. There is no charge, no sign-up and no logo stamped on the result.

Building the list of clips

Press Choose files and pick several videos at once, or drag them onto the drop zone. You can keep adding: each new batch goes to the end of the list in the order you chose the files, and the clips already listed stay where they are. Each row shows the file name, its length and its picture size.

  • Order. Move up and Move down shift a clip one place. The first clip plays first. The keyboard works on every button, and screen readers hear where the clip moved to.
  • Remove. Takes a clip off the list without touching the others.
  • Two at least. Start stays unavailable until two clips are listed, with a note saying so.
  • Twenty at most. If a batch would take the list past 20, files are added until it is full and a message says how many were left out.

A file the joiner can't use is turned away on its own, with a message that starts with its name, such as "“clip7.mov” was not added.", followed by the reason: the file is damaged or in a format the tool can't read, it holds only sound (cover art doesn't count as video), or it is copy-protected. The rest of the list is unaffected. If the length of a listed clip can't be read, Start stays off and the note names that clip. Once a job starts, the list is locked until it ends.

Joined as they are, or converted to MP4

The joiner compares every clip with the first one. If all of these match, the clips are joined without re-encoding: | Checked | Must be the same as the first clip | |---|---| | Video codec | for example H.264 in every file | | Encoding settings | profile, level, bit depth and the codec's setup data | | Picture | coded size, size as displayed, and rotation | | Frame rate | exactly: 30 and 29.97 frames per second count as different | | Sound | present in every clip, or in none | | Audio codec, sample rate and channels | for example AAC, 48 kHz, stereo | A join without re-encoding copies the stored video and audio data into one file, so the result has the full quality of the clips and keeps the first clip's container: MOV clips give a MOV, MKV clips an MKV. Because frame rates must match exactly, recordings whose frame rate varies, as many phone videos' does, can be converted even when they all came from the same phone. If anything differs, a notice appears under the list before you press Start. It says the files will be re-encoded to MP4, names the first clip that doesn't match and one way it differs, for example "has a different frame rate than the first file", and warns that this takes longer. You can still start the job. Taking the odd clip off the list can bring back a join without re-encoding.

How a converted join looks

A converted join is always an MP4 file holding H.264 video and AAC sound. The first clip in the list sets the frame: its size as displayed, rounded down to even numbers, and its frame rate. So an 853 × 479 first clip gives an 852 × 478 video. Every other clip is enlarged or reduced to fit inside that frame without changing its shape and is centered, with black bars filling the rest. Nothing is stretched or cut off. A portrait clip of 1080 × 1920 that follows a 1920 × 1080 landscape clip appears as a picture about 608 pixels wide, with black on both sides. Clips that a phone marked as rotated are drawn the right way up. Because the frame comes from the first clip, put the clip whose shape you want first. The sound is encoded at 128 kbps, with the sample rate and channel count of the first clip that has sound; if that clip is mono, the joined sound is mono too. A clip without sound gets silence for its full length, which keeps the picture and the audio lined up for the clips that follow. When no clip in the list has sound, the joined file is written without an audio track. Converting means decoding each clip and compressing it again, so some fine detail is lost, and it takes longer than joining without re-encoding.

What the joined video contains

  • Order and length: every clip appears once, in list order, and the video lasts as long as the clips put together, give or take about a frame per clip.
  • Tracks: the main video track of each clip and its first audio track. Any further audio tracks, subtitles or chapter marks are dropped.
  • Tags: the first clip's tags, such as a title or recording date, come along. To strip tags from the result, run it through the Video Metadata Remover.
  • Name: the first clip's file name with "-joined" added. day1.mp4, day2.mp4 and day3.mp4 become day1-joined.mp4. Moving another clip to the top changes the name.

When the job is finished, the result lists how many files were joined and either says no quality was lost or that every file was re-encoded to H.264 video and AAC audio, with the output size in pixels.

Formats the joiner accepts

The joiner opens MP4, MOV, WebM, MKV and MPEG-TS files, and a single list may combine several of these formats. A join without re-encoding never decodes anything, so it works whatever codec the clips use. A converted join decodes every clip, so each one needs a codec that your browser or the compatibility engine described below can read.

Where the joining happens

Your clips stay inside this browser tab. Their contents, their names and the details the joiner reads from them are never passed to TubePull or anyone else, and the tool only connects to the site to load its own program files. When every clip in the list is an MP4 or WebM file, the open-source Mediabunny library does the joining inside the page and any conversion uses the WebCodecs encoders built into your browser, so no big download is needed. If that fails, the job switches to the compatibility engine. A list with a MOV, MKV or MPEG-TS file goes straight to the compatibility engine, and so does a conversion that needs a decoder or encoder your browser lacks. Under the hood, that engine is ffmpeg.wasm, the FFmpeg toolkit compiled to WebAssembly. About 32 MB is fetched on its first run and cached by the browser after that. The licenses page lists the version, license and source of each.

Limits

  • 2 to 20 clips per job, as above.
  • Size on the compatibility engine. Before it starts, the compatibility engine estimates the joined file as the clips' file sizes added together, and it turns down a job whose clips come to more than 1.5 GB in total. The number of clips and their lengths don't change this: two clips of 750 MB each are accepted, and so are twenty of 75 MB. A converted join can end up larger or smaller than the estimate. Joins of MP4 and WebM files that run in the page aren't checked this way.
  • Memory. Otherwise the limit is how much memory your device can spare. A phone warns you about any clip over 500 MB.
  • No editing. There are no transitions, music, captions, side-by-side layouts or a choice of output size. To shorten a clip first, use the Video Trimmer. To go the other way and cut one long video into pieces, use the Video Splitter. If the result is too big to send, the Video Compressor can shrink it.

Joining clips you found online

Only files stored on your computer or phone can be joined. A clip you've only watched on YouTube, TikTok or another site can be saved first with the TubePull downloader, then added here. All the other free tools are collected on the video tools page.

Frequently asked questions

Does the Video Joiner cost anything, and does it watermark the video?
No on both counts. You can join as many lists as you like without an account, and the joined file carries no logo or overlay.
Do my videos get sent to a server?
No. Your browser joins them on your own device, and TubePull never receives the videos, their file names or anything the joiner reads from them.
Will joining the clips make them look worse?
Not when the clips match: then their video and audio data is copied into the new file unchanged. Clips that differ are converted to one MP4, and that second compression loses a little detail.
Why does the joiner say my files will be re-encoded?
At least one clip differs from the first in codec, encoding settings, picture size, rotation, frame rate or sound. The notice names the first clip that differs and how. If that clip is the only odd one, taking it off the list lets the rest be joined without re-encoding.
Can I join clips of different sizes, like a portrait and a landscape video?
Yes. They are converted to an MP4 with the first clip's frame size and frame rate, and every other clip is scaled to fit inside that frame with black bars, never stretched or cropped. Put the clip with the shape you want at the top.
What if one of the clips has no sound?
It is filled with silence for its whole length, so the sound of the later clips stays in step with their picture. If none of the clips has sound, the joined video has no audio track.
How many videos can I join at once?
From 2 to 20. You can add them over several picks or drops, and if one batch would go past 20, the extra files are left out and a message says how many.
Which formats can I join, and what do I get back?
The list takes MP4, MOV, WebM, MKV and MPEG-TS files, five formats in all. Clips joined without re-encoding keep the first clip's format, while a converted join always comes out as H.264 video with AAC sound in MP4.
How do I change the order of the clips?
Use the Move up and Move down buttons next to each clip, or Remove to drop one. The top clip plays first and also gives the joined file its name, with -joined added.
Can I add transitions or music, or trim the clips?
No. The joiner only puts the clips one after another. To shorten a clip first, trim it in the Video Trimmer and add the shorter file here.