Copyright | (c) 2013-2023 Brendan Hay |
---|---|
License | Mozilla Public License, v. 2.0. |
Maintainer | Brendan Hay |
Stability | auto-generated |
Portability | non-portable (GHC extensions) |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Synopsis
- data H264Settings = H264Settings' {
- adaptiveQuantization :: Maybe H264AdaptiveQuantization
- bitrate :: Maybe Natural
- codecLevel :: Maybe H264CodecLevel
- codecProfile :: Maybe H264CodecProfile
- dynamicSubGop :: Maybe H264DynamicSubGop
- entropyEncoding :: Maybe H264EntropyEncoding
- fieldEncoding :: Maybe H264FieldEncoding
- flickerAdaptiveQuantization :: Maybe H264FlickerAdaptiveQuantization
- framerateControl :: Maybe H264FramerateControl
- framerateConversionAlgorithm :: Maybe H264FramerateConversionAlgorithm
- framerateDenominator :: Maybe Natural
- framerateNumerator :: Maybe Natural
- gopBReference :: Maybe H264GopBReference
- gopClosedCadence :: Maybe Natural
- gopSize :: Maybe Double
- gopSizeUnits :: Maybe H264GopSizeUnits
- hrdBufferFinalFillPercentage :: Maybe Natural
- hrdBufferInitialFillPercentage :: Maybe Natural
- hrdBufferSize :: Maybe Natural
- interlaceMode :: Maybe H264InterlaceMode
- maxBitrate :: Maybe Natural
- minIInterval :: Maybe Natural
- numberBFramesBetweenReferenceFrames :: Maybe Natural
- numberReferenceFrames :: Maybe Natural
- parControl :: Maybe H264ParControl
- parDenominator :: Maybe Natural
- parNumerator :: Maybe Natural
- qualityTuningLevel :: Maybe H264QualityTuningLevel
- qvbrSettings :: Maybe H264QvbrSettings
- rateControlMode :: Maybe H264RateControlMode
- repeatPps :: Maybe H264RepeatPps
- scanTypeConversionMode :: Maybe H264ScanTypeConversionMode
- sceneChangeDetect :: Maybe H264SceneChangeDetect
- slices :: Maybe Natural
- slowPal :: Maybe H264SlowPal
- softness :: Maybe Natural
- spatialAdaptiveQuantization :: Maybe H264SpatialAdaptiveQuantization
- syntax :: Maybe H264Syntax
- telecine :: Maybe H264Telecine
- temporalAdaptiveQuantization :: Maybe H264TemporalAdaptiveQuantization
- unregisteredSeiTimecode :: Maybe H264UnregisteredSeiTimecode
- newH264Settings :: H264Settings
- h264Settings_adaptiveQuantization :: Lens' H264Settings (Maybe H264AdaptiveQuantization)
- h264Settings_bitrate :: Lens' H264Settings (Maybe Natural)
- h264Settings_codecLevel :: Lens' H264Settings (Maybe H264CodecLevel)
- h264Settings_codecProfile :: Lens' H264Settings (Maybe H264CodecProfile)
- h264Settings_dynamicSubGop :: Lens' H264Settings (Maybe H264DynamicSubGop)
- h264Settings_entropyEncoding :: Lens' H264Settings (Maybe H264EntropyEncoding)
- h264Settings_fieldEncoding :: Lens' H264Settings (Maybe H264FieldEncoding)
- h264Settings_flickerAdaptiveQuantization :: Lens' H264Settings (Maybe H264FlickerAdaptiveQuantization)
- h264Settings_framerateControl :: Lens' H264Settings (Maybe H264FramerateControl)
- h264Settings_framerateConversionAlgorithm :: Lens' H264Settings (Maybe H264FramerateConversionAlgorithm)
- h264Settings_framerateDenominator :: Lens' H264Settings (Maybe Natural)
- h264Settings_framerateNumerator :: Lens' H264Settings (Maybe Natural)
- h264Settings_gopBReference :: Lens' H264Settings (Maybe H264GopBReference)
- h264Settings_gopClosedCadence :: Lens' H264Settings (Maybe Natural)
- h264Settings_gopSize :: Lens' H264Settings (Maybe Double)
- h264Settings_gopSizeUnits :: Lens' H264Settings (Maybe H264GopSizeUnits)
- h264Settings_hrdBufferFinalFillPercentage :: Lens' H264Settings (Maybe Natural)
- h264Settings_hrdBufferInitialFillPercentage :: Lens' H264Settings (Maybe Natural)
- h264Settings_hrdBufferSize :: Lens' H264Settings (Maybe Natural)
- h264Settings_interlaceMode :: Lens' H264Settings (Maybe H264InterlaceMode)
- h264Settings_maxBitrate :: Lens' H264Settings (Maybe Natural)
- h264Settings_minIInterval :: Lens' H264Settings (Maybe Natural)
- h264Settings_numberBFramesBetweenReferenceFrames :: Lens' H264Settings (Maybe Natural)
- h264Settings_numberReferenceFrames :: Lens' H264Settings (Maybe Natural)
- h264Settings_parControl :: Lens' H264Settings (Maybe H264ParControl)
- h264Settings_parDenominator :: Lens' H264Settings (Maybe Natural)
- h264Settings_parNumerator :: Lens' H264Settings (Maybe Natural)
- h264Settings_qualityTuningLevel :: Lens' H264Settings (Maybe H264QualityTuningLevel)
- h264Settings_qvbrSettings :: Lens' H264Settings (Maybe H264QvbrSettings)
- h264Settings_rateControlMode :: Lens' H264Settings (Maybe H264RateControlMode)
- h264Settings_repeatPps :: Lens' H264Settings (Maybe H264RepeatPps)
- h264Settings_scanTypeConversionMode :: Lens' H264Settings (Maybe H264ScanTypeConversionMode)
- h264Settings_sceneChangeDetect :: Lens' H264Settings (Maybe H264SceneChangeDetect)
- h264Settings_slices :: Lens' H264Settings (Maybe Natural)
- h264Settings_slowPal :: Lens' H264Settings (Maybe H264SlowPal)
- h264Settings_softness :: Lens' H264Settings (Maybe Natural)
- h264Settings_spatialAdaptiveQuantization :: Lens' H264Settings (Maybe H264SpatialAdaptiveQuantization)
- h264Settings_syntax :: Lens' H264Settings (Maybe H264Syntax)
- h264Settings_telecine :: Lens' H264Settings (Maybe H264Telecine)
- h264Settings_temporalAdaptiveQuantization :: Lens' H264Settings (Maybe H264TemporalAdaptiveQuantization)
- h264Settings_unregisteredSeiTimecode :: Lens' H264Settings (Maybe H264UnregisteredSeiTimecode)
Documentation
data H264Settings Source #
Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the value H_264.
See: newH264Settings
smart constructor.
H264Settings' | |
|
Instances
newH264Settings :: H264Settings Source #
Create a value of H264Settings
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:adaptiveQuantization:H264Settings'
, h264Settings_adaptiveQuantization
- Keep the default value, Auto (AUTO), for this setting to have
MediaConvert automatically apply the best types of quantization for your
video content. When you want to apply your quantization settings
manually, you must set H264AdaptiveQuantization to a value other than
Auto (AUTO). Use this setting to specify the strength of any adaptive
quantization filters that you enable. If you don't want MediaConvert to
do any adaptive quantization in this transcode, set Adaptive
quantization (H264AdaptiveQuantization) to Off (OFF). Related settings:
The value that you choose here applies to the following settings:
H264FlickerAdaptiveQuantization, H264SpatialAdaptiveQuantization, and
H264TemporalAdaptiveQuantization.
$sel:bitrate:H264Settings'
, h264Settings_bitrate
- 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.
$sel:codecLevel:H264Settings'
, h264Settings_codecLevel
- Specify an H.264 level that is consistent with your output video
settings. If you aren't sure what level to specify, choose Auto (AUTO).
$sel:codecProfile:H264Settings'
, h264Settings_codecProfile
- H.264 Profile. High 4:2:2 and 10-bit profiles are only available with
the AVC-I License.
$sel:dynamicSubGop:H264Settings'
, h264Settings_dynamicSubGop
- 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).
$sel:entropyEncoding:H264Settings'
, h264Settings_entropyEncoding
- Entropy encoding mode. Use CABAC (must be in Main or High profile) or
CAVLC.
$sel:fieldEncoding:H264Settings'
, h264Settings_fieldEncoding
- The video encoding method for your MPEG-4 AVC output. Keep the default
value, PAFF, to have MediaConvert use PAFF encoding for interlaced
outputs. Choose Force field (FORCE_FIELD) to disable PAFF encoding and
create separate interlaced fields. Choose MBAFF to disable PAFF and have
MediaConvert use MBAFF encoding for interlaced outputs.
$sel:flickerAdaptiveQuantization:H264Settings'
, h264Settings_flickerAdaptiveQuantization
- Only use this setting when you change the default value, AUTO, for the
setting H264AdaptiveQuantization. When you keep all defaults, excluding
H264AdaptiveQuantization and all other adaptive quantization from your
JSON job specification, MediaConvert automatically applies the best
types of quantization for your video content. When you set
H264AdaptiveQuantization to a value other than AUTO, the default value
for H264FlickerAdaptiveQuantization is Disabled (DISABLED). Change this
value to Enabled (ENABLED) to reduce I-frame pop. I-frame pop appears as
a visual flicker that can arise when the encoder saves bits by copying
some macroblocks many times from frame to frame, and then refreshes them
at the I-frame. When you enable this setting, the encoder updates these
macroblocks slightly more often to smooth out the flicker. To manually
enable or disable H264FlickerAdaptiveQuantization, you must set Adaptive
quantization (H264AdaptiveQuantization) to a value other than AUTO.
$sel:framerateControl:H264Settings'
, h264Settings_framerateControl
- 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.
$sel:framerateConversionAlgorithm:H264Settings'
, h264Settings_framerateConversionAlgorithm
- 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.
$sel:framerateDenominator:H264Settings'
, h264Settings_framerateDenominator
- 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.
$sel:framerateNumerator:H264Settings'
, h264Settings_framerateNumerator
- 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.
$sel:gopBReference:H264Settings'
, h264Settings_gopBReference
- If enable, use reference B frames for GOP structures that have B frames
> 1.
$sel:gopClosedCadence:H264Settings'
, h264Settings_gopClosedCadence
- Specify the relative frequency of open to closed GOPs in this output.
For example, if you want to allow four open GOPs and then require a
closed GOP, set this value to 5. We recommend that you have the
transcoder automatically choose this value for you based on
characteristics of your input video. To enable this automatic behavior,
keep the default value by leaving this setting out of your JSON job
specification. In the console, do this by keeping the default empty
value. If you do explicitly specify a value, for segmented outputs,
don't set this value to 0.
$sel:gopSize:H264Settings'
, h264Settings_gopSize
- Use this setting only when you set GOP mode control (GopSizeUnits) to
Specified, frames (FRAMES) or Specified, seconds (SECONDS). Specify the
GOP length using a whole number of frames or a decimal value of seconds.
MediaConvert will interpret this value as frames or seconds depending on
the value you choose for GOP mode control (GopSizeUnits). If you want to
allow MediaConvert to automatically determine GOP size, leave GOP size
blank and set GOP mode control to Auto (AUTO). If your output group
specifies HLS, DASH, or CMAF, leave GOP size blank and set GOP mode
control to Auto in each output in your output group.
$sel:gopSizeUnits:H264Settings'
, h264Settings_gopSizeUnits
- Specify how the transcoder determines GOP size for this output. We
recommend that you have the transcoder automatically choose this value
for you based on characteristics of your input video. To enable this
automatic behavior, choose Auto (AUTO) and and leave GOP size (GopSize)
blank. By default, if you don't specify GOP mode control
(GopSizeUnits), MediaConvert will use automatic behavior. If your output
group specifies HLS, DASH, or CMAF, set GOP mode control to Auto and
leave GOP size blank in each output in your output group. To explicitly
specify the GOP length, choose Specified, frames (FRAMES) or Specified,
seconds (SECONDS) and then provide the GOP length in the related setting
GOP size (GopSize).
$sel:hrdBufferFinalFillPercentage:H264Settings'
, h264Settings_hrdBufferFinalFillPercentage
- If your downstream systems have strict buffer requirements: Specify the
minimum percentage of the HRD buffer that's available at the end of
each encoded video segment. For the best video quality: Set to 0 or
leave blank to automatically determine the final buffer fill percentage.
$sel:hrdBufferInitialFillPercentage:H264Settings'
, h264Settings_hrdBufferInitialFillPercentage
- Percentage of the buffer that should initially be filled (HRD buffer
model).
$sel:hrdBufferSize:H264Settings'
, h264Settings_hrdBufferSize
- Size of buffer (HRD buffer model) in bits. For example, enter five
megabits as 5000000.
$sel:interlaceMode:H264Settings'
, h264Settings_interlaceMode
- 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.
$sel:maxBitrate:H264Settings'
, h264Settings_maxBitrate
- Maximum bitrate in bits/second. For example, enter five megabits per
second as 5000000. Required when Rate control mode is QVBR.
$sel:minIInterval:H264Settings'
, h264Settings_minIInterval
- Use this setting only when you also enable Scene change detection
(SceneChangeDetect). This setting determines how the encoder manages the
spacing between I-frames that it inserts as part of the I-frame cadence
and the I-frames that it inserts for Scene change detection. We
recommend that you have the transcoder automatically choose this value
for you based on characteristics of your input video. To enable this
automatic behavior, keep the default value by leaving this setting out
of your JSON job specification. In the console, do this by keeping the
default empty value. When you explicitly specify a value for this
setting, the encoder determines whether to skip a cadence-driven I-frame
by the value you set. For example, if you set Min I interval
(minIInterval) to 5 and a cadence-driven I-frame would fall within 5
frames of a scene-change I-frame, then the encoder skips the
cadence-driven I-frame. In this way, one GOP is shrunk slightly and one
GOP is stretched slightly. When the cadence-driven I-frames are farther
from the scene-change I-frame than the value you set, then the encoder
leaves all I-frames in place and the GOPs surrounding the scene change
are smaller than the usual cadence GOPs.
$sel:numberBFramesBetweenReferenceFrames:H264Settings'
, h264Settings_numberBFramesBetweenReferenceFrames
- This setting to determines the number of B-frames that MediaConvert puts
between reference frames in this output. We recommend that you use
automatic behavior to allow the transcoder to choose the best value
based on characteristics of your input video. In the console, choose
AUTO to select this automatic behavior. When you manually edit your JSON
job specification, leave this setting out to choose automatic behavior.
When you want to specify this number explicitly, choose a whole number
from 0 through 7.
$sel:numberReferenceFrames:H264Settings'
, h264Settings_numberReferenceFrames
- Number of reference frames to use. The encoder may use more than
requested if using B-frames and/or interlaced encoding.
$sel:parControl:H264Settings'
, h264Settings_parControl
- 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.
$sel:parDenominator:H264Settings'
, h264Settings_parDenominator
- 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.
$sel:parNumerator:H264Settings'
, h264Settings_parNumerator
- 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.
$sel:qualityTuningLevel:H264Settings'
, h264Settings_qualityTuningLevel
- 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.
$sel:qvbrSettings:H264Settings'
, h264Settings_qvbrSettings
- Settings for quality-defined variable bitrate encoding with the H.265
codec. Use these settings only when you set QVBR for Rate control mode
(RateControlMode).
$sel:rateControlMode:H264Settings'
, h264Settings_rateControlMode
- Use this setting to specify whether this output has a variable bitrate
(VBR), constant bitrate (CBR) or quality-defined variable bitrate
(QVBR).
$sel:repeatPps:H264Settings'
, h264Settings_repeatPps
- Places a PPS header on each encoded picture, even if repeated.
$sel:scanTypeConversionMode:H264Settings'
, h264Settings_scanTypeConversionMode
- Use this setting for interlaced outputs, when your output frame rate is
half of your input frame rate. In this situation, choose Optimized
interlacing (INTERLACED_OPTIMIZE) to create a better quality interlaced
output. In this case, each progressive frame from the input corresponds
to an interlaced field in the output. Keep the default value, Basic
interlacing (INTERLACED), for all other output frame rates. With basic
interlacing, MediaConvert performs any frame rate conversion first and
then interlaces the frames. When you choose Optimized interlacing and
you set your output frame rate to a value that isn't suitable for
optimized interlacing, MediaConvert automatically falls back to basic
interlacing. Required settings: To use optimized interlacing, you must
set Telecine (telecine) to None (NONE) or Soft (SOFT). You can't use
optimized interlacing for hard telecine outputs. You must also set
Interlace mode (interlaceMode) to a value other than Progressive
(PROGRESSIVE).
$sel:sceneChangeDetect:H264Settings'
, h264Settings_sceneChangeDetect
- Enable this setting to insert I-frames at scene changes that the service
automatically detects. This improves video quality and is enabled by
default. If this output uses QVBR, choose Transition detection
(TRANSITION_DETECTION) for further video quality improvement. For more
information about QVBR, see
https://docs.aws.amazon.com/console/mediaconvert/cbr-vbr-qvbr.
$sel:slices:H264Settings'
, h264Settings_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.
$sel:slowPal:H264Settings'
, h264Settings_slowPal
- 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.
$sel:softness:H264Settings'
, h264Settings_softness
- 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, for flat quantization. Choose the value 1 or 16 to
use the default JVT softening quantization matricies from the H.264
specification. 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.
$sel:spatialAdaptiveQuantization:H264Settings'
, h264Settings_spatialAdaptiveQuantization
- Only use this setting when you change the default value, Auto (AUTO),
for the setting H264AdaptiveQuantization. When you keep all defaults,
excluding H264AdaptiveQuantization and all other adaptive quantization
from your JSON job specification, MediaConvert automatically applies the
best types of quantization for your video content. When you set
H264AdaptiveQuantization to a value other than AUTO, the default value
for H264SpatialAdaptiveQuantization is Enabled (ENABLED). Keep this
default value 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 set
H264SpatialAdaptiveQuantization to Disabled (DISABLED). Related setting:
When you enable spatial adaptive quantization, set the value for
Adaptive quantization (H264AdaptiveQuantization) 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. To manually enable or disable
H264SpatialAdaptiveQuantization, you must set Adaptive quantization
(H264AdaptiveQuantization) to a value other than AUTO.
$sel:syntax:H264Settings'
, h264Settings_syntax
- Produces a bitstream compliant with SMPTE RP-2027.
$sel:telecine:H264Settings'
, h264Settings_telecine
- 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.
$sel:temporalAdaptiveQuantization:H264Settings'
, h264Settings_temporalAdaptiveQuantization
- Only use this setting when you change the default value, AUTO, for the
setting H264AdaptiveQuantization. When you keep all defaults, excluding
H264AdaptiveQuantization and all other adaptive quantization from your
JSON job specification, MediaConvert automatically applies the best
types of quantization for your video content. When you set
H264AdaptiveQuantization to a value other than AUTO, the default value
for H264TemporalAdaptiveQuantization is Enabled (ENABLED). Keep this
default value 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 set
H264TemporalAdaptiveQuantization to Disabled (DISABLED). Related
setting: When you enable temporal quantization, adjust the strength of
the filter with the setting Adaptive quantization
(adaptiveQuantization). To manually enable or disable
H264TemporalAdaptiveQuantization, you must set Adaptive quantization
(H264AdaptiveQuantization) to a value other than AUTO.
$sel:unregisteredSeiTimecode:H264Settings'
, h264Settings_unregisteredSeiTimecode
- Inserts timecode for each frame as 4 bytes of an unregistered SEI
message.
h264Settings_adaptiveQuantization :: Lens' H264Settings (Maybe H264AdaptiveQuantization) Source #
Keep the default value, Auto (AUTO), for this setting to have MediaConvert automatically apply the best types of quantization for your video content. When you want to apply your quantization settings manually, you must set H264AdaptiveQuantization to a value other than Auto (AUTO). Use this setting to specify the strength of any adaptive quantization filters that you enable. If you don't want MediaConvert to do any adaptive quantization in this transcode, set Adaptive quantization (H264AdaptiveQuantization) to Off (OFF). Related settings: The value that you choose here applies to the following settings: H264FlickerAdaptiveQuantization, H264SpatialAdaptiveQuantization, and H264TemporalAdaptiveQuantization.
h264Settings_bitrate :: Lens' H264Settings (Maybe Natural) Source #
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.
h264Settings_codecLevel :: Lens' H264Settings (Maybe H264CodecLevel) Source #
Specify an H.264 level that is consistent with your output video settings. If you aren't sure what level to specify, choose Auto (AUTO).
h264Settings_codecProfile :: Lens' H264Settings (Maybe H264CodecProfile) Source #
H.264 Profile. High 4:2:2 and 10-bit profiles are only available with the AVC-I License.
h264Settings_dynamicSubGop :: Lens' H264Settings (Maybe H264DynamicSubGop) Source #
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).
h264Settings_entropyEncoding :: Lens' H264Settings (Maybe H264EntropyEncoding) Source #
Entropy encoding mode. Use CABAC (must be in Main or High profile) or CAVLC.
h264Settings_fieldEncoding :: Lens' H264Settings (Maybe H264FieldEncoding) Source #
The video encoding method for your MPEG-4 AVC output. Keep the default value, PAFF, to have MediaConvert use PAFF encoding for interlaced outputs. Choose Force field (FORCE_FIELD) to disable PAFF encoding and create separate interlaced fields. Choose MBAFF to disable PAFF and have MediaConvert use MBAFF encoding for interlaced outputs.
h264Settings_flickerAdaptiveQuantization :: Lens' H264Settings (Maybe H264FlickerAdaptiveQuantization) Source #
Only use this setting when you change the default value, AUTO, for the setting H264AdaptiveQuantization. When you keep all defaults, excluding H264AdaptiveQuantization and all other adaptive quantization from your JSON job specification, MediaConvert automatically applies the best types of quantization for your video content. When you set H264AdaptiveQuantization to a value other than AUTO, the default value for H264FlickerAdaptiveQuantization is Disabled (DISABLED). Change this value to Enabled (ENABLED) to reduce I-frame pop. I-frame pop appears as a visual flicker that can arise when the encoder saves bits by copying some macroblocks many times from frame to frame, and then refreshes them at the I-frame. When you enable this setting, the encoder updates these macroblocks slightly more often to smooth out the flicker. To manually enable or disable H264FlickerAdaptiveQuantization, you must set Adaptive quantization (H264AdaptiveQuantization) to a value other than AUTO.
h264Settings_framerateControl :: Lens' H264Settings (Maybe H264FramerateControl) Source #
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.
h264Settings_framerateConversionAlgorithm :: Lens' H264Settings (Maybe H264FramerateConversionAlgorithm) Source #
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.
h264Settings_framerateDenominator :: Lens' H264Settings (Maybe Natural) Source #
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.
h264Settings_framerateNumerator :: Lens' H264Settings (Maybe Natural) Source #
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.
h264Settings_gopBReference :: Lens' H264Settings (Maybe H264GopBReference) Source #
If enable, use reference B frames for GOP structures that have B frames > 1.
h264Settings_gopClosedCadence :: Lens' H264Settings (Maybe Natural) Source #
Specify the relative frequency of open to closed GOPs in this output. For example, if you want to allow four open GOPs and then require a closed GOP, set this value to 5. We recommend that you have the transcoder automatically choose this value for you based on characteristics of your input video. To enable this automatic behavior, keep the default value by leaving this setting out of your JSON job specification. In the console, do this by keeping the default empty value. If you do explicitly specify a value, for segmented outputs, don't set this value to 0.
h264Settings_gopSize :: Lens' H264Settings (Maybe Double) Source #
Use this setting only when you set GOP mode control (GopSizeUnits) to Specified, frames (FRAMES) or Specified, seconds (SECONDS). Specify the GOP length using a whole number of frames or a decimal value of seconds. MediaConvert will interpret this value as frames or seconds depending on the value you choose for GOP mode control (GopSizeUnits). If you want to allow MediaConvert to automatically determine GOP size, leave GOP size blank and set GOP mode control to Auto (AUTO). If your output group specifies HLS, DASH, or CMAF, leave GOP size blank and set GOP mode control to Auto in each output in your output group.
h264Settings_gopSizeUnits :: Lens' H264Settings (Maybe H264GopSizeUnits) Source #
Specify how the transcoder determines GOP size for this output. We recommend that you have the transcoder automatically choose this value for you based on characteristics of your input video. To enable this automatic behavior, choose Auto (AUTO) and and leave GOP size (GopSize) blank. By default, if you don't specify GOP mode control (GopSizeUnits), MediaConvert will use automatic behavior. If your output group specifies HLS, DASH, or CMAF, set GOP mode control to Auto and leave GOP size blank in each output in your output group. To explicitly specify the GOP length, choose Specified, frames (FRAMES) or Specified, seconds (SECONDS) and then provide the GOP length in the related setting GOP size (GopSize).
h264Settings_hrdBufferFinalFillPercentage :: Lens' H264Settings (Maybe Natural) Source #
If your downstream systems have strict buffer requirements: Specify the minimum percentage of the HRD buffer that's available at the end of each encoded video segment. For the best video quality: Set to 0 or leave blank to automatically determine the final buffer fill percentage.
h264Settings_hrdBufferInitialFillPercentage :: Lens' H264Settings (Maybe Natural) Source #
Percentage of the buffer that should initially be filled (HRD buffer model).
h264Settings_hrdBufferSize :: Lens' H264Settings (Maybe Natural) Source #
Size of buffer (HRD buffer model) in bits. For example, enter five megabits as 5000000.
h264Settings_interlaceMode :: Lens' H264Settings (Maybe H264InterlaceMode) Source #
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.
h264Settings_maxBitrate :: Lens' H264Settings (Maybe Natural) Source #
Maximum bitrate in bits/second. For example, enter five megabits per second as 5000000. Required when Rate control mode is QVBR.
h264Settings_minIInterval :: Lens' H264Settings (Maybe Natural) Source #
Use this setting only when you also enable Scene change detection (SceneChangeDetect). This setting determines how the encoder manages the spacing between I-frames that it inserts as part of the I-frame cadence and the I-frames that it inserts for Scene change detection. We recommend that you have the transcoder automatically choose this value for you based on characteristics of your input video. To enable this automatic behavior, keep the default value by leaving this setting out of your JSON job specification. In the console, do this by keeping the default empty value. When you explicitly specify a value for this setting, the encoder determines whether to skip a cadence-driven I-frame by the value you set. For example, if you set Min I interval (minIInterval) to 5 and a cadence-driven I-frame would fall within 5 frames of a scene-change I-frame, then the encoder skips the cadence-driven I-frame. In this way, one GOP is shrunk slightly and one GOP is stretched slightly. When the cadence-driven I-frames are farther from the scene-change I-frame than the value you set, then the encoder leaves all I-frames in place and the GOPs surrounding the scene change are smaller than the usual cadence GOPs.
h264Settings_numberBFramesBetweenReferenceFrames :: Lens' H264Settings (Maybe Natural) Source #
This setting to determines the number of B-frames that MediaConvert puts between reference frames in this output. We recommend that you use automatic behavior to allow the transcoder to choose the best value based on characteristics of your input video. In the console, choose AUTO to select this automatic behavior. When you manually edit your JSON job specification, leave this setting out to choose automatic behavior. When you want to specify this number explicitly, choose a whole number from 0 through 7.
h264Settings_numberReferenceFrames :: Lens' H264Settings (Maybe Natural) Source #
Number of reference frames to use. The encoder may use more than requested if using B-frames and/or interlaced encoding.
h264Settings_parControl :: Lens' H264Settings (Maybe H264ParControl) Source #
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.
h264Settings_parDenominator :: Lens' H264Settings (Maybe Natural) Source #
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.
h264Settings_parNumerator :: Lens' H264Settings (Maybe Natural) Source #
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.
h264Settings_qualityTuningLevel :: Lens' H264Settings (Maybe H264QualityTuningLevel) Source #
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.
h264Settings_qvbrSettings :: Lens' H264Settings (Maybe H264QvbrSettings) Source #
Settings for quality-defined variable bitrate encoding with the H.265 codec. Use these settings only when you set QVBR for Rate control mode (RateControlMode).
h264Settings_rateControlMode :: Lens' H264Settings (Maybe H264RateControlMode) Source #
Use this setting to specify whether this output has a variable bitrate (VBR), constant bitrate (CBR) or quality-defined variable bitrate (QVBR).
h264Settings_repeatPps :: Lens' H264Settings (Maybe H264RepeatPps) Source #
Places a PPS header on each encoded picture, even if repeated.
h264Settings_scanTypeConversionMode :: Lens' H264Settings (Maybe H264ScanTypeConversionMode) Source #
Use this setting for interlaced outputs, when your output frame rate is half of your input frame rate. In this situation, choose Optimized interlacing (INTERLACED_OPTIMIZE) to create a better quality interlaced output. In this case, each progressive frame from the input corresponds to an interlaced field in the output. Keep the default value, Basic interlacing (INTERLACED), for all other output frame rates. With basic interlacing, MediaConvert performs any frame rate conversion first and then interlaces the frames. When you choose Optimized interlacing and you set your output frame rate to a value that isn't suitable for optimized interlacing, MediaConvert automatically falls back to basic interlacing. Required settings: To use optimized interlacing, you must set Telecine (telecine) to None (NONE) or Soft (SOFT). You can't use optimized interlacing for hard telecine outputs. You must also set Interlace mode (interlaceMode) to a value other than Progressive (PROGRESSIVE).
h264Settings_sceneChangeDetect :: Lens' H264Settings (Maybe H264SceneChangeDetect) Source #
Enable this setting to insert I-frames at scene changes that the service automatically detects. This improves video quality and is enabled by default. If this output uses QVBR, choose Transition detection (TRANSITION_DETECTION) for further video quality improvement. For more information about QVBR, see https://docs.aws.amazon.com/console/mediaconvert/cbr-vbr-qvbr.
h264Settings_slices :: Lens' H264Settings (Maybe Natural) Source #
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.
h264Settings_slowPal :: Lens' H264Settings (Maybe H264SlowPal) Source #
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.
h264Settings_softness :: Lens' H264Settings (Maybe Natural) Source #
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, for flat quantization. Choose the value 1 or 16 to use the default JVT softening quantization matricies from the H.264 specification. 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.
h264Settings_spatialAdaptiveQuantization :: Lens' H264Settings (Maybe H264SpatialAdaptiveQuantization) Source #
Only use this setting when you change the default value, Auto (AUTO), for the setting H264AdaptiveQuantization. When you keep all defaults, excluding H264AdaptiveQuantization and all other adaptive quantization from your JSON job specification, MediaConvert automatically applies the best types of quantization for your video content. When you set H264AdaptiveQuantization to a value other than AUTO, the default value for H264SpatialAdaptiveQuantization is Enabled (ENABLED). Keep this default value 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 set H264SpatialAdaptiveQuantization to Disabled (DISABLED). Related setting: When you enable spatial adaptive quantization, set the value for Adaptive quantization (H264AdaptiveQuantization) 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. To manually enable or disable H264SpatialAdaptiveQuantization, you must set Adaptive quantization (H264AdaptiveQuantization) to a value other than AUTO.
h264Settings_syntax :: Lens' H264Settings (Maybe H264Syntax) Source #
Produces a bitstream compliant with SMPTE RP-2027.
h264Settings_telecine :: Lens' H264Settings (Maybe H264Telecine) Source #
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.
h264Settings_temporalAdaptiveQuantization :: Lens' H264Settings (Maybe H264TemporalAdaptiveQuantization) Source #
Only use this setting when you change the default value, AUTO, for the setting H264AdaptiveQuantization. When you keep all defaults, excluding H264AdaptiveQuantization and all other adaptive quantization from your JSON job specification, MediaConvert automatically applies the best types of quantization for your video content. When you set H264AdaptiveQuantization to a value other than AUTO, the default value for H264TemporalAdaptiveQuantization is Enabled (ENABLED). Keep this default value 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 set H264TemporalAdaptiveQuantization to Disabled (DISABLED). Related setting: When you enable temporal quantization, adjust the strength of the filter with the setting Adaptive quantization (adaptiveQuantization). To manually enable or disable H264TemporalAdaptiveQuantization, you must set Adaptive quantization (H264AdaptiveQuantization) to a value other than AUTO.
h264Settings_unregisteredSeiTimecode :: Lens' H264Settings (Maybe H264UnregisteredSeiTimecode) Source #
Inserts timecode for each frame as 4 bytes of an unregistered SEI message.