Interface H264SettingsProps

All Superinterfaces:
software.amazon.jsii.JsiiSerializable
All Known Implementing Classes:
H264SettingsProps.Jsii$Proxy

@Generated(value="jsii-pacmak/1.139.0 (build 26a6b54)", date="2026-09-02T11:03:41.095Z") @Stability(Experimental) public interface H264SettingsProps extends software.amazon.jsii.JsiiSerializable
(experimental) Properties for H.264 codec settings.

Example:

 Stack stack;
 IInput input;
 IBucket bucket;
 EncodeConfiguration video = EncodeConfiguration.video(VideoEncodeProps.builder()
         .name("video_720p")
         .codec(VideoCodecSettings.h264(H264SettingsProps.builder()
                 .rateControl(H264RateControl.cbr(CbrRateControlProps.builder().bitrate(Bitrate.mbps(3)).build()))
                 .framerate(Framerate.FPS_30)
                 .build()))
         .width(1280)
         .height(720)
         .build());
 EncodeConfiguration audio = EncodeConfiguration.audio(AudioEncodeProps.builder()
         .name("audio_aac")
         .codec(AudioCodecSettings.aac(AacSettingsProps.builder().bitrate(Bitrate.kbps(192)).build()))
         .build());
 Channel.Builder.create(stack, "Channel")
         .inputs(List.of(InputAttachment.builder().input(input).build()))
         .outputGroups(List.of(OutputGroupConfiguration.hls(HlsOutputGroupProps.builder()
                 .name("hls")
                 .destinations(List.of(OutputDestination.toBucket(bucket, "live/stream")))
                 .outputs(List.of(HlsOutputDefinition.builder().encodes(List.of(video, audio)).outputName("hls_out").build()))
                 .build())))
         .build();
 
  • Method Details

    • getAdaptiveQuantization

      @Stability(Experimental) @Nullable default H264AdaptiveQuantization getAdaptiveQuantization()
      (experimental) The adaptive quantization.

      This allows intra-frame quantizers to vary to improve visual quality.

      Default: H264AdaptiveQuantization.AUTO

    • getAfdSignaling

      @Stability(Experimental) @Nullable default AfdSignaling getAfdSignaling()
      (experimental) Indicates that AFD values will be written into the output stream.

      If afdSignaling is auto, the system tries to preserve the input AFD value (in cases where multiple AFD values are valid). If set to fixed, the AFD value is the value configured in the fixedAfd parameter.

      Default: AfdSignaling.NONE

    • getBufFillPct

      @Stability(Experimental) @Nullable default Number getBufFillPct()
      (experimental) Percentage of the buffer that should initially be filled (HRD buffer model).

      Default: - service default

    • getBufSize

      @Stability(Experimental) @Nullable default Number getBufSize()
      (experimental) Size of the buffer (HRD buffer model) in bits/second.

      Default: - service default

    • getColorMetadata

      @Stability(Experimental) @Nullable default ColorMetadata getColorMetadata()
      (experimental) Whether to include color space metadata in the output.

      Default: - service default

    • getColorSpaceSettings

      @Stability(Experimental) @Nullable default H264ColorSpaceSettings getColorSpaceSettings()
      (experimental) Color space settings for the video.

      Default: - service default

    • getEntropyEncoding

      @Stability(Experimental) @Nullable default H264EntropyEncoding getEntropyEncoding()
      (experimental) The entropy encoding mode.

      CABAC requires Main or High profile.

      Default: - service default

    • getFilterSettings

      @Stability(Experimental) @Nullable default H264FilterSettings getFilterSettings()
      (experimental) Optional video filter settings.

      Default: - service default

    • getFixedAfd

      @Stability(Experimental) @Nullable default String getFixedAfd()
      (experimental) Four-bit AFD value to write on all frames. Only valid when afdSignaling is FIXED.

      Valid values: FIXED_0000, FIXED_0010, FIXED_0011, FIXED_0100, FIXED_1000, FIXED_1001, FIXED_1010, FIXED_1011, FIXED_1100, FIXED_1101, FIXED_1110, FIXED_1111.

      Default: - service default

    • getFlickerAq

      @Stability(Experimental) @Nullable default FlickerAq getFlickerAq()
      (experimental) If enabled, adjusts quantization within each frame to reduce flicker on I-frames.

      Default: FlickerAq.ENABLED

    • getForceFieldPictures

      @Stability(Experimental) @Nullable default H264ForceFieldPictures getForceFieldPictures()
      (experimental) Controls whether coding is on a field basis or frame basis when scan type is interlaced.

      Default: - service default

    • getFramerate

      @Stability(Experimental) @Nullable default Framerate getFramerate()
      (experimental) The video frame rate.

      Default: - follow source

    • getGopBReference

      @Stability(Experimental) @Nullable default GopBReference getGopBReference()
      (experimental) If enabled, uses reference B frames for GOP structures that have B frames > 1.

      Default: - service default

    • getGopClosedCadence

      @Stability(Experimental) @Nullable default Number getGopClosedCadence()
      (experimental) Frequency of closed GOPs.

      Set to 1 for streaming so decoders joining mid-stream get an IDR frame quickly.

      Default: - service default

    • getGopNumBFrames

      @Stability(Experimental) @Nullable default Number getGopNumBFrames()
      (experimental) The number of B-frames between reference frames.

      Default: - service default

    • getGopSize

      @Stability(Experimental) @Nullable default GopSize getGopSize()
      (experimental) The GOP size (keyframe interval).

      Default: GopSize.seconds(1)

    • getLevel

      @Stability(Experimental) @Nullable default H264Level getLevel()
      (experimental) The H.264 level.

      Valid values: 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.

      Default: H264Level.H264_LEVEL_AUTO

    • getLookAheadRateControl

      @Stability(Experimental) @Nullable default LookAheadRateControl getLookAheadRateControl()
      (experimental) Amount of lookahead.

      Low decreases latency/memory; high can produce better quality.

      Default: LookAheadRateControl.HIGH

    • getMinBitrate

      @Stability(Experimental) @Nullable default Number getMinBitrate()
      (experimental) Minimum bitrate in bits/second.

      Default: - service default

    • getMinIInterval

      @Stability(Experimental) @Nullable default Number getMinIInterval()
      (experimental) Only meaningful if sceneChangeDetect is enabled.

      Enforces separation between repeated (cadence) I-frames and I-frames inserted by scene change detection.

      Default: - service default

    • getMinQp

      @Stability(Experimental) @Nullable default Number getMinQp()
      (experimental) Minimum QP value.

      Sets a floor on the quantization parameter.

      Default: - service default

    • getNumRefFrames

      @Stability(Experimental) @Nullable default Number getNumRefFrames()
      (experimental) The number of reference frames to use.

      The encoder might use more if B-frames or interlaced encoding is used.

      Default: - service default

    • getPixelAspectRatio

      @Stability(Experimental) @Nullable default PixelAspectRatio getPixelAspectRatio()
      (experimental) The pixel aspect ratio (PAR) of the video.

      Default: - follow source (or square pixels when framerate is specified)

    • getProfile

      @Stability(Experimental) @Nullable default H264Profile getProfile()
      (experimental) The H.264 profile.

      Default: H264Profile.MAIN

    • getQualityLevel

      @Stability(Experimental) @Nullable default H264QualityLevel getQualityLevel()
      (experimental) Quality level.

      ENHANCED_QUALITY produces slightly better video without increasing bitrate.

      Default: - service default

    • getRateControl

      @Stability(Experimental) @Nullable default H264RateControl getRateControl()
      (experimental) The rate control configuration.

      Default: - CBR with no bitrate (service default)

    • getScanType

      @Stability(Experimental) @Nullable default ScanType getScanType()
      (experimental) Sets the scan type of the output.

      Default: ScanType.PROGRESSIVE

    • getSceneChangeDetect

      @Stability(Experimental) @Nullable default H264SceneChangeDetect getSceneChangeDetect()
      (experimental) Whether scene change detection inserts I-frames on scene changes.

      Default: H264SceneChangeDetect.ENABLED

    • getSlices

      @Stability(Experimental) @Nullable default Number getSlices()
      (experimental) Number of slices per picture.

      Must be <= macroblock rows (progressive) or half (interlaced).

      Default: - encoder chooses based on resolution

    • getSoftness

      @Stability(Experimental) @Nullable default Number getSoftness()
      (experimental) Softness.

      Selects a quantizer matrix; larger values reduce high-frequency content.

      Default: - service default

    • getSpatialAq

      @Stability(Experimental) @Nullable default H264SpatialAq getSpatialAq()
      (experimental) Whether spatial adaptive quantization adjusts quantization within each frame based on spatial variation.

      Default: H264SpatialAq.ENABLED

    • getSubgopLength

      @Stability(Experimental) @Nullable default SubgopLength getSubgopLength()
      (experimental) Sub-GOP length mode.

      Default: - service default

    • getSyntax

      @Stability(Experimental) @Nullable default H264Syntax getSyntax()
      (experimental) Produces a bitstream compliant with SMPTE RP-2027.

      Default: H264Syntax.DEFAULT

    • getTemporalAq

      @Stability(Experimental) @Nullable default H264TemporalAq getTemporalAq()
      (experimental) Whether temporal adaptive quantization adjusts quantization based on temporal variation between frames.

      Default: H264TemporalAq.ENABLED

    • getTimecodeBurnin

      @Stability(Experimental) @Nullable default TimecodeBurninSettings getTimecodeBurnin()
      (experimental) Timecode burn-in settings to overlay timecode on the video.

      Default: - no timecode burn-in

    • getTimecodeInsertion

      @Stability(Experimental) @Nullable default TimecodeInsertion getTimecodeInsertion()
      (experimental) Determines how timecodes are inserted into the video elementary stream.

      This controls insertion into the output elementary stream. The channel's timecodeConfig controls the source of the timecode used for output.

      Default: - service default

    • builder

      @Stability(Experimental) static H264SettingsProps.Builder builder()
      Returns:
      a H264SettingsProps.Builder of H264SettingsProps