H265Settings
public struct H265Settings : AWSShape
Undocumented
-
Declaration
Swift
public static var _members: [AWSShapeMember]
-
Adaptive quantization. Allows intra-frame quantizers to vary to improve visual quality.
Declaration
Swift
public let adaptiveQuantization: H265AdaptiveQuantization?
-
Enables Alternate Transfer Function SEI message for outputs using Hybrid Log Gamma (HLG) Electro-Optical Transfer Function (EOTF).
Declaration
Swift
public let alternateTransferFunctionSei: H265AlternateTransferFunctionSei?
-
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.
Declaration
Swift
public let bitrate: Int?
-
H.265 Level.
Declaration
Swift
public let codecLevel: H265CodecLevel?
-
Represents the Profile and Tier, per the HEVC (H.265) specification. Selections are grouped as [Profile] / [Tier], so “Main/High” represents Main Profile with High Tier. 4:2:2 profiles are only available with the HEVC 4:2:2 License.
Declaration
Swift
public let codecProfile: H265CodecProfile?
-
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).
Declaration
Swift
public let dynamicSubGop: H265DynamicSubGop?
-
Adjust quantization within each frame to reduce flicker or ‘pop’ on I-frames.
Declaration
Swift
public let flickerAdaptiveQuantization: H265FlickerAdaptiveQuantization?
-
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.
Declaration
Swift
public let framerateControl: H265FramerateControl?
-
Optional. Specify how the transcoder performs framerate conversion. The default behavior is to use duplicate drop conversion.
Declaration
Swift
public let framerateConversionAlgorithm: H265FramerateConversionAlgorithm?
-
Frame rate denominator.
Declaration
Swift
public let framerateDenominator: Int?
-
Frame rate numerator - frame rate is a fraction, e.g. 24000 / 1001 = 23.976 fps.
Declaration
Swift
public let framerateNumerator: Int?
-
If enable, use reference B frames for GOP structures that have B frames > 1.
Declaration
Swift
public let gopBReference: H265GopBReference?
-
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.
Declaration
Swift
public let gopClosedCadence: Int?
-
GOP Length (keyframe interval) in frames or seconds. Must be greater than zero.
Declaration
Swift
public let gopSize: Double?
-
Indicates if the GOP Size in H265 is specified in frames or seconds. If seconds the system will convert the GOP Size into a frame count at run time.
Declaration
Swift
public let gopSizeUnits: H265GopSizeUnits?
-
Percentage of the buffer that should initially be filled (HRD buffer model).
Declaration
Swift
public let hrdBufferInitialFillPercentage: Int?
-
Size of buffer (HRD buffer model) in bits. For example, enter five megabits as 5000000.
Declaration
Swift
public let hrdBufferSize: Int?
-
Choose the scan line type for the output. Choose Progressive (PROGRESSIVE) to create a progressive output, regardless of the scan type of your input. Choose Top Field First (TOP_FIELD) or Bottom Field First (BOTTOM_FIELD) to create an output that’s interlaced with the same field polarity throughout. Choose Follow, Default Top (FOLLOW_TOP_FIELD) or Follow, Default Bottom (FOLLOW_BOTTOM_FIELD) to create an interlaced output with the same field polarity as the source. If the source is interlaced, the output will be interlaced with the same polarity as the source (it will follow the source). The output could therefore be a mix of “top field first” and “bottom field first”. If the source is progressive, your output will be interlaced with “top field first” or “bottom field first” polarity, depending on which of the Follow options you chose. If you don’t choose a value, the service will default to Progressive (PROGRESSIVE).
Declaration
Swift
public let interlaceMode: H265InterlaceMode?
-
Maximum bitrate in bits/second. For example, enter five megabits per second as 5000000. Required when Rate control mode is QVBR.
Declaration
Swift
public let maxBitrate: Int?
-
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
Declaration
Swift
public let minIInterval: Int?
-
Number of B-frames between reference frames.
Declaration
Swift
public let numberBFramesBetweenReferenceFrames: Int?
-
Number of reference frames to use. The encoder may use more than requested if using B-frames and/or interlaced encoding.
Declaration
Swift
public let numberReferenceFrames: Int?
-
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.
Declaration
Swift
public let parControl: H265ParControl?
-
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.
Declaration
Swift
public let parDenominator: Int?
-
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.
Declaration
Swift
public let parNumerator: Int?
-
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.
Declaration
Swift
public let qualityTuningLevel: H265QualityTuningLevel?
-
Settings for quality-defined variable bitrate encoding with the H.265 codec. Required when you set Rate control mode to QVBR. Not valid when you set Rate control mode to a value other than QVBR, or when you don’t define Rate control mode.
Declaration
Swift
public let qvbrSettings: H265QvbrSettings?
-
Use this setting to specify whether this output has a variable bitrate (VBR), constant bitrate (CBR) or quality-defined variable bitrate (QVBR).
Declaration
Swift
public let rateControlMode: H265RateControlMode?
-
Specify Sample Adaptive Offset (SAO) filter strength. Adaptive mode dynamically selects best strength based on content
Declaration
Swift
public let sampleAdaptiveOffsetFilterMode: H265SampleAdaptiveOffsetFilterMode?
-
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.
Declaration
Swift
public let sceneChangeDetect: H265SceneChangeDetect?
-
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.
Declaration
Swift
public let slices: Int?
-
Enables Slow PAL rate conversion. 23.976fps and 24fps input is relabeled as 25fps, and audio is sped up correspondingly.
Declaration
Swift
public let slowPal: H265SlowPal?
-
Adjust quantization within each frame based on spatial variation of content complexity.
Declaration
Swift
public let spatialAdaptiveQuantization: H265SpatialAdaptiveQuantization?
-
This field applies only if the Streams > Advanced > Framerate (framerate) field is set to 29.970. This field works with the Streams > Advanced > Preprocessors > Deinterlacer field (deinterlace_mode) and the Streams > Advanced > Interlaced Mode field (interlace_mode) to identify the scan type for the output: Progressive, Interlaced, Hard Telecine or Soft Telecine. - Hard: produces 29.97i output from 23.976 input. - Soft: produces 23.976; the player converts this output to 29.97i.
Declaration
Swift
public let telecine: H265Telecine?
-
Adjust quantization within each frame based on temporal variation of content complexity.
Declaration
Swift
public let temporalAdaptiveQuantization: H265TemporalAdaptiveQuantization?
-
Enables temporal layer identifiers in the encoded bitstream. Up to 3 layers are supported depending on GOP structure: I- and P-frames form one layer, reference B-frames can form a second layer and non-reference b-frames can form a third layer. Decoders can optionally decode only the lower temporal layers to generate a lower frame rate output. For example, given a bitstream with temporal IDs and with b-frames = 1 (i.e. IbPbPb display order), a decoder could decode all the frames for full frame rate output or only the I and P frames (lowest temporal layer) for a half frame rate output.
Declaration
Swift
public let temporalIds: H265TemporalIds?
-
Enable use of tiles, allowing horizontal as well as vertical subdivision of the encoded pictures.
Declaration
Swift
public let tiles: H265Tiles?
-
Inserts timecode for each frame as 4 bytes of an unregistered SEI message.
Declaration
Swift
public let unregisteredSeiTimecode: H265UnregisteredSeiTimecode?
-
If the location of parameter set NAL units doesn’t matter in your workflow, ignore this setting. Use this setting only with CMAF or DASH outputs, or with standalone file outputs in an MPEG-4 container (MP4 outputs). Choose HVC1 to mark your output as HVC1. This makes your output compliant with the following specification: ISO IECJTC1 SC29 N13798 Text ISO/IEC FDIS 14496-15 3rd Edition. For these outputs, the service stores parameter set NAL units in the sample headers but not in the samples directly. For MP4 outputs, when you choose HVC1, your output video might not work properly with some downstream systems and video players. The service defaults to marking your output as HEV1. For these outputs, the service writes parameter set NAL units directly into the samples.
Declaration
Swift
public let writeMp4PackagingType: H265WriteMp4PackagingType?
-
init(adaptiveQuantization:alternateTransferFunctionSei:bitrate:codecLevel:codecProfile:dynamicSubGop:flickerAdaptiveQuantization:framerateControl:framerateConversionAlgorithm:framerateDenominator:framerateNumerator:gopBReference:gopClosedCadence:gopSize:gopSizeUnits:hrdBufferInitialFillPercentage:hrdBufferSize:interlaceMode:maxBitrate:minIInterval:numberBFramesBetweenReferenceFrames:numberReferenceFrames:parControl:parDenominator:parNumerator:qualityTuningLevel:qvbrSettings:rateControlMode:sampleAdaptiveOffsetFilterMode:sceneChangeDetect:slices:slowPal:spatialAdaptiveQuantization:telecine:temporalAdaptiveQuantization:temporalIds:tiles:unregisteredSeiTimecode:writeMp4PackagingType:)
Undocumented
Declaration
Swift
public init(adaptiveQuantization: H265AdaptiveQuantization? = nil, alternateTransferFunctionSei: H265AlternateTransferFunctionSei? = nil, bitrate: Int? = nil, codecLevel: H265CodecLevel? = nil, codecProfile: H265CodecProfile? = nil, dynamicSubGop: H265DynamicSubGop? = nil, flickerAdaptiveQuantization: H265FlickerAdaptiveQuantization? = nil, framerateControl: H265FramerateControl? = nil, framerateConversionAlgorithm: H265FramerateConversionAlgorithm? = nil, framerateDenominator: Int? = nil, framerateNumerator: Int? = nil, gopBReference: H265GopBReference? = nil, gopClosedCadence: Int? = nil, gopSize: Double? = nil, gopSizeUnits: H265GopSizeUnits? = nil, hrdBufferInitialFillPercentage: Int? = nil, hrdBufferSize: Int? = nil, interlaceMode: H265InterlaceMode? = nil, maxBitrate: Int? = nil, minIInterval: Int? = nil, numberBFramesBetweenReferenceFrames: Int? = nil, numberReferenceFrames: Int? = nil, parControl: H265ParControl? = nil, parDenominator: Int? = nil, parNumerator: Int? = nil, qualityTuningLevel: H265QualityTuningLevel? = nil, qvbrSettings: H265QvbrSettings? = nil, rateControlMode: H265RateControlMode? = nil, sampleAdaptiveOffsetFilterMode: H265SampleAdaptiveOffsetFilterMode? = nil, sceneChangeDetect: H265SceneChangeDetect? = nil, slices: Int? = nil, slowPal: H265SlowPal? = nil, spatialAdaptiveQuantization: H265SpatialAdaptiveQuantization? = nil, telecine: H265Telecine? = nil, temporalAdaptiveQuantization: H265TemporalAdaptiveQuantization? = nil, temporalIds: H265TemporalIds? = nil, tiles: H265Tiles? = nil, unregisteredSeiTimecode: H265UnregisteredSeiTimecode? = nil, writeMp4PackagingType: H265WriteMp4PackagingType? = nil)
-
Declaration
Swift
public func validate(name: String) throws