You are viewing documentation for version 2 of the AWS SDK for Ruby. Version 3 documentation can be found here.

Class: Aws::MediaConvert::Types::Mpeg2Settings

Inherits:
Struct
  • Object
show all
Defined in:
(unknown)

Overview

Note:

When passing Mpeg2Settings as input to an Aws::Client method, you can use a vanilla Hash:

{
  adaptive_quantization: "OFF", # accepts OFF, LOW, MEDIUM, HIGH
  bitrate: 1,
  codec_level: "AUTO", # accepts AUTO, LOW, MAIN, HIGH1440, HIGH
  codec_profile: "MAIN", # accepts MAIN, PROFILE_422
  dynamic_sub_gop: "ADAPTIVE", # accepts ADAPTIVE, STATIC
  framerate_control: "INITIALIZE_FROM_SOURCE", # accepts INITIALIZE_FROM_SOURCE, SPECIFIED
  framerate_conversion_algorithm: "DUPLICATE_DROP", # accepts DUPLICATE_DROP, INTERPOLATE, FRAMEFORMER
  framerate_denominator: 1,
  framerate_numerator: 1,
  gop_closed_cadence: 1,
  gop_size: 1.0,
  gop_size_units: "FRAMES", # accepts FRAMES, SECONDS
  hrd_buffer_initial_fill_percentage: 1,
  hrd_buffer_size: 1,
  interlace_mode: "PROGRESSIVE", # accepts PROGRESSIVE, TOP_FIELD, BOTTOM_FIELD, FOLLOW_TOP_FIELD, FOLLOW_BOTTOM_FIELD
  intra_dc_precision: "AUTO", # accepts AUTO, INTRA_DC_PRECISION_8, INTRA_DC_PRECISION_9, INTRA_DC_PRECISION_10, INTRA_DC_PRECISION_11
  max_bitrate: 1,
  min_i_interval: 1,
  number_b_frames_between_reference_frames: 1,
  par_control: "INITIALIZE_FROM_SOURCE", # accepts INITIALIZE_FROM_SOURCE, SPECIFIED
  par_denominator: 1,
  par_numerator: 1,
  quality_tuning_level: "SINGLE_PASS", # accepts SINGLE_PASS, MULTI_PASS
  rate_control_mode: "VBR", # accepts VBR, CBR
  scene_change_detect: "DISABLED", # accepts DISABLED, ENABLED
  slow_pal: "DISABLED", # accepts DISABLED, ENABLED
  softness: 1,
  spatial_adaptive_quantization: "DISABLED", # accepts DISABLED, ENABLED
  syntax: "DEFAULT", # accepts DEFAULT, D_10
  telecine: "NONE", # accepts NONE, SOFT, HARD
  temporal_adaptive_quantization: "DISABLED", # accepts DISABLED, ENABLED
}

Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the value MPEG2.

Returned by:

Instance Attribute Summary collapse

Instance Attribute Details

#adaptive_quantizationString

Specify the strength of any adaptive quantization filters that you enable. The value that you choose here applies to the following settings: Spatial adaptive quantization (spatialAdaptiveQuantization), and Temporal adaptive quantization (temporalAdaptiveQuantization).

Possible values:

  • OFF
  • LOW
  • MEDIUM
  • HIGH

Returns:

  • (String)

    Specify the strength of any adaptive quantization filters that you enable.

#bitrateInteger

Specify the average bitrate in bits per second. Required for VBR and CBR. For MS Smooth outputs, bitrates must be unique when rounded down to the nearest multiple of 1000.

Returns:

  • (Integer)

    Specify the average bitrate in bits per second.

#codec_levelString

Use Level (Mpeg2CodecLevel) to set the MPEG-2 level for the video output.

Possible values:

  • AUTO
  • LOW
  • MAIN
  • HIGH1440
  • HIGH

Returns:

  • (String)

    Use Level (Mpeg2CodecLevel) to set the MPEG-2 level for the video output.

#codec_profileString

Use Profile (Mpeg2CodecProfile) to set the MPEG-2 profile for the video output.

Possible values:

  • MAIN
  • PROFILE_422

Returns:

  • (String)

    Use Profile (Mpeg2CodecProfile) to set the MPEG-2 profile for the video output.

#dynamic_sub_gopString

Choose Adaptive to improve subjective video quality for high-motion content. This will cause the service to use fewer B-frames (which infer information based on other frames) for high-motion portions of the video and more B-frames for low-motion portions. The maximum number of B-frames is limited by the value you provide for the setting B frames between reference frames (numberBFramesBetweenReferenceFrames).

Possible values:

  • ADAPTIVE
  • STATIC

Returns:

  • (String)

    Choose Adaptive to improve subjective video quality for high-motion content.

#framerate_controlString

If you are using the console, use the Framerate setting to specify the frame rate for this output. If you want to keep the same frame rate as the input video, choose Follow source. If you want to do frame rate conversion, choose a frame rate from the dropdown list or choose Custom. The framerates shown in the dropdown list are decimal approximations of fractions. If you choose Custom, specify your frame rate as a fraction. If you are creating your transcoding job specification as a JSON file without the console, use FramerateControl to specify which value the service uses for the frame rate for this output. Choose INITIALIZE_FROM_SOURCE if you want the service to use the frame rate from the input. Choose SPECIFIED if you want the service to use the frame rate you specify in the settings FramerateNumerator and FramerateDenominator.

Possible values:

  • INITIALIZE_FROM_SOURCE
  • SPECIFIED

Returns:

  • (String)

    If you are using the console, use the Framerate setting to specify the frame rate for this output.

#framerate_conversion_algorithmString

Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate. We recommend using drop duplicate (DUPLICATE_DROP) for numerically simple conversions, such as 60 fps to 30 fps. For numerically complex conversions, you can use interpolate (INTERPOLATE) to avoid stutter. This results in a smooth picture, but might introduce undesirable video artifacts. For complex frame rate conversions, especially if your source video has already been converted from its original cadence, use FrameFormer (FRAMEFORMER) to do motion-compensated interpolation. FrameFormer chooses the best conversion method frame by frame. Note that using FrameFormer increases the transcoding time and incurs a significant add-on cost.

Possible values:

  • DUPLICATE_DROP
  • INTERPOLATE
  • FRAMEFORMER

Returns:

  • (String)

    Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate.

#framerate_denominatorInteger

When you use the API for transcode jobs that use frame rate conversion, specify the frame rate as a fraction. For example, 24000 / 1001 = 23.976 fps. Use FramerateDenominator to specify the denominator of this fraction. In this example, use 1001 for the value of FramerateDenominator. When you use the console for transcode jobs that use frame rate conversion, provide the value as a decimal number for Framerate. In this example, specify 23.976.

Returns:

  • (Integer)

    When you use the API for transcode jobs that use frame rate conversion, specify the frame rate as a fraction.

#framerate_numeratorInteger

When you use the API for transcode jobs that use frame rate conversion, specify the frame rate as a fraction. For example, 24000 / 1001 = 23.976 fps. Use FramerateNumerator to specify the numerator of this fraction. In this example, use 24000 for the value of FramerateNumerator. When you use the console for transcode jobs that use frame rate conversion, provide the value as a decimal number for Framerate. In this example, specify 23.976.

Returns:

  • (Integer)

    When you use the API for transcode jobs that use frame rate conversion, specify the frame rate as a fraction.

#gop_closed_cadenceInteger

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.

Returns:

  • (Integer)

    Frequency of closed GOPs.

#gop_sizeFloat

GOP Length (keyframe interval) in frames or seconds. Must be greater than zero.

Returns:

  • (Float)

    GOP Length (keyframe interval) in frames or seconds.

#gop_size_unitsString

Indicates if the GOP Size in MPEG2 is specified in frames or seconds. If seconds the system will convert the GOP Size into a frame count at run time.

Possible values:

  • FRAMES
  • SECONDS

Returns:

  • (String)

    Indicates if the GOP Size in MPEG2 is specified in frames or seconds.

#hrd_buffer_initial_fill_percentageInteger

Percentage of the buffer that should initially be filled (HRD buffer model).

Returns:

  • (Integer)

    Percentage of the buffer that should initially be filled (HRD buffer model).

#hrd_buffer_sizeInteger

Size of buffer (HRD buffer model) in bits. For example, enter five megabits as 5000000.

Returns:

  • (Integer)

    Size of buffer (HRD buffer model) in bits.

#interlace_modeString

