Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

How can I mix two movies together before I handbrake them?

I've got a two part movie on my disk as a pair of VideoTS folders. I want to generate one output movie. I plan on using handbrake to do the encoding, unless someone can point out a better way to do it. The final intent is to create a video file for my iPhone or iPod. I've got about 90 videos already like this, but never done a two-parter.

Am I forced to handbrake it and then reauthor it using another platform? I can do that, but figured there was an easier way to do it. If there is another bit of software that changes my workflow but does this in less steps, I can accept that as an answer as well.

If there isn't a way to combine the two into one video file neatly, then my choice will be to open it in something like Windows Live Movie Maker and just mix the two input mp4/m4v into one file.

share|improve this question
Just remove the first paragraph and the name of the movie and nobody will care. There are enough free movies, or movies you could have created yourself, to make this a generally useful topic without implied legal issues. – Daniel Beck Jan 29 '12 at 18:13
Think so? I wasn't sure. – jcolebrand Jan 29 '12 at 18:19
Yeah, never saw somebody ranting about that here, like ever. Basically, you don't want to ever re-encode anything. I would suggest to rip them both to h.264 / MP4 using Handbrake and the exact same settings, then merging them with a tool like MP4Box. – slhck Jan 29 '12 at 18:27
So technically, @slhck, I want to ask how to reflow two video files together with something like MP4Box instead of asking how to do it with handbrake? Reckon I should start a new Q and leave this one for the googlers? – jcolebrand Jan 29 '12 at 18:31
No, it's fine to stay. The solution is kinda the same, I guess. I'm just trying to find out how to do that all on Windows :) – slhck Jan 29 '12 at 18:34
up vote 6 down vote accepted

How to approach this

If you have two input movies, and want to generate one output movie, you should try not to re-encode them as you go, but rather take the original bitstream.

In your case, the possibilities are either:

VideoTS Part 1 → MP4 Part 1
VideoTS Part 2 → MP4 Part 2
MP4 Part 1 & MP4 Part 2 → Final MP4

… or:

VideoTS Part 1 & VideoTS Part 2 → Intermediate Video
Intermediate Video → Final MP4

Concatenating with MP4Box

I would choose the first option since I don't know if there's any tool that would take the "raw" DVD files and concatenate them for you.

You can simply use Handbrake to encode the videos to MP4 files with appropriate settings (e.g. using the iPhone or iPod presets). It's important you choose exactly the same settings for both videos.

Then, use MP4Box to concatenate those:

mp4box -cat video-a.mp4 -cat video-b.mp4 final.mp4

Why you shouldn't re-encode

The important part is that you actually use a tool like MP4Box to concatenate the videos, and not a Non Linear Editor like Windows Movie Maker. As far as I know, WMM will not allow you to just copy the h.264 codec bitstreams, but needs to re-encode the video after you've concatenated them.

This means that you will experience generation loss, like you know from JPEG images. It might not be noticeable, but I don't know how good Windows Movie Maker's encoder even is to begin with. I would doubt the quality would be the same.

share|improve this answer
New tool and everything! Yay workflows! I honestly didn't think it would cause generation loss to do that in WMM, but now that you point it out, that makes some sense. I thought maybe Handbrake could do the job alone. Ah well, this will be great! – jcolebrand Jan 29 '12 at 18:46

I haven't been able to do it in Handbrake (Kev's answer suggests it's possible with batch conversion but that doesn't work for me) but ffmpeg supports it using its concatenate feature. Concatenate multiple input files and encode the video stream with x264 and copy the audio stream to a single MP4 output file:

ffmpeg -f concat -i files.txt -c:v libx264 -crf 22 -c:a copy output.mp4

files.txt is a list of input files in the format

file '/path/to/file1'
file '/path/to/file2'
share|improve this answer
I would even recommend ffmpeg -f concat -i files.txt -c:v copy -c:a copy output.mp4 (resp. output.avi or similar), which is faster and does no re-encoding as @slhck recommends. – white_gecko May 20 at 19:12

If you drop all the files in one directory with names that put them in the right order then open the directory in handbrake (rather than the files) it will automatically merge them - so no need to merge before hand.

  • I randomly tried that after failing to get other things to work (YMMV).
share|improve this answer
You should fix your answer in order for it to be understand easily. And don't place a bullet without a list like that – Lưu Vĩnh Phúc Oct 21 '13 at 8:48
Doesn't work for me. Handbrake only encodes one title at a time, couldn't find an option for merging. – kynan Feb 12 '15 at 20:37
doesn't work for me either. Using v0.10.0 – some user Apr 19 at 4:29

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .