class Aws::MediaLive::Types::H264Settings

H264 Settings

@note When making an API call, you may pass H264Settings

data as a hash:

    {
      adaptive_quantization: "AUTO", # accepts AUTO, HIGH, HIGHER, LOW, MAX, MEDIUM, OFF
      afd_signaling: "AUTO", # accepts AUTO, FIXED, NONE
      bitrate: 1,
      buf_fill_pct: 1,
      buf_size: 1,
      color_metadata: "IGNORE", # accepts IGNORE, INSERT
      color_space_settings: {
        color_space_passthrough_settings: {
        },
        rec_601_settings: {
        },
        rec_709_settings: {
        },
      },
      entropy_encoding: "CABAC", # accepts CABAC, CAVLC
      filter_settings: {
        temporal_filter_settings: {
          post_filter_sharpening: "AUTO", # accepts AUTO, DISABLED, ENABLED
          strength: "AUTO", # accepts AUTO, STRENGTH_1, STRENGTH_2, STRENGTH_3, STRENGTH_4, STRENGTH_5, STRENGTH_6, STRENGTH_7, STRENGTH_8, STRENGTH_9, STRENGTH_10, STRENGTH_11, STRENGTH_12, STRENGTH_13, STRENGTH_14, STRENGTH_15, STRENGTH_16
        },
      },
      fixed_afd: "AFD_0000", # accepts AFD_0000, AFD_0010, AFD_0011, AFD_0100, AFD_1000, AFD_1001, AFD_1010, AFD_1011, AFD_1101, AFD_1110, AFD_1111
      flicker_aq: "DISABLED", # accepts DISABLED, ENABLED
      force_field_pictures: "DISABLED", # accepts DISABLED, ENABLED
      framerate_control: "INITIALIZE_FROM_SOURCE", # accepts INITIALIZE_FROM_SOURCE, SPECIFIED
      framerate_denominator: 1,
      framerate_numerator: 1,
      gop_b_reference: "DISABLED", # accepts DISABLED, ENABLED
      gop_closed_cadence: 1,
      gop_num_b_frames: 1,
      gop_size: 1.0,
      gop_size_units: "FRAMES", # accepts FRAMES, SECONDS
      level: "H264_LEVEL_1", # accepts H264_LEVEL_1, H264_LEVEL_1_1, H264_LEVEL_1_2, H264_LEVEL_1_3, H264_LEVEL_2, H264_LEVEL_2_1, H264_LEVEL_2_2, H264_LEVEL_3, H264_LEVEL_3_1, H264_LEVEL_3_2, H264_LEVEL_4, H264_LEVEL_4_1, H264_LEVEL_4_2, H264_LEVEL_5, H264_LEVEL_5_1, H264_LEVEL_5_2, H264_LEVEL_AUTO
      look_ahead_rate_control: "HIGH", # accepts HIGH, LOW, MEDIUM
      max_bitrate: 1,
      min_i_interval: 1,
      num_ref_frames: 1,
      par_control: "INITIALIZE_FROM_SOURCE", # accepts INITIALIZE_FROM_SOURCE, SPECIFIED
      par_denominator: 1,
      par_numerator: 1,
      profile: "BASELINE", # accepts BASELINE, HIGH, HIGH_10BIT, HIGH_422, HIGH_422_10BIT, MAIN
      quality_level: "ENHANCED_QUALITY", # accepts ENHANCED_QUALITY, STANDARD_QUALITY
      qvbr_quality_level: 1,
      rate_control_mode: "CBR", # accepts CBR, MULTIPLEX, QVBR, VBR
      scan_type: "INTERLACED", # accepts INTERLACED, PROGRESSIVE
      scene_change_detect: "DISABLED", # accepts DISABLED, ENABLED
      slices: 1,
      softness: 1,
      spatial_aq: "DISABLED", # accepts DISABLED, ENABLED
      subgop_length: "DYNAMIC", # accepts DYNAMIC, FIXED
      syntax: "DEFAULT", # accepts DEFAULT, RP2027
      temporal_aq: "DISABLED", # accepts DISABLED, ENABLED
      timecode_insertion: "DISABLED", # accepts DISABLED, PIC_TIMING_SEI
    }

@!attribute [rw] adaptive_quantization

Enables or disables adaptive quantization, which is a technique
MediaLive can apply to video on a frame-by-frame basis to produce
more compression without losing quality. There are three types of
adaptive quantization: flicker, spatial, and temporal. Set the field
in one of these ways: Set to Auto. Recommended. For each type of AQ,
MediaLive will determine if AQ is needed, and if so, the appropriate
strength. Set a strength (a value other than Auto or Disable). This
strength will apply to any of the AQ fields that you choose to
enable. Set to Disabled to disable all types of adaptive
quantization.
@return [String]

@!attribute [rw] afd_signaling

Indicates that AFD values will be written into the output stream. If
afdSignaling is "auto", the system will try to preserve the input
AFD value (in cases where multiple AFD values are valid). If set to
"fixed", the AFD value will be the value configured in the
fixedAfd parameter.
@return [String]

@!attribute [rw] bitrate

Average bitrate in bits/second. Required when the rate control mode
is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each
output must have a unique value when its bitrate is rounded down to
the nearest multiple of 1000.
@return [Integer]

@!attribute [rw] buf_fill_pct

Percentage of the buffer that should initially be filled (HRD buffer
model).
@return [Integer]

@!attribute [rw] buf_size

Size of buffer (HRD buffer model) in bits.
@return [Integer]

@!attribute [rw] color_metadata

Includes colorspace metadata in the output.
@return [String]

@!attribute [rw] color_space_settings

Color Space settings
@return [Types::H264ColorSpaceSettings]

@!attribute [rw] entropy_encoding

Entropy encoding mode. Use cabac (must be in Main or High profile)
or cavlc.
@return [String]

@!attribute [rw] filter_settings

Optional filters that you can apply to an encode.
@return [Types::H264FilterSettings]

@!attribute [rw] fixed_afd

Four bit AFD value to write on all frames of video in the output
stream. Only valid when afdSignaling is set to 'Fixed'.
@return [String]

@!attribute [rw] flicker_aq

Flicker AQ makes adjustments within each frame to reduce flicker or
'pop' on I-frames. The value to enter in this field depends on the
value in the Adaptive quantization field: If you have set the
Adaptive quantization field to Auto, MediaLive ignores any value in
this field. MediaLive will determine if flicker AQ is appropriate
and will apply the appropriate strength. If you have set the
Adaptive quantization field to a strength, you can set this field to
Enabled or Disabled. Enabled: MediaLive will apply flicker AQ using
the specified strength. Disabled: MediaLive won't apply flicker AQ.
If you have set the Adaptive quantization to Disabled, MediaLive
ignores any value in this field and doesn't apply flicker AQ.
@return [String]

@!attribute [rw] force_field_pictures

This setting applies only when scan type is "interlaced." It
controls whether coding is performed on a field basis or on a frame
basis. (When the video is progressive, the coding is always
performed on a frame basis.) enabled: Force MediaLive to code on a
field basis, so that odd and even sets of fields are coded
separately. disabled: Code the two sets of fields separately (on a
field basis) or together (on a frame basis using PAFF), depending on
what is most appropriate for the content.
@return [String]

@!attribute [rw] framerate_control

This field indicates how the output video frame rate is specified.
If "specified" is selected then the output video frame rate is
determined by framerateNumerator and framerateDenominator, else if
"initializeFromSource" is selected then the output video frame
rate will be set equal to the input video frame rate of the first
input.
@return [String]

@!attribute [rw] framerate_denominator

Framerate denominator.
@return [Integer]

@!attribute [rw] framerate_numerator

Framerate numerator - framerate is a fraction, e.g. 24000 / 1001 =
23.976 fps.
@return [Integer]

@!attribute [rw] gop_b_reference

If enabled, use reference B frames for GOP structures that have B
frames > 1.
@return [String]

@!attribute [rw] gop_closed_cadence

Frequency of closed GOPs. In streaming applications, it is
recommended that this be set to 1 so a decoder joining mid-stream
will receive an IDR frame as quickly as possible. Setting this value
to 0 will break output segmenting.
@return [Integer]

@!attribute [rw] gop_num_b_frames

Number of B-frames between reference frames.
@return [Integer]

@!attribute [rw] gop_size

GOP size (keyframe interval) in units of either frames or seconds
per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an
integer and must be greater than or equal to 1. If gopSizeUnits is
seconds, gopSize must be greater than 0, but need not be an integer.
@return [Float]

@!attribute [rw] gop_size_units

Indicates if the gopSize is specified in frames or seconds. If
seconds the system will convert the gopSize into a frame count at
run time.
@return [String]

@!attribute [rw] level

H.264 Level.
@return [String]

@!attribute [rw] look_ahead_rate_control

Amount of lookahead. A value of low can decrease latency and memory
usage, while high can produce better quality for certain content.
@return [String]

@!attribute [rw] max_bitrate

For QVBR: See the tooltip for Quality level For VBR: Set the maximum
bitrate in order to accommodate expected spikes in the complexity of
the video.
@return [Integer]

@!attribute [rw] min_i_interval

Only meaningful if sceneChangeDetect is set to enabled. Defaults to
5 if multiplex rate control is used. 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 and/or stretched to the scene
change I-frame. GOP stretch requires enabling lookahead as well as
setting I-interval. The normal cadence resumes for the next GOP.
Note: Maximum GOP stretch = GOP size + Min-I-interval - 1
@return [Integer]

