Go Back   MacRumors Forums > Special Interests > Visual Media > Digital Video

Reply
 
Thread Tools Search this Thread Display Modes
Old May 25, 2012, 01:36 PM   #1
Quotenfrau
macrumors 6502
 
Join Date: Mar 2011
ffmpeg vs. Compressor (and other closed source encoders)

Hi

Does Compressor offer better results than those Open Source encoding tools?

I am only interested in task: convert from one format to other.

Are there comparisons?
Quotenfrau is offline   0 Reply With Quote
Old May 25, 2012, 03:54 PM   #2
floh
macrumors 6502
 
Join Date: Nov 2011
Location: Stuttgart, Germany
Let's put it this way: Open Source encoders are very good today. They can achieve a quality that is very close to the Commercial software tools. But for that to happen, you will really have to know what you are doing.

Compressor and its direct competitors are very much "plug and play" tools. You choose what you want as an output, and you get very decent quality. This quality can be achieved with e.g. ffmpeg in my opinion. The therein included x264 encoder does a pretty good job in the newest version. But you have to tweak all your parameters manually and get a 2-pass encoding running (which is not that easy in ffmpeg).

However, if you know that much about codecs and encoding, you can also dive into the manual adjustments of the commercial software and get even better results.

I might not know a lot about filming, but I know way too much about computers (including video codecs), and I can not get ffmpeg to give the same result as Compressor.