Choose the scan line type for the output. Keep the default value, Progressive (PROGRESSIVE) to create a progressive output, regardless of the scan type of your input. Use Top field first (TOP_FIELD) or Bottom field first (BOTTOM_FIELD) to create an output that\'s interlaced with the same field polarity throughout. Use Follow, default top (FOLLOW_TOP_FIELD) or Follow, default bottom (FOLLOW_BOTTOM_FIELD) to produce outputs with the same field polarity as the source. For jobs that have multiple inputs, the output field polarity might change over the course of the output. Follow behavior depends on the input scan type. If the source is interlaced, the output will be interlaced with the same polarity as the source. If the source is progressive, the output will be interlaced with top field bottom field first, depending on which of the Follow options you choose.

Possible values:

  • PROGRESSIVE
  • TOP_FIELD
  • BOTTOM_FIELD
  • FOLLOW_TOP_FIELD
  • FOLLOW_BOTTOM_FIELD

Returns:

  • (String)

    Choose the scan line type for the output.

#intra_dc_precisionString

Use Intra DC precision (Mpeg2IntraDcPrecision) to set quantization precision for intra-block DC coefficients. If you choose the value auto, the service will automatically select the precision based on the per-frame compression ratio.

Possible values:

  • AUTO
  • INTRA_DC_PRECISION_8
  • INTRA_DC_PRECISION_9
  • INTRA_DC_PRECISION_10
  • INTRA_DC_PRECISION_11

Returns:

  • (String)

    Use Intra DC precision (Mpeg2IntraDcPrecision) to set quantization precision for intra-block DC coefficients.

#max_bitrateInteger

Maximum bitrate in bits/second. For example, enter five megabits per second as 5000000.

Returns:

  • (Integer)

    Maximum bitrate in bits/second.

#min_i_intervalInteger

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. This setting is only used when Scene Change Detect is enabled. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

Returns:

  • (Integer)

    Enforces separation between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection.

#number_b_frames_between_reference_framesInteger

Number of B-frames between reference frames.

Returns:

  • (Integer)

    Number of B-frames between reference frames.

#par_controlString

Optional. Specify how the service determines the pixel aspect ratio (PAR) for this output. The default behavior, Follow source (INITIALIZE_FROM_SOURCE), uses the PAR from your input video for your output. To specify a different PAR in the console, choose any value other than Follow source. To specify a different PAR by editing the JSON job specification, choose SPECIFIED. When you choose SPECIFIED for this setting, you must also specify values for the parNumerator and parDenominator settings.

Possible values:

  • INITIALIZE_FROM_SOURCE
  • SPECIFIED

Returns:

  • (String)

    Optional.

#par_denominatorInteger

Required when you set Pixel aspect ratio (parControl) to SPECIFIED. On the console, this corresponds to any value other than Follow source. When you specify an output pixel aspect ratio (PAR) that is different from your input video PAR, provide your output PAR as a ratio. For example, for D1/DV NTSC widescreen, you would specify the ratio 40:33. In this example, the value for parDenominator is 33.

Returns:

  • (Integer)

    Required when you set Pixel aspect ratio (parControl) to SPECIFIED.

#par_numeratorInteger

Required when you set Pixel aspect ratio (parControl) to SPECIFIED. On the console, this corresponds to any value other than Follow source. When you specify an output pixel aspect ratio (PAR) that is different from your input video PAR, provide your output PAR as a ratio. For example, for D1/DV NTSC widescreen, you would specify the ratio 40:33. In this example, the value for parNumerator is 40.

Returns:

  • (Integer)

    Required when you set Pixel aspect ratio (parControl) to SPECIFIED.

#quality_tuning_levelString

Optional. Use Quality tuning level (qualityTuningLevel) to choose how you want to trade off encoding speed for output video quality. The default behavior is faster, lower quality, single-pass encoding.

Possible values:

  • SINGLE_PASS
  • MULTI_PASS

Returns:

  • (String)

    Optional.

#rate_control_modeString

Use Rate control mode (Mpeg2RateControlMode) to specifiy whether the bitrate is variable (vbr) or constant (cbr).

Possible values:

  • VBR
  • CBR

Returns:

  • (String)

    Use Rate control mode (Mpeg2RateControlMode) to specifiy whether the bitrate is variable (vbr) or constant (cbr).

#scene_change_detectString

Enable this setting to insert I-frames at scene changes that the service automatically detects. This improves video quality and is enabled by default.

Possible values:

  • DISABLED
  • ENABLED

Returns:

  • (String)

    Enable this setting to insert I-frames at scene changes that the service automatically detects.

#slow_palString

