Page 1 of 1

Tutorial: H.264 Profiles

Posted: Thu Jan 06, 2011 12:53 am
by Rodeo
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):
  • (Constrained) Baseline Profile
  • Main Profile
  • High Profile
  • High 4:4:4 Predictive Profile (with some limitations)
Some devices (or software decoders) only support Baseline or Baseline and Main profiles. Most decoders don't support High 4:4:4 Predictive Profile.

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
Moving on to High 4:4:4 Predictive Profile:
  • 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.