However (I've seen you in another thread): The quality of a nicely transcoded ffmpeg output and an awesomely done Compressor convert will look almost exactly the same if you upload them to youtube. Youtube will butcher your quality, and there will probably be no difference noticeable in most cases.

So, if you are making shorts for youtube, it comes down to: Do you have the time to make yourself knowledgable about codecs and tweak things a lot for each video to get good results? If yes, then ffmpeg is fine. If you want to save time (and time is money), spend the 40 euros on Compressor and life will become much easier.
floh is offline   1 Reply With Quote
Old May 25, 2012, 04:25 PM   #3
Quotenfrau
Thread Starter
macrumors 6502
 
Join Date: Mar 2011
Hi floh

Thank you. I don't tweak ffmpeg options, sometimes even use front-ends with default presents. That means I will achieve better results with point-and-click Compressor...

Quote:
Format and standards conversions

Convert any file from its source format to any other format — for example, convert from NTSC to PAL, SD to HD, or progressive to interlaced video. Or choose Reverse Telecine to convert 29.97-fps video to 23.98 fps. Compressor offers advanced optical flow analysis to produce format and standards conversions at exceptional image quality.
Compressor can do up scaling? SD to HD. Are the results significant better than for example VLC player? Can you write a little bit about that feature (comparing to Open Source alternatives).
Quotenfrau is offline   0 Reply With Quote
Old May 25, 2012, 04:42 PM   #4
floh
macrumors 6502
 
Join Date: Nov 2011
Location: Stuttgart, Germany
Quote:
Originally Posted by Quotenfrau View Post
Thank you. I don't tweak ffmpeg options, sometimes even use front-ends with default presents. That means I will achieve better results with point-and-click Compressor...
Yes, way better. This is where the strength of the commercial tools is at. Analyzing your video and figuring out the best way to compress it.

Quote:
Originally Posted by Quotenfrau View Post
Compressor can do up scaling? SD to HD. Are the results significant better than for example VLC player? Can you write a little bit about that feature (comparing to Open Source alternatives).
Yes, compressor can do upscaling. There is no premade option for it, but you can easily make one and then save it as your own preset to reuse. VLC player internally uses nothing but ffmpeg. The upscaling is okay, but you'd be better off actually using ffmpeg in the command line to get better results.

Upscaling might actually be a little easier with Open Source. It's not very usual (why would you upscale something?), so it is not done by any of the presets in Compressor (which automatically pick the pixel size). Whereas in Open Source, you can simply put in the size of the video and it will be sized that way.

So, to be honest: For me it is way easier to change something unusual in Open Source software because I adjust everything manually anyways. But I guess if you want to do something really regular, a self-made preset is also not that much effort.

Still, let me ask you: Why do you want to upscale a video? If you play it back on a device with lower resolution, it will be downscaled again. If you play it at (even slightly) higher resolution, it will be upscaled twice. This is only beneficial if your video is solely played on a device that has the exact resolution you put your video into. And even then, the difference will not be that big.

You wrote about resizing with VLC. If you do that, it will look exactly the same as if you just played back the original file with VLC. It will upscale the media to your screen resolution, and the algorithm is the same.

Don't upscale! By the way, if you are looking for a specific command line for ffmpeg, I know that tool pretty well and can probably help you with what you want to achieve...
floh is offline   0 Reply With Quote
Old May 25, 2012, 10:35 PM   #5
ppc_michael
Guest
 
Join Date: Apr 2005
Location: Los Angeles, CA
Send a message via AIM to ppc_michael
I use ffmpeg quite frequently. I can get excellent quality out of it, H.264 better than any commercial tool I've used, but as floh said you really have to be familiar with all the advanced settings to take advantage of it. I also use it for things like muxing streams together or splitting them apart, losslessly rewrapping to different container formats, things like that.

It's also great because, since it's a command line application, you can write scripts for batch operations.
ppc_michael is offline   2 Reply With Quote
Old May 26, 2012, 07:56 AM   #6
Quotenfrau
Thread Starter
macrumors 6502
 
Join Date: Mar 2011
Quote:
Originally Posted by ppc_michael View Post
but as floh said you really have to be familiar with all the advanced settings to take advantage of it.
How did you learn that? I didn't find a book about this topic on Amazon.

----------

Quote:
Originally Posted by floh View Post
Yes, compressor can do upscaling. There is no premade option for it, but you can easily make one and then save it as your own preset to reuse. VLC player internally uses nothing but ffmpeg. The upscaling is okay, but you'd be better off actually using ffmpeg in the command line to get better results.
I never upscale my videos because of the bad results. A video with low resolution is much better than an upscaled high resolution video.

I only thought that Apple maybe have some magic tricks

The ffmpeg results are not good.
Quotenfrau is offline   0 Reply With Quote
Old May 26, 2012, 11:08 AM   #7
nateo200
macrumors 68020
 
nateo200's Avatar
 
Join Date: Feb 2009
Location: Rendering......
Compressor 4 and HandBrake are very close....my default Compressor 4 will provide superior quality as it does all the advanced settings for you that in HandBrake you must know what you are doing.

I've been using HandBrake since its birth practically and with every encode I still learn what works and what doesn't work. If you want good encodes you have to use your brain vs with Compressor you set your bit rate (and max) limited set of resolutions and your good to go. HandBrake is awesome with getting files whittled down to very small sizes at very good quality as well as making 50GB Blu-ray discs look bloated when you start making 12, 8, 6 and 4GB files that look almost the same as the BluRay rip (though HD audio is another story). I have still have yet to figure out how people get entire Blu-ray movies down to 720p at 800mb's looking decent though...I saw a 720p encode of a 2hour movie at 511kbps with HE-AAC and it looked amazing....couldn't believe what media info and my mac were telling me were the specs!

As for upscaling...I tried it once just for curiosity and I actually saw some improvement but I thought it was kind of stupid.....the file size had to be allot bigger than before so I just kept it at DVD resolution.
__________________
-15" rMBP 2.4/8/256/650M, FCP X, AE CS5.5, PS CS6
-USB3 180GB SSD, Intensity Shuttle Thunderbolt
-iPhone 5c 32GB Blue and Samsung Galaxy Note 8.0
-Canon 550D, GoPro3 Black
nateo200 is offline   0 Reply With Quote
Old May 26, 2012, 11:22 AM   #8
floh
macrumors 6502
 
Join Date: Nov 2011
Location: Stuttgart, Germany
Quote:
Originally Posted by Quotenfrau View Post
How did you learn that? I didn't find a book about this topic on Amazon.
Ugh, I don't know how to answer that question. I personally learned it in a very long process. I am currently doing my PhD in theoretical physics. Linux computers and algorithms in general are my daily bread and have been for at least 8 years. And in Linux, ffmpeg is all we have.

I don't know if there is a good book or video out there about ffmpeg and how you can tweak it. For compression algorithms, a nice and easy way to start would be this video on codecs and how they work. And for ffmpeg, I basically read the manpage (you do know "man ffmpeg", right?).
Special things like the number of pixels should be dividable by 8 in each direction I learned along the way... The first few important things are:

1. Choose h264 as video codec.
2. Choose something like mp3 as an audio codec with about 192 kBit/s.
3. Definitely do a two-pass encoding.

Most of the rest is very dependent on your video file. By now, I mainly use ffmpeg to change containers, cherry pick audio tracks or do a quick batch-convert. I can tell you without even looking at the manpage that the command line for the second pass of said 3 points would be something like

Code:
ffmpeg -i Infile.mov -map 0:0 -map 0:1 -acodec mp3 -ab 192k -vcodec h264 -b 2000k -pass 2 -aspect 16:9 -s 1280x720 Outfile.mov
Now, I really did not check any of these options, but I'm pretty sure they work and I know them by heart now. Yet still, I bought Compressor (40 euros...) and only use ffmpeg to change a container or cherry pick an audio track by now. I do all my conversions in Compressor. I honestly suggest you do, too! It will save you so much time.

----------

Quote:
Originally Posted by nateo200 View Post
Compressor 4 and HandBrake are very close....
Handbrake is a very niftly little tool. It allows for many manual settings and is way easier to work with than ffmpeg on the command line.

However, Handbrake encodes with nothing else than ffmpeg too. It is just a frontend for this awesome tool, and the original will provide you with even more optional arguments.

Still, Handbrake is worth a look as a kind of "in between" solution if you don't want to spend the money on Compressor but want a more manageble GUI for your encoding. And the options you get there will leave you with decent results for sure, if you learn how to handle them.
floh is offline   -1 Reply With Quote
Old May 26, 2012, 04:44 PM   #9
ppc_michael
Guest
 
Join Date: Apr 2005
Location: Los Angeles, CA
Send a message via AIM to ppc_michael
Quote:
Originally Posted by Quotenfrau View Post
How did you learn that? I didn't find a book about this topic on Amazon.
It took me a long time. What makes it more difficult is that different codecs have different parameters you can set. I learned mostly by having something I needed to do, and Googling until I found the answer. For libx264 (popular H.264 encoder) I use this cheat sheet. Similarly, for VP8 (WebM's video format) this one is good.

Then generally for audio I compress that separately using neroaacenc for AAC (pairs with H.264 video) or oggenc for Ogg (for WebM), then mux the video and audio together with ffmpeg using -acodec copy -vcodec copy and -map to select the usable streams from each file.

---

Several years ago there was a contest on a compression forum to see who could get the cleanest encode of a video at the smallest bitrate/filesize. It was incredibly fun and I learned a ton from there, too. I don't see such contests any more, but if you can find one, that's where the really incredibly knowledgeable people share their secrets.
ppc_michael is offline   1 Reply With Quote
Old May 27, 2012, 03:17 AM   #10
Mr. Retrofire
macrumors 601
 
Mr. Retrofire's Avatar
 
Join Date: Mar 2010
Location: www.emiliana.cl
Quote:
Originally Posted by Quotenfrau View Post
Does Compressor offer better results than those Open Source encoding tools?
You should not use ffmpeg-based tools for the encoding of video content. The main reason is, that the libraries, which ffmpeg uses provide more encoding options (like x264) which can improve quality, or are necessary for professional encoders, and the ffmpeg command line options are very limited (the C/C++ interface has the same limitations).

I recommend, that you encode lossless compressed HuffYUV or Lagarith encoded files with the x264 command line tool, not with a ffmpeg-based tool. The x264 command line tool provides more options than ffmpeg.

I encode videos under Windows (via MeGUI) or OS X (via x264). MeGUI supports AviSynth, and AviSynth supports high quality filters (file format import plugins, decoders on so on), deinterlacers and other plugins. MeGUI can use all x264 options, which is necessary for professional encoding tasks. Windows has always the newest WMV codecs (Flip4Mac is a joke on OS X), supports high quality decoders (set your own decoder preferences), and allows you to define, which decoder your software should use (can result in better quality). You want to transcode video, so the decoded picture quality is also important.

Here are some filters, which i use with AviSynth:
FFT3DFilter (denoiser)
TDeint (high quality deinterlacer (with the correct settings))

I use also CCCP, if the Windows codecs and the AviSynth plugins are not able to decode the file. CCCP is an enhanced version of the ffdshow tryouts (comparable to Perian). I do not use ffdshow tryouts, because it has stability problems.

If you have questions regarding MeGUI/AviSynth/x264, use either doom9.org or doom10.org.

----------

Quote:
Originally Posted by floh View Post
Compressor...and you get very decent quality.
I doubt that. Compressor requires a very high bitrate for good results. x264 requires only 1/2 of the bitrate, and gives you very good results (with the correct settings). Btw, Warner Brothers use x264 to encode Blu-ray disks.

----------

Quote:
Originally Posted by floh View Post
Youtube will butcher your quality, and there will probably be no difference noticeable in most cases.
Only if you do ignore this guide:
Encoding Do's and Don'ts - YouTube Help
.
.
__________________

“Only the dead have seen the end of the war.”
-- Plato --
Mr. Retrofire is offline   0 Reply With Quote
Old May 27, 2012, 03:41 AM   #11
Mr. Retrofire
macrumors 601
 
Mr. Retrofire's Avatar
 
Join Date: Mar 2010
Location: www.emiliana.cl
Quote:
Originally Posted by floh View Post
Special things like the number of pixels should be dividable by 8 in each direction I learned along the way...
16, not 8. Why 16? Because 16 bytes (128-Bit) is the width of one MMX/SSE machine register. Video codecs use MMX/SSE for the acceleration of the decoding/encoding tasks.

----------

Quote:
Originally Posted by floh View Post
However, Handbrake encodes with nothing else than ffmpeg too. It is just a frontend for this awesome tool, and the original will provide you with even more optional arguments.
I think HandBrake does not use ffmpeg, if you select the x264 encoder. I think HandBrake uses libx264, otherwise it would be impossible to specify the advanced x264 options in the HandBrake GUI, because ffmpeg supports only a very limited set of the x264 encoding options.
__________________

“Only the dead have seen the end of the war.”
-- Plato --
Mr. Retrofire is offline   0 Reply With Quote
Old May 27, 2012, 03:56 AM   #12
Mr. Retrofire
macrumors 601
 
Mr. Retrofire's Avatar
 
Join Date: Mar 2010
Location: www.emiliana.cl
Quote:
Originally Posted by ppc_michael View Post
Several years ago there was a contest on a compression forum to see who could get the cleanest encode of a video at the smallest bitrate/filesize. It was incredibly fun and I learned a ton from there, too. I don't see such contests any more, but if you can find one, that's where the really incredibly knowledgeable people share their secrets.
You mean this:
http://compression.ru/video/codec_comparison/h264_2010/
?

Probably found via doom9.org or doom10.org. ;-)
__________________

“Only the dead have seen the end of the war.”
-- Plato --
Mr. Retrofire is offline   0 Reply With Quote
Old May 27, 2012, 03:47 PM   #13
ppc_michael
Guest
 
Join Date: Apr 2005
Location: Los Angeles, CA
Send a message via AIM to ppc_michael
Quote:
Originally Posted by Mr. Retrofire View Post
I recommend, that you encode lossless compressed HuffYUV or Lagarith encoded files with the x264 command line tool, not with a ffmpeg-based tool. The x264 command line tool provides more options than ffmpeg.
Oh wow, thanks! For some reason I never realized x264 had its own application.
ppc_michael is offline   0 Reply With Quote
Old May 27, 2012, 04:10 PM   #14
floh
macrumors 6502
 
Join Date: Nov 2011
Location: Stuttgart, Germany
Quote:
Originally Posted by Mr. Retrofire View Post
I think HandBrake does not use ffmpeg, if you select the x264 encoder. I think HandBrake uses libx264, otherwise it would be impossible to specify the advanced x264 options in the HandBrake GUI, because ffmpeg supports only a very limited set of the x264 encoding options.
I did not know that. I thought Handbrake just uses the ffmpeg frontend for the x264 library, mainly because as I recall I only have ffmpeg installed, not the x264 binary, yet I can still choose that option. But you are probably right, it wouldn't make sense to seperate the two options "ffmpeg" and "x264" if it didn't actually use the encoding binary directly.

Back in my pure Linux days, x264 still had some major issues for me (putting green instead of black in some places if I tweaked it too much, you might have seen it...) that's why I never used it excessively. They seem to have come a long way though.

Sorry about the 8 instead of 16. I actually wrote exactly what you did on machine registers, but decided it was over the top and deleted it. I left the 8 from my "8 Bit equals one Byte" explanation instead of the 16.

It's nice to know that there are still some video guys around on MacOSX that use the BSD Unix shells and not just clicky-pointy! I have to admit that I have switched over... I'm hardly ever starting up the terminal now outside my workplace.
floh is offline   0 Reply With Quote
Old May 29, 2012, 04:46 PM   #15
Mr. Retrofire
macrumors 601
 
Mr. Retrofire's Avatar
 
Join Date: Mar 2010
Location: www.emiliana.cl
Quote:
Originally Posted by floh View Post
Back in my pure Linux days, x264 still had some major issues for me (putting green instead of black in some places if I tweaked it too much, you might have seen it...) that's why I never used it excessively. They seem to have come a long way though.
The same problem existed also on Windows, within MeGUI, which uses x264 for H.264 encoding. The MeGUI developers explained in the ChangeLog, that this was a temporary problem within the x264-code. A few weeks later, an update fixed the problem on all platforms, which x264 supports.

Indeed! See:
Pegasys Licenses High-Quality H.264 Encoder from x264 LLC for Video Conversion Software
__________________

“Only the dead have seen the end of the war.”
-- Plato --
Mr. Retrofire is offline   0 Reply With Quote
Old Jun 2, 2012, 09:59 AM   #16
Skoopman
macrumors 6502
 
Join Date: Sep 2011
Location: Romania
Does anybody here have some kind of memory leak with ffmpeg? I used Handbrake and iFFmpeg, both increase my in active memory to the limit, than it pages out like crazy.
__________________
Macbook Air 13" | 1.8GHz | 4GB RAM | 128GB SSD
Time Capsule 2TB
Apple TV 3
Skoopman is offline   0 Reply With Quote

Reply
MacRumors Forums > Special Interests > Visual Media > Digital Video

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Similar Threads
thread Thread Starter Forum Replies Last Post
Can Compressor use .TS MPEG2 source files? ActionableMango Apple TV and Home Theater 8 Feb 15, 2014 09:22 AM
Resolved: ffmpeg, dvdauthor starikarp OS X 10.8 Mountain Lion 1 Jul 10, 2013 06:36 PM

Forum Jump

All times are GMT -5. The time now is 04:56 PM.

Mac Rumors | Mac | iPhone | iPhone Game Reviews | iPhone Apps

Mobile Version | Fixed | Fluid | Fluid HD
Copyright 2002-2013, MacRumors.com, LLC