Ignore this setting unless your input frame rate is 23.976 or 24 frames per second (fps). Enable slow PAL to create a 25 fps output. When you enable slow PAL, MediaConvert relabels the video frames to 25 fps and resamples your audio to keep it synchronized with the video. Note that enabling this setting will slightly reduce the duration of your video. Required settings: You must also set Framerate to 25. In your JSON job specification, set (framerateControl) to (SPECIFIED), (framerateNumerator) to 25 and (framerateDenominator) to 1.

Possible values:

  • DISABLED
  • ENABLED

Returns:

  • (String)

    Ignore this setting unless your input frame rate is 23.976 or 24 frames per second (fps).

#softnessInteger

Ignore this setting unless you need to comply with a specification that requires a specific value. If you don\'t have a specification requirement, we recommend that you adjust the softness of your output by using a lower value for the setting Sharpness (sharpness) or by enabling a noise reducer filter (noiseReducerFilter). The Softness (softness) setting specifies the quantization matrices that the encoder uses. Keep the default value, 0, to use the AWS Elemental default matrices. Choose a value from 17 to 128 to use planar interpolation. Increasing values from 17 to 128 result in increasing reduction of high-frequency data. The value 128 results in the softest video.

Returns:

  • (Integer)

    Ignore this setting unless you need to comply with a specification that requires a specific value.

#spatial_adaptive_quantizationString

Keep the default value, Enabled (ENABLED), to adjust quantization within each frame based on spatial variation of content complexity. When you enable this feature, the encoder uses fewer bits on areas that can sustain more distortion with no noticeable visual degradation and uses more bits on areas where any small distortion will be noticeable. For example, complex textured blocks are encoded with fewer bits and smooth textured blocks are encoded with more bits. Enabling this feature will almost always improve your video quality. Note, though, that this feature doesn\'t take into account where the viewer\'s attention is likely to be. If viewers are likely to be focusing their attention on a part of the screen with a lot of complex texture, you might choose to disable this feature. Related setting: When you enable spatial adaptive quantization, set the value for Adaptive quantization (adaptiveQuantization) depending on your content. For homogeneous content, such as cartoons and video games, set it to Low. For content with a wider variety of textures, set it to High or Higher.

Possible values:

  • DISABLED
  • ENABLED

Returns:

  • (String)

    Keep the default value, Enabled (ENABLED), to adjust quantization within each frame based on spatial variation of content complexity.

#syntaxString

Specify whether this output\'s video uses the D10 syntax. Keep the default value to not use the syntax. Related settings: When you choose D10 (D_10) for your MXF profile (profile), you must also set this value to to D10 (D_10).

Possible values:

  • DEFAULT
  • D_10

Returns:

  • (String)

    Specify whether this output\'s video uses the D10 syntax.

#telecineString

When you do frame rate conversion from 23.976 frames per second (fps) to 29.97 fps, and your output scan type is interlaced, you can optionally enable hard or soft telecine to create a smoother picture. Hard telecine (HARD) produces a 29.97i output. Soft telecine (SOFT) produces an output with a 23.976 output that signals to the video player device to do the conversion during play back. When you keep the default value, None (NONE), MediaConvert does a standard frame rate conversion to 29.97 without doing anything with the field polarity to create a smoother picture.

Possible values:

  • NONE
  • SOFT
  • HARD

Returns:

  • (String)

    When you do frame rate conversion from 23.976 frames per second (fps) to 29.97 fps, and your output scan type is interlaced, you can optionally enable hard or soft telecine to create a smoother picture.

#temporal_adaptive_quantizationString

Keep the default value, Enabled (ENABLED), to adjust quantization within each frame based on temporal variation of content complexity. When you enable this feature, the encoder uses fewer bits on areas of the frame that aren\'t moving and uses more bits on complex objects with sharp edges that move a lot. For example, this feature improves the readability of text tickers on newscasts and scoreboards on sports matches. Enabling this feature will almost always improve your video quality. Note, though, that this feature doesn\'t take into account where the viewer\'s attention is likely to be. If viewers are likely to be focusing their attention on a part of the screen that doesn\'t have moving objects with sharp edges, such as sports athletes\' faces, you might choose to disable this feature. Related setting: When you enable temporal quantization, adjust the strength of the filter with the setting Adaptive quantization (adaptiveQuantization).

Possible values:

  • DISABLED
  • ENABLED

Returns:

  • (String)

    Keep the default value, Enabled (ENABLED), to adjust quantization within each frame based on temporal variation of content complexity.