# Google Cloud Video Transcoder V1 Client - Class H264CodecSettings (1.4.0)

1.4.0 (latest) 1.3.2 1.2.0 1.1.0 1.0.3 0.10.5 0.9.1 0.8.2 0.7.1 0.6.0 0.5.3 Reference documentation and code samples for the Google Cloud Video Transcoder V1 Client class H264CodecSettings.

H264 codec settings.

Generated from protobuf message `google.cloud.video.transcoder.v1.VideoStream.H264CodecSettings`

## Namespace

Google \\ Cloud \\ Video \\ Transcoder \\ V1 \\ VideoStream

## Methods

### __construct

Constructor.

| **Parameters** ||
|---|---|
| **Name** | **Description** |
| `data` | `array` Optional. Data for populating the Message object. |
| `↳ width_pixels` | `int` The width of the video in pixels. Must be an even integer. When not specified, the width is adjusted to match the specified height and input aspect ratio. If both are omitted, the input width is used. For portrait videos that contain horizontal ASR and rotation metadata, provide the width, in pixels, per the horizontal ASR. The API calculates the height per the horizontal ASR. The API detects any rotation metadata and swaps the requested height and width for the output. |
| `↳ height_pixels` | `int` The height of the video in pixels. Must be an even integer. When not specified, the height is adjusted to match the specified width and input aspect ratio. If both are omitted, the input height is used. For portrait videos that contain horizontal ASR and rotation metadata, provide the height, in pixels, per the horizontal ASR. The API calculates the width per the horizontal ASR. The API detects any rotation metadata and swaps the requested height and width for the output. |
| `↳ frame_rate` | `float` Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120. |
| `↳ frame_rate_conversion_strategy` | `int` Optional. Frame rate conversion strategy for desired frame rate. The default is `DOWNSAMPLE`. |
| `↳ bitrate_bps` | `int` Required. The video bitrate in bits per second. The minimum value is 1,000. The maximum value is 800,000,000. |
| `↳ pixel_format` | `string` Pixel format to use. The default is `yuv420p`. Supported pixel formats: - `yuv420p` pixel format - `yuv422p` pixel format - `yuv444p` pixel format - `yuv420p10` 10-bit HDR pixel format - `yuv422p10` 10-bit HDR pixel format - `yuv444p10` 10-bit HDR pixel format - `yuv420p12` 12-bit HDR pixel format - `yuv422p12` 12-bit HDR pixel format - `yuv444p12` 12-bit HDR pixel format |
| `↳ rate_control_mode` | `string` Specify the mode. The default is `vbr`. Supported rate control modes: - `vbr` - variable bitrate - `crf` - constant rate factor |
| `↳ crf_level` | `int` Target CRF level. Must be between 10 and 36, where 10 is the highest quality and 36 is the most efficient compression. The default is 21. |
| `↳ allow_open_gop` | `bool` Specifies whether an open Group of Pictures (GOP) structure should be allowed or not. The default is `false`. |
| `↳ gop_frame_count` | `int` Select the GOP size based on the specified frame count. Must be greater than zero. |
| `↳ gop_duration` | `https://protobuf.dev/reference/php/api-docs/Google/Protobuf/Duration` Select the GOP size based on the specified duration. The default is `3s`. Note that `gopDuration` must be less than or equal to [`segmentDuration`](https://docs.cloud.google.com/php/docs/reference/cloud-video-transcoder/latest/V1.VideoStream.H264CodecSettings#SegmentSettings), and [`segmentDuration`](https://docs.cloud.google.com/php/docs/reference/cloud-video-transcoder/latest/V1.VideoStream.H264CodecSettings#SegmentSettings) must be divisible by `gopDuration`. |
| `↳ enable_two_pass` | `bool` Use two-pass encoding strategy to achieve better video quality. H264CodecSettings.rate_control_mode must be `vbr`. The default is `false`. |
| `↳ vbv_size_bits` | `int` Size of the Video Buffering Verifier (VBV) buffer in bits. Must be greater than zero. The default is equal to H264CodecSettings.bitrate_bps. |
| `↳ vbv_fullness_bits` | `int` Initial fullness of the Video Buffering Verifier (VBV) buffer in bits. Must be greater than zero. The default is equal to 90% of H264CodecSettings.vbv_size_bits. |
| `↳ entropy_coder` | `string` The entropy coder to use. The default is `cabac`. Supported entropy coders: - `cavlc` - `cabac` |
| `↳ b_pyramid` | `bool` Allow B-pyramid for reference frame selection. This may not be supported on all decoders. The default is `false`. |
| `↳ b_frame_count` | `int` The number of consecutive B-frames. Must be greater than or equal to zero. Must be less than H264CodecSettings.gop_frame_count if set. The default is 0. |
| `↳ aq_strength` | `float` Specify the intensity of the adaptive quantizer (AQ). Must be between 0 and 1, where 0 disables the quantizer and 1 maximizes the quantizer. A higher value equals a lower bitrate but smoother image. The default is 0. |
| `↳ profile` | `string` Enforces the specified codec profile. The following profiles are supported: \* \* `baseline` \* \* `main` \* \* `high` (default) The available options are [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.264#Tune). Note that certain values for this field may cause the transcoder to override other fields you set in the `H264CodecSettings` message. |
| `↳ tune` | `string` Enforces the specified codec tune. The available options are [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.264#Tune). Note that certain values for this field may cause the transcoder to override other fields you set in the `H264CodecSettings` message. |
| `↳ preset` | `string` Enforces the specified codec preset. The default is `veryfast`. The available options are [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.264#Preset). Note that certain values for this field may cause the transcoder to override other fields you set in the `H264CodecSettings` message. |
| `↳ sdr` | `https://docs.cloud.google.com/php/docs/reference/cloud-video-transcoder/latest/V1.VideoStream.H264ColorFormatSDR` Optional. SDR color format setting for H264. |
| `↳ hlg` | `https://docs.cloud.google.com/php/docs/reference/cloud-video-transcoder/latest/V1.VideoStream.H264ColorFormatHLG` Optional. HLG color format setting for H264. |

### getWidthPixels

The width of the video in pixels. Must be an even integer.

When not specified, the width is adjusted to match the specified height
and input aspect ratio. If both are omitted, the input width is used.
For portrait videos that contain horizontal ASR and rotation metadata,
provide the width, in pixels, per the horizontal ASR. The API calculates
the height per the horizontal ASR. The API detects any rotation metadata
and swaps the requested height and width for the output.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `int` |   |

### setWidthPixels

The width of the video in pixels. Must be an even integer.

When not specified, the width is adjusted to match the specified height
and input aspect ratio. If both are omitted, the input width is used.
For portrait videos that contain horizontal ASR and rotation metadata,
provide the width, in pixels, per the horizontal ASR. The API calculates
the height per the horizontal ASR. The API detects any rotation metadata
and swaps the requested height and width for the output.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `int` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getHeightPixels

The height of the video in pixels. Must be an even integer.

When not specified, the height is adjusted to match the specified width
and input aspect ratio. If both are omitted, the input height is used.
For portrait videos that contain horizontal ASR and rotation metadata,
provide the height, in pixels, per the horizontal ASR. The API calculates
the width per the horizontal ASR. The API detects any rotation metadata
and swaps the requested height and width for the output.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `int` |   |

### setHeightPixels

The height of the video in pixels. Must be an even integer.

When not specified, the height is adjusted to match the specified width
and input aspect ratio. If both are omitted, the input height is used.
For portrait videos that contain horizontal ASR and rotation metadata,
provide the height, in pixels, per the horizontal ASR. The API calculates
the width per the horizontal ASR. The API detects any rotation metadata
and swaps the requested height and width for the output.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `int` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getFrameRate

Required. The target video frame rate in frames per second (FPS). Must be
less than or equal to 120.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `float` |   |

### setFrameRate

Required. The target video frame rate in frames per second (FPS). Must be
less than or equal to 120.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `float` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getFrameRateConversionStrategy

Optional. Frame rate conversion strategy for desired frame rate. The
default is `DOWNSAMPLE`.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `int` | Enum of type [FrameRateConversionStrategy](https://docs.cloud.google.com/php/docs/reference/cloud-video-transcoder/latest/V1.VideoStream.FrameRateConversionStrategy). |

### setFrameRateConversionStrategy

Optional. Frame rate conversion strategy for desired frame rate. The
default is `DOWNSAMPLE`.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `int` Enum of type [FrameRateConversionStrategy](https://docs.cloud.google.com/php/docs/reference/cloud-video-transcoder/latest/V1.VideoStream.FrameRateConversionStrategy). |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getBitrateBps

Required. The video bitrate in bits per second. The minimum value is
1,000. The maximum value is 800,000,000.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `int` |   |

### setBitrateBps

Required. The video bitrate in bits per second. The minimum value is
1,000. The maximum value is 800,000,000.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `int` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getPixelFormat

Pixel format to use. The default is `yuv420p`.

Supported pixel formats:

- `yuv420p` pixel format
- `yuv422p` pixel format
- `yuv444p` pixel format
- `yuv420p10` 10-bit HDR pixel format
- `yuv422p10` 10-bit HDR pixel format
- `yuv444p10` 10-bit HDR pixel format
- `yuv420p12` 12-bit HDR pixel format
- `yuv422p12` 12-bit HDR pixel format
- `yuv444p12` 12-bit HDR pixel format

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `string` |   |

### setPixelFormat

Pixel format to use. The default is `yuv420p`.

Supported pixel formats:

- `yuv420p` pixel format
- `yuv422p` pixel format
- `yuv444p` pixel format
- `yuv420p10` 10-bit HDR pixel format
- `yuv422p10` 10-bit HDR pixel format
- `yuv444p10` 10-bit HDR pixel format
- `yuv420p12` 12-bit HDR pixel format
- `yuv422p12` 12-bit HDR pixel format
- `yuv444p12` 12-bit HDR pixel format

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `string` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getRateControlMode

Specify the mode. The default is `vbr`.

Supported rate control modes:

- `vbr` - variable bitrate
- `crf` - constant rate factor

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `string` |   |

### setRateControlMode

Specify the mode. The default is `vbr`.

Supported rate control modes:

- `vbr` - variable bitrate
- `crf` - constant rate factor

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `string` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getCrfLevel

Target CRF level. Must be between 10 and 36, where 10 is the highest
quality and 36 is the most efficient compression. The default is 21.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `int` |   |

### setCrfLevel

Target CRF level. Must be between 10 and 36, where 10 is the highest
quality and 36 is the most efficient compression. The default is 21.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `int` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getAllowOpenGop

Specifies whether an open Group of Pictures (GOP) structure should be
allowed or not. The default is `false`.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `bool` |   |

### setAllowOpenGop

Specifies whether an open Group of Pictures (GOP) structure should be
allowed or not. The default is `false`.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `bool` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getGopFrameCount

Select the GOP size based on the specified frame count. Must be greater
than zero.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `int` |   |

### hasGopFrameCount

### setGopFrameCount

Select the GOP size based on the specified frame count. Must be greater
than zero.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `int` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getGopDuration

Select the GOP size based on the specified duration. The default is
`3s`. Note that `gopDuration` must be less than or equal to
[`segmentDuration`](https://docs.cloud.google.com/php/docs/reference/cloud-video-transcoder/latest/V1.VideoStream.H264CodecSettings#SegmentSettings), and
[`segmentDuration`](https://docs.cloud.google.com/php/docs/reference/cloud-video-transcoder/latest/V1.VideoStream.H264CodecSettings#SegmentSettings) must be divisible by
`gopDuration`.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://protobuf.dev/reference/php/api-docs/Google/Protobuf/Duration|null` |   |

### hasGopDuration

### setGopDuration

Select the GOP size based on the specified duration. The default is
`3s`. Note that `gopDuration` must be less than or equal to
[`segmentDuration`](https://docs.cloud.google.com/php/docs/reference/cloud-video-transcoder/latest/V1.VideoStream.H264CodecSettings#SegmentSettings), and
[`segmentDuration`](https://docs.cloud.google.com/php/docs/reference/cloud-video-transcoder/latest/V1.VideoStream.H264CodecSettings#SegmentSettings) must be divisible by
`gopDuration`.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `https://protobuf.dev/reference/php/api-docs/Google/Protobuf/Duration` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getEnableTwoPass

Use two-pass encoding strategy to achieve better video quality.

H264CodecSettings.rate_control_mode
must be `vbr`. The default is `false`.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `bool` |   |

### setEnableTwoPass

Use two-pass encoding strategy to achieve better video quality.

H264CodecSettings.rate_control_mode
must be `vbr`. The default is `false`.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `bool` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getVbvSizeBits

Size of the Video Buffering Verifier (VBV) buffer in bits. Must be
greater than zero. The default is equal to
H264CodecSettings.bitrate_bps.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `int` |   |

### setVbvSizeBits

Size of the Video Buffering Verifier (VBV) buffer in bits. Must be
greater than zero. The default is equal to
H264CodecSettings.bitrate_bps.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `int` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getVbvFullnessBits

Initial fullness of the Video Buffering Verifier (VBV) buffer in bits.

Must be greater than zero. The default is equal to 90% of
H264CodecSettings.vbv_size_bits.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `int` |   |

### setVbvFullnessBits

Initial fullness of the Video Buffering Verifier (VBV) buffer in bits.

Must be greater than zero. The default is equal to 90% of
H264CodecSettings.vbv_size_bits.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `int` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getEntropyCoder

The entropy coder to use. The default is `cabac`.

Supported entropy coders:

- `cavlc`
- `cabac`

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `string` |   |

### setEntropyCoder

The entropy coder to use. The default is `cabac`.

Supported entropy coders:

- `cavlc`
- `cabac`

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `string` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getBPyramid

Allow B-pyramid for reference frame selection. This may not be supported
on all decoders. The default is `false`.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `bool` |   |

### setBPyramid

Allow B-pyramid for reference frame selection. This may not be supported
on all decoders. The default is `false`.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `bool` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getBFrameCount

The number of consecutive B-frames. Must be greater than or equal to
zero. Must be less than
H264CodecSettings.gop_frame_count
if set. The default is 0.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `int` |   |

### setBFrameCount

The number of consecutive B-frames. Must be greater than or equal to
zero. Must be less than
H264CodecSettings.gop_frame_count
if set. The default is 0.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `int` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getAqStrength

Specify the intensity of the adaptive quantizer (AQ). Must be between 0
and 1, where 0 disables the quantizer and 1 maximizes the quantizer. A
higher value equals a lower bitrate but smoother image. The default is 0.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `float` |   |

### setAqStrength

Specify the intensity of the adaptive quantizer (AQ). Must be between 0
and 1, where 0 disables the quantizer and 1 maximizes the quantizer. A
higher value equals a lower bitrate but smoother image. The default is 0.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `float` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getProfile

Enforces the specified codec profile. The following profiles are
supported:

- `baseline`
- `main`
- `high` (default) The available options are [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.264#Tune).

Note that certain values for this field may cause the
transcoder to override other fields you set in the `H264CodecSettings`
message.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `string` |   |

### setProfile

Enforces the specified codec profile. The following profiles are
supported:

- `baseline`
- `main`
- `high` (default) The available options are [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.264#Tune).

Note that certain values for this field may cause the
transcoder to override other fields you set in the `H264CodecSettings`
message.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `string` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getTune

Enforces the specified codec tune. The available options are
[FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.264#Tune).

Note that certain values for this field may cause the
transcoder to override other fields you set in the `H264CodecSettings`
message.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `string` |   |

### setTune

Enforces the specified codec tune. The available options are
[FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.264#Tune).

Note that certain values for this field may cause the
transcoder to override other fields you set in the `H264CodecSettings`
message.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `string` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getPreset

Enforces the specified codec preset. The default is `veryfast`. The
available options are
[FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.264#Preset).

Note that certain values for this field may cause the
transcoder to override other fields you set in the `H264CodecSettings`
message.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `string` |   |

### setPreset

Enforces the specified codec preset. The default is `veryfast`. The
available options are
[FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.264#Preset).

Note that certain values for this field may cause the
transcoder to override other fields you set in the `H264CodecSettings`
message.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `string` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getSdr

Optional. SDR color format setting for H264.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/php/docs/reference/cloud-video-transcoder/latest/V1.VideoStream.H264ColorFormatSDR|null` |   |

### hasSdr

### setSdr

Optional. SDR color format setting for H264.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `https://docs.cloud.google.com/php/docs/reference/cloud-video-transcoder/latest/V1.VideoStream.H264ColorFormatSDR` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getHlg

Optional. HLG color format setting for H264.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/php/docs/reference/cloud-video-transcoder/latest/V1.VideoStream.H264ColorFormatHLG|null` |   |

### hasHlg

### setHlg

Optional. HLG color format setting for H264.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `https://docs.cloud.google.com/php/docs/reference/cloud-video-transcoder/latest/V1.VideoStream.H264ColorFormatHLG` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getGopMode

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `string` |   |

### getColorFormat

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `string` |   |