I've used Handbrake for awhile, and I've just had a look at the latest version of VidCoder.
Both have settings for Normal, Universal, and High Profile presets, as well as other device-specific ones that are pretty self-explanatory.
I've looked at this, https://trac.handbrake.fr/wiki/BuiltInPresets, which gives technical explanations, but was does this generally mean in terms of file size, output quality, etc.?
Could someone, please, in general terms, explain the difference among Normal, Universal, and High Profile?
Thanks very much.
+ Reply to Thread
Results 1 to 10 of 10
-
Lenovo ThinkStation P520, Xeon W2135; Win10Pro x64, 64Gb RAM; RadeonPro WX7100W; NEC PA301W, NEC PA272W, and Eizo MX270W.
-
In general terms it means fast, medium, slower for conversion speed; and compression/quality wise it's low, medium, better
These are basically tradeoffs for conversion speed and quality, and ensuring device compatiblity
"universal" uses Baseline profile, which means no CABAC, no b-frames. It's a lower compression format suitable for older devices. It means lower quality at a given bitrate or filesize. It's a basically "dumbed down" version because some devices aren't powerful enough to play more advanced features
"normal" uses Main profile, which means CABAC and b-frames , but uses "very fast" settings for x264, which makes some compromises on compression and quality for the benefit of conversion speed
"high" uses High profile, and "medium" x264 settings . It allows for I4x4 blocks (smaller macroblocks for coding efficiency on I frames), custom quant matrices. -
That's a pretty good explanation but the profiles don't really sacrifice quality. Quality is still controlled by the CRF setting. The profiles control the efficiency of the encoder in lieu of using the advanced settings yourself.
High will take longer but give you a smaller file for the same quality and older devices might not be able to decode it properly. Unless you have some really old devices that will be used for playback (more than 3 or 4 years) then there's really not much reason to use Universal since most "modern" devices support at least Main. Most any devices in the last year or two will support High. -
CRF is only a "rough" estimate of "quality" .
The profiles are there to limit some features , that some chipsets do not have support for
More precisely, using baseline vs high will sacrifice quality/filesize or compression ratio. So filesize will be larger at a given CRF if you use a baseline profile
The fact is you will usually have both lower subjective quality with baseline at a given CRF, along with a higher filesize. It's easy to demonstrate this, and I've done 100's of tests that confirm this across dozens of different genres/sources. But if you use low CRF values or low quantizers, then the quality difference might not be visible right away -
The quality at a given CRF value isn't necessarily the same when using different x264 speed presets, although you might need to compare a very fast preset with a slower one to see any difference, but given the different Handbrake presets don't use the same x264 speed presets by default there's no guarantee the same CRF value will produce exactly the same quality for each Handbrake preset.
I don't have the latest Handbrake/Vidcoder installed but in the past Handbrake's High Profile preset (default settings) uses the default x264 encoder settings while setting High Profile, Level 4.1. Unless you have a reason not to, I'd probably use it as the other Handbrake presets use less efficient encoder settings to some degree. You can still change the x264 speed preset under the video tab, and I mostly use the Film tuning (it should retain a bit more fine detail than no tuning) although the other tunings (animation and grain) can be used when appropriate.
As smitbret said, High Profile Level 4.1 support is fairly universal for hardware players these days, but you can always change it to a lower level if you're using a player that requires it. Aside from selecting your preferred CRF value, there's generally no need to mess with any of x264's other (Advanced) settings. The Handbrake High Profile preset enables the Decomb filter by default and uses a variable output frame rate. I don't use Handbrake much but I've never understood why none of the other Handbrake presets enable it. Surely if you're encoding an interlaced DVD and it requires de-interlacing, it'd require de-interlacing regardless of the Handbrake preset being used? Anyway, enabling the correct detelecine or decomb or de-interlacing filter if required is probably another topic. -
I use a custom preset in VidCoder, based on the High Profile Level 4.1 and CRF 18, but with constant frame rate instead of the variable frame rate. Testing in my one portable device tells me that it can handle this custom preset without issues, and I'm not too worried about size or speed of the encoding. If you're after the best visual quality, I'd suggest experimenting with the High Profile, or a variation of it, and see if the results play well in all your equipment.
Everyone has different priorities however, and you may place more weight on output size or time taken than me. -
Thanks for the replies so far. They're pretty complicated, but I think I get the general idea.
Lenovo ThinkStation P520, Xeon W2135; Win10Pro x64, 64Gb RAM; RadeonPro WX7100W; NEC PA301W, NEC PA272W, and Eizo MX270W. -
The general rule of thumb is to pick a CRF value that gives you the quality you prefer (CRF18 is roughly where the x264 encoder is considered to be "transparent"), select an appropriate x264 Tuning and then use the slowest x264 speed preset you can stand. The default speed preset is Medium. I generally use either Medium or Slow myself. Other than that, sticking with the default x264 advanced settings is generally a good idea, and for HandBrake, that's it's High Profile preset.
In a perfect world the manufacturer of a device capable of playing h264 video would specify the maximum profile and level it supports. Most do. Setting an appropriate profile and level should output video conforming to that level (some encoder restrictions are changed accordingly) and if a device supports that level, it should have no problem playing the video. High Profile, Level 4.1 support is pretty standard these days. You might need to use a lower level for some older devices or for budget portable players, but if that's not an issue I'd stick to High Profile, Level 4.1. Even the video decoder in my Android smartphone, which is about three years old, happily plays High Profile, Level 4.1 up to 1080p. -
It seems that x264 cmd line always sets proper level (based on video specs) or very close to keep specs in ball park , just profile (main, high) needs to be specified (if not I guess it throws high in there). It kind of follows specs, it seems to.
Never tested that thoroughly but kind of not bothering to set it, relying on that encoder. 320x180 resolution video, just to set example:
x264 --crf 20 --profile main --vbv-bufsize 1000 --vbv-maxrate 1000 --outputout.264 input.avs
outputs main@L2.0, but if buffers are set to 10000 or resolution is HD it sets it to main @L4.0 -
I guess I should have mentioned at the outset that I'm not talking about any major-league cinema extravaganzas here.
Generally speaking, what I'd like to achieve is getting the best quality with the smallest file size for little movies taken with my Sony RX100.
The originals are usually shot using these settings:
Video: MPEG4 Video (H264) 1280x720 25fps 5956kbps [V: Video Media Handler (h264 main L4.0, yuv420p, 1280x720, 5956 kb/s)]
Audio: AAC 48000Hz stereo 128kbps [A: Sound Media Handler (aac lc, 48000 Hz, stereo, 128 kb/s)]
The movies are then streamed over the Internet from my webspace using an older version of JW Player using Flash.
Here's an example (sorry, it's a movie of my cats).
http://edu-net.net/media/balcony/
Thanks for all the help so far.
Please don't hate me ...Lenovo ThinkStation P520, Xeon W2135; Win10Pro x64, 64Gb RAM; RadeonPro WX7100W; NEC PA301W, NEC PA272W, and Eizo MX270W.