H264 Presets

Live Quality Preset Configurations

Live Quality PresetsLIVE_STANDARDLIVE_HIGH_QUALITYLIVE_VERYHIGH_QUALITYLIVE_ULTRAHIGH_QUALITY
adaptiveQuantizationModeVARIANCEVARIANCEVARIANCEVARIANCE
adaptiveQuantizationStrength1111
adaptiveSpatialTransformTRUETRUETRUETRUE
bAdaptiveStrategyFASTFASTFASTFULL
bPyramidNORMALNORMALNORMALNORMAL
bframes3333
cabacTRUETRUETRUETRUE
encodingModeSINGLE_PASSSINGLE_PASSSINGLE_PASSTWO_PASS
fastSkipDetectionPFramesTRUETRUETRUETRUE
macroblockTreeRatecontrolTRUETRUETRUETRUE
mixedReferencesFALSETRUETRUETRUE
motionEstimationMethodHEXHEXHEXUMH
mvPredictionModeSPATIALSPATIALSPATIALAUTO
mvSearchRangeMax16161616
nalHrdNONENONENONENONE
partitions"I4X4,I8X8,P8X8,B8X8""I4X4,I8X8,P8X8,B8X8""I4X4,I8X8,P8X8,B8X8""I4X4,I8X8,P8X8,B8X8"
profileHIGHHIGHHIGHHIGH
rcLookahead20304050
refFrames2235
sceneCutThreshold0000
subMeQPEL4RD_IPRD_ALLRD_REF_IP
trellisENABLED_FINAL_MBENABLED_FINAL_MBENABLED_FINAL_MBENABLED_FINAL_MB
weightedPredictionBFramesTRUETRUETRUETRUE
weightedPredictionPFramesSIMPLESIMPLESMARTSMART

- means that the default value of the codec configuration is used. Please see the API reference for the respective value.


Live Low Latency Preset Configurations

Live Low Latency PresetsLIVE_LOW_LATENCYLIVE_LOWER_LATENCYLIVE_VERYLOW_LATENCY
adaptiveQuantizationModeVARIANCEVARIANCEDISABLED
adaptiveQuantizationStrength110
adaptiveSpatialTransformTRUETRUEFALSE
bAdaptiveStrategyFASTFASTNONE
bPyramidNORMALNORMALNORMAL
bframes330
cabacTRUETRUEFALSE
encodingModeSINGLE_PASSSINGLE_PASSSINGLE_PASS
fastSkipDetectionPFramesTRUETRUETRUE
macroblockTreeRatecontrolTRUEFALSEFALSE
mixedReferencesFALSEFALSEFALSE
motionEstimationMethodHEXDIADIA
mvPredictionModeSPATIALSPATIALSPATIAL
mvSearchRangeMax161616
nalHrdNONENONENONE
partitions"I4X4,I8X8,P8X8,B8X8""I4X4,I8X8"NONE
profileHIGHHIGHBASELINE
rcLookahead1000
refFrames111
sceneCutThreshold000
subMeSATDSADFULLPEL
trellisDISABLEDDISABLEDDISABLED
weightedPredictionBFramesTRUETRUEFALSE
weightedPredictionPFramesSIMPLESIMPLEDISABLED

- means that the default value of the codec configuration is used. Please see the API reference for the respective value.

Conformance with H264 Profiles

The majority of the profiles listed above set the H264 profile to HIGH, and use codec capabilities that target decoders that support this profile. The H264 High profile is by far the most common and has been widely supported for many years.

If your application requires the use of lower profiles, such as BASELINE or MAIN, you will need to overwrite some of the codec configuration parameters after applying the preset. Note however that the output quality may be reduced in doing so, and file sizes and bandwidth requirements may increase.

To set the profile to MAIN

  • Overwrite adaptiveSpatialTransform to False

To set the profile to BASELINE

  • Overwrite adaptiveSpatialTransform to False
  • Overwrite bFrames to 0
  • Overwrite cabac to False
  • Overwrite weightedPredictionPFrames to DISABLED

Conversely, if your selected preset sets the profile to MAIN and you want to ensure that the output uses HIGH, you can make a simple change:

To force the profile to HIGH

  • Overwrite adaptiveSpatialTransform to True