Tutorial: H.264 Profiles
Posted: Thu Jan 06, 2011 12:53 am
H.264 defines several profiles. Basically, they are sets of H.264 features/capabilities.
HandBrake's H.264 encoder, x264, supports the following profiles (from most to least compatible):
By default, x264 produces High Profile H.264. In order to get Main or Baseline Profile H.264, you need to disable some features.
Note: the HandBrake nightly builds now support constraining the maximum H.264 profile via a dedicated widget (thanks to the libx264 API).
HandBrake's H.264 encoder, x264, supports the following profiles (from most to least compatible):
- (Constrained) Baseline Profile
- Main Profile
- High Profile
- High 4:4:4 Predictive Profile (with some limitations)
By default, x264 produces High Profile H.264. In order to get Main or Baseline Profile H.264, you need to disable some features.
Note: the HandBrake nightly builds now support constraining the maximum H.264 profile via a dedicated widget (thanks to the libx264 API).
- For Main Profile, you need to disable the 8x8 Transform.
Moreover, you cannot use any of the cqm options (cqm, cqmfile, cqm4*/cqm8*), but they are disabled by default.Code: Select all
8x8dct=0
- For Baseline Profile, you need to disable B-Frames (set to 0), CABAC Entropy Coding, the 8x8 Transform and Weighted P-Frames.
You also can't use any cqm option.Code: Select all
bframes=0:cabac=0:8x8dct=0:weightp=0
- x264 only produces High 4:4:4 Predictive Profile H.264 when using its lossless mode.
Lossless H.264 is enabled when using a constant QP of 0; in HandBrake's 8-bit build of x264, a Constant Quality (CRF) of 0 is equivalent. - Very few decoders and/or video editing software support High 4:4:4 Predictive Profile H.264.
- It's only suitable for lossless intermediate encodes - i.e. if you're encoding content for watching it, it's not what you need.
A constant RF of 19 is generally considered transparent to the source.