# Google Cloud Video Transcoder V1 Client - Class Vp9CodecSettings (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 Vp9CodecSettings.

VP9 codec settings.

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

## 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 480,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_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. **Note:** This field is not supported. |
| `↳ 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.Vp9CodecSettings#SegmentSettings), and [`segmentDuration`](https://docs.cloud.google.com/php/docs/reference/cloud-video-transcoder/latest/V1.VideoStream.Vp9CodecSettings#SegmentSettings) must be divisible by `gopDuration`. |
| `↳ profile` | `string` Enforces the specified codec profile. The following profiles are supported: \* \* `profile0` (default) \* \* `profile1` \* \* `profile2` \* \* `profile3` The available options are [WebM-compatible](https://www.webmproject.org/vp9/profiles/). Note that certain values for this field may cause the transcoder to override other fields you set in the `Vp9CodecSettings` message. |
| `↳ sdr` | `https://docs.cloud.google.com/php/docs/reference/cloud-video-transcoder/latest/V1.VideoStream.Vp9ColorFormatSDR` Optional. SDR color format setting for VP9. |
| `↳ hlg` | `https://docs.cloud.google.com/php/docs/reference/cloud-video-transcoder/latest/V1.VideoStream.Vp9ColorFormatHLG` Optional. HLG color format setting for VP9. |

### 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 480,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 480,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

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

### setRateControlMode

Specify the mode. The default is `vbr`.

Supported rate control modes:

- `vbr` - variable bitrate

| **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.

**Note:** This field is not supported.

| **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.

**Note:** This field is not supported.

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

| **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.Vp9CodecSettings#SegmentSettings), and
[`segmentDuration`](https://docs.cloud.google.com/php/docs/reference/cloud-video-transcoder/latest/V1.VideoStream.Vp9CodecSettings#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.Vp9CodecSettings#SegmentSettings), and
[`segmentDuration`](https://docs.cloud.google.com/php/docs/reference/cloud-video-transcoder/latest/V1.VideoStream.Vp9CodecSettings#SegmentSettings) must be divisible by
`gopDuration`.

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

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

### getProfile

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

- `profile0` (default)
- `profile1`
- `profile2`
- `profile3` The available options are [WebM-compatible](https://www.webmproject.org/vp9/profiles/).

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

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

### setProfile

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

- `profile0` (default)
- `profile1`
- `profile2`
- `profile3` The available options are [WebM-compatible](https://www.webmproject.org/vp9/profiles/).

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

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

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

### getSdr

Optional. SDR color format setting for VP9.

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

### hasSdr

### setSdr

Optional. SDR color format setting for VP9.

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

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

### getHlg

Optional. HLG color format setting for VP9.

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

### hasHlg

### setHlg

Optional. HLG color format setting for VP9.

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

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

### getGopMode

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

### getColorFormat

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