H264 Presets
VoD Quality Preset Configurations
VoD Quality Presets | VOD_STANDARD | VOD_QUALITY | VOD_HIGH_QUALITY |
---|---|---|---|
adaptiveQuantizationMode | VARIANCE | VARIANCE | VARIANCE |
adaptiveQuantizationStrength | 1 | 1 | 1 |
adaptiveSpatialTransform | FALSE | FALSE | TRUE |
bAdaptiveStrategy | FAST | FULL | FULL |
bPyramid | NORMAL | NORMAL | NORMAL |
bframes | 3 | 3 | 8 |
cabac | TRUE | TRUE | TRUE |
deblockAlpha | 0 | 0 | 0 |
deblockBeta | 0 | 0 | 0 |
encodingMode | TWO_PASS | THREE_PASS | THREE_PASS |
fastSkipDetectionPFrames | TRUE | TRUE | TRUE |
macroblockTreeRatecontrol | - | TRUE | TRUE |
mixedReferences | TRUE | TRUE | TRUE |
motionEstimationMethod | HEX | HEX | UMH |
mvPredictionMode | SPATIAL | SPATIAL | SPATIAL |
mvSearchRangeMax | 16 | 24 | 24 |
nalHrd | NONE | NONE | NONE |
partitions | "P8X8,B8X8,I8X8,I4X4" | "I4X4,I8X8,P8X8,B8X8,P4X4" | "I4X4,I8X8,P8X8,B8X8,P4X4" |
profile | MAIN | MAIN | HIGH |
psyRateDistortionOptimization | 1 | 1 | 1 |
psyTrellis | 0 | 0 | 0 |
quantizerCurveCompression | 0.6 | 0.6 | 0.6 |
rcLookahead | 40 | 60 | 60 |
refFrames | 3 | 4 | 16 |
sceneCutThreshold | 0 | 0 | 0 |
slices | - | 1 | 1 |
subMe | RD_ALL | RD_ALL | RD_REF_ALL |
trellis | ENABLED_FINAL_MB | ENABLED_ALL | ENABLED_ALL |
weightedPredictionBFrames | TRUE | TRUE | TRUE |
weightedPredictionPFrames | SMART | SMART | SMART |
-
means that the default value of the codec configuration is used. Please see the API reference for the respective value.
VoD Speed Preset Configurations
VoD Speed Presets | VOD_SPEED | VOD_HIGH_SPEED | VOD_VERYHIGH_SPEED | VOD_EXTRAHIGH_SPEED | VOD_SUPERHIGH_SPEED | VOD_ULTRAHIGH_SPEED |
---|---|---|---|---|---|---|
adaptiveQuantizationMode | VARIANCE | VARIANCE | VARIANCE | VARIANCE | VARIANCE | DISABLED |
adaptiveQuantizationStrength | 1 | 1 | 1 | 1 | 1 | 0 |
adaptiveSpatialTransform | TRUE | TRUE | TRUE | TRUE | TRUE | TRUE |
bAdaptiveStrategy | FAST | FAST | FAST | FAST | FAST | NONE |
bPyramid | NORMAL | NORMAL | NORMAL | NORMAL | NORMAL | NORMAL |
bframes | 3 | 3 | 3 | 3 | 3 | 0 |
cabac | TRUE | TRUE | TRUE | TRUE | TRUE | FALSE |
deblockAlpha | 0 | 0 | 0 | 0 | 0 | 0 |
deblockBeta | 0 | 0 | 0 | 0 | 0 | 0 |
encodingMode | SINGLE_PASS | SINGLE_PASS | SINGLE_PASS | SINGLE_PASS | SINGLE_PASS | SINGLE_PASS |
fastSkipDetectionPFrames | TRUE | TRUE | TRUE | TRUE | TRUE | TRUE |
macroblockTreeRatecontrol | TRUE | - | - | - | - | - |
mixedReferences | TRUE | TRUE | FALSE | FALSE | FALSE | FALSE |
motionEstimationMethod | HEX | HEX | HEX | HEX | DIA | DIA |
mvPredictionMode | SPATIAL | SPATIAL | SPATIAL | SPATIAL | SPATIAL | SPATIAL |
mvSearchRangeMax | 16 | 16 | 16 | 16 | 16 | 16 |
nalHrd | NONE | NONE | NONE | NONE | NONE | NONE |
partitions | "I4X4,I8X8,P8X8,B8X8" | "P8X8,B8X8,I8X8,I4X4" | "P8X8,B8X8,I8X8,I4X4" | "P8X8,B8X8,I8X8,I4X4" | "I8X8,I4X4" | NONE |
profile | HIGH | HIGH | HIGH | HIGH | HIGH | HIGH |
psyRateDistortionOptimization | 1 | 1 | 1 | 1 | 1 | 1 |
psyTrellis | 0 | 0 | 0 | 0 | 0 | 0 |
quantizerCurveCompression | 0.6 | 0.6 | 0.6 | 0.6 | 0.6 | 0.6 |
rcLookahead | 50 | 30 | 10 | 20 | 0 | 0 |
refFrames | 5 | 2 | 1 | 2 | 1 | 1 |
sceneCutThreshold | 0 | 0 | 0 | 0 | 0 | 0 |
slices | 1 | - | - | - | - | - |
subMe | RD_IP | RD_IP | SATD | QPEL4 | SAD | FULLPEL |
trellis | ENABLED_ALL | ENABLED_FINAL_MB | DISABLED | ENABLED_FINAL_MB | DISABLED | DISABLED |
weightedPredictionBFrames | TRUE | TRUE | TRUE | TRUE | TRUE | FALSE |
weightedPredictionPFrames | SMART | SIMPLE | SIMPLE | SIMPLE | SIMPLE | DISABLED |
-
means that the default value of the codec configuration is used. Please see the API reference for the respective value.
VoD Hardware Preset Configurations
VoD Speed Presets | VOD_HARDWARE_SHORTFORM |
---|---|
adaptiveQuantizationMode | - |
adaptiveQuantizationStrength | - |
adaptiveSpatialTransform | - |
bAdaptiveStrategy | FULL |
bPyramid | NORMAL |
bframes | 3 |
cabac | TRUE |
deblockAlpha | - |
deblockBeta | - |
encodingMode | - |
fastSkipDetectionPFrames | - |
macroblockTreeRatecontrol | - |
mixedReferences | - |
motionEstimationMethod | UMH |
mvPredictionMode | AUTO |
mvSearchRangeMax | 16 |
nalHrd | NONE |
partitions | "ALL" |
profile | MAIN |
psyRateDistortionOptimization | - |
psyTrellis | - |
quantizerCurveCompression | - |
rcLookahead | 50 |
refFrames | 5 |
sceneCutThreshold | - |
slices | - |
subMe | RD_REF_IP |
trellis | ENABLED_FINAL_MB |
weightedPredictionBFrames | - |
weightedPredictionPFrames | - |
-
means that the hardware encoder doesn't support this configuration.
Live Quality Preset Configurations
Live Quality Presets | LIVE_STANDARD | LIVE_HIGH_QUALITY | LIVE_VERYHIGH_QUALITY | LIVE_ULTRAHIGH_QUALITY |
---|---|---|---|---|
adaptiveQuantizationMode | VARIANCE | VARIANCE | VARIANCE | VARIANCE |
adaptiveQuantizationStrength | 1 | 1 | 1 | 1 |
adaptiveSpatialTransform | TRUE | TRUE | TRUE | TRUE |
bAdaptiveStrategy | FAST | FAST | FAST | FULL |
bPyramid | NORMAL | NORMAL | NORMAL | NORMAL |
bframes | 3 | 3 | 3 | 3 |
cabac | TRUE | TRUE | TRUE | TRUE |
encodingMode | SINGLE_PASS | SINGLE_PASS | SINGLE_PASS | TWO_PASS |
fastSkipDetectionPFrames | TRUE | TRUE | TRUE | TRUE |
macroblockTreeRatecontrol | TRUE | TRUE | TRUE | TRUE |
mixedReferences | FALSE | TRUE | TRUE | TRUE |
motionEstimationMethod | HEX | HEX | HEX | UMH |
mvPredictionMode | SPATIAL | SPATIAL | SPATIAL | AUTO |
mvSearchRangeMax | 16 | 16 | 16 | 16 |
nalHrd | NONE | NONE | NONE | NONE |
partitions | "I4X4,I8X8,P8X8,B8X8" | "I4X4,I8X8,P8X8,B8X8" | "I4X4,I8X8,P8X8,B8X8" | "I4X4,I8X8,P8X8,B8X8" |
profile | HIGH | HIGH | HIGH | HIGH |
rcLookahead | 20 | 30 | 40 | 50 |
refFrames | 2 | 2 | 3 | 5 |
sceneCutThreshold | 0 | 0 | 0 | 0 |
subMe | QPEL4 | RD_IP | RD_ALL | RD_REF_IP |
trellis | ENABLED_FINAL_MB | ENABLED_FINAL_MB | ENABLED_FINAL_MB | ENABLED_FINAL_MB |
weightedPredictionBFrames | TRUE | TRUE | TRUE | TRUE |
weightedPredictionPFrames | SIMPLE | SIMPLE | SMART | SMART |
-
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 Presets | LIVE_LOW_LATENCY | LIVE_LOWER_LATENCY | LIVE_VERYLOW_LATENCY |
---|---|---|---|
adaptiveQuantizationMode | VARIANCE | VARIANCE | DISABLED |
adaptiveQuantizationStrength | 1 | 1 | 0 |
adaptiveSpatialTransform | TRUE | TRUE | FALSE |
bAdaptiveStrategy | FAST | FAST | NONE |
bPyramid | NORMAL | NORMAL | NORMAL |
bframes | 3 | 3 | 0 |
cabac | TRUE | TRUE | FALSE |
encodingMode | SINGLE_PASS | SINGLE_PASS | SINGLE_PASS |
fastSkipDetectionPFrames | TRUE | TRUE | TRUE |
macroblockTreeRatecontrol | TRUE | FALSE | FALSE |
mixedReferences | FALSE | FALSE | FALSE |
motionEstimationMethod | HEX | DIA | DIA |
mvPredictionMode | SPATIAL | SPATIAL | SPATIAL |
mvSearchRangeMax | 16 | 16 | 16 |
nalHrd | NONE | NONE | NONE |
partitions | "I4X4,I8X8,P8X8,B8X8" | "I4X4,I8X8" | NONE |
profile | HIGH | HIGH | BASELINE |
rcLookahead | 10 | 0 | 0 |
refFrames | 1 | 1 | 1 |
sceneCutThreshold | 0 | 0 | 0 |
subMe | SATD | SAD | FULLPEL |
trellis | DISABLED | DISABLED | DISABLED |
weightedPredictionBFrames | TRUE | TRUE | FALSE |
weightedPredictionPFrames | SIMPLE | SIMPLE | DISABLED |
-
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
MAIN
- Overwrite
adaptiveSpatialTransform
to False
To set the profile to BASELINE
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
HIGH
- Overwrite
adaptiveSpatialTransform
to True
Updated 11 months ago