@!attribute [rw] num_ref_frames

Number of reference frames to use. The encoder may use more than
requested if using B-frames and/or interlaced encoding.
@return [Integer]

@!attribute [rw] par_control

This field indicates how the output pixel aspect ratio is specified.
If "specified" is selected then the output video pixel aspect
ratio is determined by parNumerator and parDenominator, else if
"initializeFromSource" is selected then the output pixsel aspect
ratio will be set equal to the input video pixel aspect ratio of the
first input.
@return [String]

@!attribute [rw] par_denominator

Pixel Aspect Ratio denominator.
@return [Integer]

@!attribute [rw] par_numerator

Pixel Aspect Ratio numerator.
@return [Integer]

@!attribute [rw] profile

H.264 Profile.
@return [String]

@!attribute [rw] quality_level

Leave as STANDARD\_QUALITY or choose a different value (which might
result in additional costs to run the channel). - 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.
@return [String]

@!attribute [rw] qvbr_quality_level

Controls the target quality for the video encode. Applies only when
the rate control mode is QVBR. You can set a target quality or you
can let MediaLive determine the best quality. To set a target
quality, enter values in the QVBR quality level field and the Max
bitrate field. Enter values 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 To let MediaLive decide, leave the QVBR quality level field
empty, and in Max bitrate enter the maximum rate you want in the
video. For more information, see the section called "Video - rate
control mode" in the MediaLive user guide
@return [Integer]

@!attribute [rw] rate_control_mode

Rate control mode. QVBR: Quality will match the specified quality
level except when it is constrained by the maximum bitrate.
Recommended if you or your viewers pay for bandwidth. VBR: Quality
and bitrate vary, depending on the video complexity. Recommended
instead of QVBR if you want to maintain a specific average bitrate
over the duration of the channel. CBR: Quality varies, depending on
the video complexity. Recommended only if you distribute your assets
to devices that cannot handle variable bitrates. Multiplex: This
rate control mode is only supported (and is required) when the video
is being delivered to a MediaLive Multiplex in which case the rate
control configuration is controlled by the properties within the
Multiplex Program.
@return [String]

@!attribute [rw] scan_type

Sets the scan type of the output to progressive or top-field-first
interlaced.
@return [String]

@!attribute [rw] scene_change_detect

Scene change detection. - On: inserts I-frames when scene change is
detected. - Off: does not force an I-frame when scene change is
detected.
@return [String]

@!attribute [rw] slices

Number of slices per picture. 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; when no value is specified the encoder will
choose the number of slices based on encode resolution.
@return [Integer]

@!attribute [rw] softness

Softness. Selects quantizer matrix, larger values reduce
high-frequency content in the encoded image. If not set to zero,
must be greater than 15.
@return [Integer]

@!attribute [rw] spatial_aq

Spatial AQ makes adjustments within each frame based on spatial
variation of content complexity. The value to enter in this field
depends on the value in the Adaptive quantization field: If you have
set the Adaptive quantization field to Auto, MediaLive ignores any
value in this field. MediaLive will determine if spatial AQ is
appropriate and will apply the appropriate strength. If you have set
the Adaptive quantization field to a strength, you can set this
field to Enabled or Disabled. Enabled: MediaLive will apply spatial
AQ using the specified strength. Disabled: MediaLive won't apply
spatial AQ. If you have set the Adaptive quantization to Disabled,
MediaLive ignores any value in this field and doesn't apply spatial
AQ.
@return [String]

@!attribute [rw] subgop_length

If set to fixed, use gopNumBFrames B-frames per sub-GOP. If set to
dynamic, optimize the number of B-frames used for each sub-GOP to
improve visual quality.
@return [String]

@!attribute [rw] syntax

Produces a bitstream compliant with SMPTE RP-2027.
@return [String]

@!attribute [rw] temporal_aq

Temporal makes adjustments within each frame based on temporal
variation of content complexity. The value to enter in this field
depends on the value in the Adaptive quantization field: If you have
set the Adaptive quantization field to Auto, MediaLive ignores any
value in this field. MediaLive will determine if temporal AQ is
appropriate and will apply the appropriate strength. If you have set
the Adaptive quantization field to a strength, you can set this
field to Enabled or Disabled. Enabled: MediaLive will apply temporal
AQ using the specified strength. Disabled: MediaLive won't apply
temporal AQ. If you have set the Adaptive quantization to Disabled,
MediaLive ignores any value in this field and doesn't apply
temporal AQ.
@return [String]

@!attribute [rw] timecode_insertion

Determines how timecodes should be inserted into the video
elementary stream. - 'disabled': Do not include timecodes -
'picTimingSei': Pass through picture timing SEI messages from the
source specified in Timecode Config
@return [String]

@see docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/H264Settings AWS API Documentation

Constants

SENSITIVE