Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have two clips of mp4 video. Each clip is 150 MB. I want to combine the two clip into one, which will make a 300 MB file, logically.

I use Final Cut Pro X to achieve this. The result is an incredibly large file: an astounding 1.5 GB. How come? So what do you guys do in this case to combine two clips and keep the file size as it supposed to be?

I provided sample clips that I want to combine: one and two.

share|improve this question
    
It would help if you told us what resolution (in pixels) the clips have and how long they are. Otherwise this question cannot be reasonably answered. The first sample clip has 0 bytes, by the way. Also, since I don't have FCP, could you show us what options there are for rendering the final video? Finally, do you have to use FCP for this? –  slhck Dec 9 '12 at 11:23

3 Answers 3

up vote 0 down vote accepted

Your source material is encoded with lossy compression. To maintain the video quality after editing, the video would have to be exported with lossless compression, which is far less efficient and thus results in a larger file size.

The alternative is to re-encode the material with a lossy algorithm, but even if you mimic the compression settings of the original clips, the quality will suffer. This is called 'generation loss'. Wikipedia has a nice visual example pertaining to re-encoding JPEG images a large number of times. You can of course export the video with an arbitrary compression algorithm to reduce the quality degradation at the cost of a larger file or vice versa.

If you are simply merging two clips, similarly encoded and to be played in succession, into one file, and doing no other editing, it may be possible to create the new file without re-encoding, but by joining raw file contents and manipulating them into a valid .mp4. I suspect Final Cut Pro cannot do this, but there may be tools that can, such as YAMB.

share|improve this answer
    
the original size of video is 640 x 480. My export setting was 1280x 720. That's when the file went up to 1.5GB. When I changed ex set to 640 x 480 the result is what it supposed to be which is about 300MB –  runrunforest Dec 9 '12 at 12:49

Assuming the MP4 clips have all the same settings (frame size, bit rate, etc) and use h264 video and AAC audio, this can be done on the command line with ffmpeg.

The easy, but less efficient way to do it:

ffmpeg -i input0.mp4 -c copy -bsf h264_mp4toannexb temp0.ts
ffmpeg -i input1.mp4 -c copy -bsf h264_mp4toannexb temp1.ts
ffmpeg -i "concat:temp0.ts|temp1.ts" -c copy -absf aac_adtstoasc output.mp4

The slightly more complicated way, that doesn't require intermediate files to be created:

mkfifo temp1 temp2
ffmpeg -i input1.mp4 -c copy -bsf h264_mp4toannexb -f mpegts temp1 2> /dev/null & \
ffmpeg -i input2.mp4 -c copy -bsf h264_mp4toannexb -f mpegts temp2 2> /dev/null & \
ffmpeg -f mpegts -i "concat:temp1|temp2" -c copy -absf aac_asdstoacs output.mp4

Either of these will be completely lossless.

I notice that you've solved your FCP-specific problem by using the correct settings, per that comment...

share|improve this answer

Actually, a little tool can help you combine the videos into one. You do not need to import into FCP. I used Brorsoft Video Converter for Mac to split or combine my videos which is much useful. You can have a try.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.