Struct google_api_proto::google::cloud::video::livestream::v1::video_stream::H264CodecSettings
source · pub struct H264CodecSettings {Show 14 fields
pub width_pixels: i32,
pub height_pixels: i32,
pub frame_rate: f64,
pub bitrate_bps: i32,
pub allow_open_gop: bool,
pub vbv_size_bits: i32,
pub vbv_fullness_bits: i32,
pub entropy_coder: String,
pub b_pyramid: bool,
pub b_frame_count: i32,
pub aq_strength: f64,
pub profile: String,
pub tune: String,
pub gop_mode: Option<GopMode>,
}
Expand description
H264 codec settings.
Fields§
§width_pixels: i32
Required. The width of the video in pixels. Must be an even integer. Valid range is [320, 1920].
height_pixels: i32
Required. The height of the video in pixels. Must be an even integer. Valid range is [180, 1080].
frame_rate: f64
Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 60. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. See Calculating frame rate for more information.
bitrate_bps: i32
Required. The video bitrate in bits per second. Minimum value is 10,000.
- For SD resolution (< 720p), must be <= 3,000,000 (3 Mbps).
- For HD resolution (<= 1080p), must be <= 15,000,000 (15 Mbps).
allow_open_gop: bool
Specifies whether an open Group of Pictures (GOP) structure should be
allowed or not. The default is false
.
vbv_size_bits: i32
Size of the Video Buffering Verifier (VBV) buffer in bits. Must be greater than zero. The default is equal to [bitrate_bps][google.cloud.video.livestream.v1.VideoStream.H264CodecSettings.bitrate_bps].
vbv_fullness_bits: i32
Initial fullness of the Video Buffering Verifier (VBV) buffer in bits. Must be greater than zero. The default is equal to 90% of [vbv_size_bits][google.cloud.video.livestream.v1.VideoStream.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: i32
The number of consecutive B-frames. Must be greater than or equal to zero. Must be less than [gop_frame_count][google.cloud.video.livestream.v1.VideoStream.H264CodecSettings.gop_frame_count] if set. The default is 0.
aq_strength: f64
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
(default)high
The available options are FFmpeg-compatible Profile Options. Note that certain values for this field may cause the transcoder to override other fields you set in the [H264CodecSettings][google.cloud.video.livestream.v1.VideoStream.H264CodecSettings] message.
tune: String
Enforces the specified codec tune. The available options are FFmpeg-compatible Encode Options Note that certain values for this field may cause the transcoder to override other fields you set in the [H264CodecSettings][google.cloud.video.livestream.v1.VideoStream.H264CodecSettings] message.
gop_mode: Option<GopMode>
GOP mode can be either by frame count or duration.
Trait Implementations§
source§impl Clone for H264CodecSettings
impl Clone for H264CodecSettings
source§fn clone(&self) -> H264CodecSettings
fn clone(&self) -> H264CodecSettings
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for H264CodecSettings
impl Debug for H264CodecSettings
source§impl Default for H264CodecSettings
impl Default for H264CodecSettings
source§impl Message for H264CodecSettings
impl Message for H264CodecSettings
source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
source§fn encode_to_vec(&self) -> Vec<u8>where
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8>where
Self: Sized,
source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
source§fn encode_length_delimited_to_vec(&self) -> Vec<u8>where
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8>where
Self: Sized,
source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
. Read moresource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
.source§impl PartialEq for H264CodecSettings
impl PartialEq for H264CodecSettings
source§fn eq(&self, other: &H264CodecSettings) -> bool
fn eq(&self, other: &H264CodecSettings) -> bool
self
and other
values to be equal, and is used
by ==
.impl StructuralPartialEq for H264CodecSettings
Auto Trait Implementations§
impl Freeze for H264CodecSettings
impl RefUnwindSafe for H264CodecSettings
impl Send for H264CodecSettings
impl Sync for H264CodecSettings
impl Unpin for H264CodecSettings
impl UnwindSafe for H264CodecSettings
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request