H264SettingsProperty Struct
The settings for the H.264 codec in the output.
The parent of this entity is VideoCodecSettings.
Example
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import { aws_medialive as medialive } from 'aws-cdk-lib';
const h264SettingsProperty: medialive.CfnChannel.H264SettingsProperty = {
adaptiveQuantization: 'adaptiveQuantization',
afdSignaling: 'afdSignaling',
bitrate: 123,
bufFillPct: 123,
bufSize: 123,
colorMetadata: 'colorMetadata',
colorSpaceSettings: {
colorSpacePassthroughSettings: { },
rec601Settings: { },
rec709Settings: { },
},
entropyEncoding: 'entropyEncoding',
filterSettings: {
bandwidthReductionFilterSettings: {
postFilterSharpening: 'postFilterSharpening',
strength: 'strength',
},
temporalFilterSettings: {
postFilterSharpening: 'postFilterSharpening',
strength: 'strength',
},
},
fixedAfd: 'fixedAfd',
flickerAq: 'flickerAq',
forceFieldPictures: 'forceFieldPictures',
framerateControl: 'framerateControl',
framerateDenominator: 123,
framerateNumerator: 123,
gopBReference: 'gopBReference',
gopClosedCadence: 123,
gopNumBFrames: 123,
gopSize: 123,
gopSizeUnits: 'gopSizeUnits',
level: 'level',
lookAheadRateControl: 'lookAheadRateControl',
maxBitrate: 123,
minBitrate: 123,
minIInterval: 123,
minQp: 123,
numRefFrames: 123,
parControl: 'parControl',
parDenominator: 123,
parNumerator: 123,
profile: 'profile',
qualityLevel: 'qualityLevel',
qvbrQualityLevel: 123,
rateControlMode: 'rateControlMode',
scanType: 'scanType',
sceneChangeDetect: 'sceneChangeDetect',
slices: 123,
softness: 123,
spatialAq: 'spatialAq',
subgopLength: 'subgopLength',
syntax: 'syntax',
temporalAq: 'temporalAq',
timecodeBurninSettings: {
fontSize: 'fontSize',
position: 'position',
prefix: 'prefix',
},
timecodeInsertion: 'timecodeInsertion',
};
Properties
adaptiveQuantizationstringadaptive_quantizationstradaptiveQuantizationStringAdaptiveQuantizationstringAdaptiveQuantization*string#This allows intra-frame quantizers to vary to improve visual quality.
If afdSignaling is auto, the system tries to preserve the input AFD value (in cases where multiple AFD values are valid). If set to fixed, the AFD value is the value configured in the fixedAfd parameter.
This is required when the rate control mode is VBR or CBR. It isn't used for QVBR. In a Microsoft Smooth output group, each output must have a unique value when its bitrate is rounded down to the nearest multiple of 1000.
colorSpaceSettingsIResolvable | CfnChannel.H264ColorSpaceSettingsPropertycolor_space_settingstyping.Union[IResolvable, H264ColorSpaceSettingsProperty]colorSpaceSettingsIResolvableColorSpaceSettingsIResolvableColorSpaceSettingsinterface{}#entropyEncodingstringentropy_encodingstrentropyEncodingStringEntropyEncodingstringEntropyEncoding*string#Use cabac (must be in Main or High profile) or cavlc.
filterSettingsIResolvable | CfnChannel.H264FilterSettingsPropertyfilter_settingstyping.Union[IResolvable, H264FilterSettingsProperty]filterSettingsIResolvableFilterSettingsIResolvableFilterSettingsinterface{}#Valid only when afdSignaling is set to Fixed.
forceFieldPicturesstringforce_field_picturesstrforceFieldPicturesStringForceFieldPicturesstringForceFieldPictures*string#framerateControlstringframerate_controlstrframerateControlStringFramerateControlstringFramerateControl*string#notes
If you select "specified," the output video frame rate is determined by framerateNumerator and framerateDenominator. If you select "initializeFromSource," the output video frame rate is set equal to the input video frame rate of the first input.
framerateDenominatornumberframerate_denominatorint | floatframerateDenominatorNumberFramerateDenominatordoubleFramerateDenominator*float64#framerateNumeratornumberframerate_numeratorint | floatframerateNumeratorNumberFramerateNumeratordoubleFramerateNumerator*float64#The frame rate is a fraction, for example, 24000/1001 = 23.976 fps.
gopClosedCadencenumbergop_closed_cadenceint | floatgopClosedCadenceNumberGopClosedCadencedoubleGopClosedCadence*float64#In streaming applications, we recommend that you set this to 1 so that a decoder joining mid-stream will receive an IDR frame as quickly as possible. Setting this value to 0 will break output segmenting.
gopNumBFramesnumbergop_num_b_framesint | floatgopNumBFramesNumberGopNumBFramesdoubleGopNumBFrames*float64#The value must be greater than zero.
If seconds, the system converts the gopSize into a frame count at runtime.
lookAheadRateControlstringlook_ahead_rate_controlstrlookAheadRateControlStringLookAheadRateControlstringLookAheadRateControl*string#A value of low can decrease latency and memory usage, while high can produce better quality for certain content.
For VBR: Set the maximum bitrate in order to accommodate expected spikes in the complexity of the video.
minIIntervalnumbermin_i_intervalint | floatminIIntervalNumberMinIIntervaldoubleMinIInterval*float64#notes
This setting enforces separation between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting the I-interval. The normal cadence resumes for the next GOP. Note that the maximum GOP stretch = GOP size + Min-I-interval - 1.
numRefFramesnumbernum_ref_framesint | floatnumRefFramesNumberNumRefFramesdoubleNumRefFrames*float64#The encoder might use more than requested if you use B-frames or interlaced encoding.
notes
If "specified" is selected, the output video pixel aspect ratio is determined by parNumerator and parDenominator. If "initializeFromSource" is selected, the output pixels aspect ratio will be set equal to the input video pixel aspect ratio of the first input.
parDenominatornumberpar_denominatorint | floatparDenominatorNumberParDenominatordoubleParDenominator*float64#notes
- ENHANCED_QUALITY: Produces a slightly better video quality without an increase in the bitrate. Has an effect only when the Rate control mode is QVBR or CBR. If this channel is in a MediaLive multiplex, the value must be ENHANCED_QUALITY.
- STANDARD_QUALITY: Valid for any Rate control mode.
qvbrQualityLevelnumberqvbr_quality_levelint | floatqvbrQualityLevelNumberQvbrQualityLeveldoubleQvbrQualityLevel*float64#notes
This applies only when the rate control mode is QVBR. Set values for the QVBR quality level field and Max bitrate field that suit your most important viewing devices. Recommended values are: - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M.
rateControlModestringrate_control_modestrrateControlModeStringRateControlModestringRateControlMode*string#notes
QVBR: The quality will match the specified quality level except when it is constrained by the maximum bitrate. We recommend this if you or your viewers pay for bandwidth. VBR: The quality and bitrate vary, depending on the video complexity. We recommend this instead of QVBR if you want to maintain a specific average bitrate over the duration of the channel. CBR: The quality varies, depending on the video complexity. We recommend this only if you distribute your assets to devices that can't handle variable bitrates.
sceneChangeDetectstringscene_change_detectstrsceneChangeDetectStringSceneChangeDetectstringSceneChangeDetect*string#On: inserts I-frames when the scene change is detected. Off: does not force an I-frame when the scene change is detected.
notes
The number must be less than or equal to the number of macroblock rows for progressive pictures, and less than or equal to half the number of macroblock rows for interlaced pictures. This field is optional. If you don't specify a value, MediaLive chooses the number of slices based on the encode resolution.
Selects a quantizer matrix. Larger values reduce high-frequency content in the encoded image.
If set to dynamic, optimizes the number of B-frames used for each sub-GOP to improve visual quality.
timecodeBurninSettingsIResolvable | CfnChannel.TimecodeBurninSettingsPropertytimecode_burnin_settingstyping.Union[IResolvable, TimecodeBurninSettingsProperty]timecodeBurninSettingsIResolvableTimecodeBurninSettingsIResolvableTimecodeBurninSettingsinterface{}#timecodeInsertionstringtimecode_insertionstrtimecodeInsertionStringTimecodeInsertionstringTimecodeInsertion*string#disabled: don't include timecodes. picTimingSei: pass through picture timing SEI messages from the source specified in Timecode Config.