# frozen_string_literal: true # Copyright 2021 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Auto-generated by gapic-generator-ruby. DO NOT EDIT! module Google module Cloud module Video module Transcoder module V1beta1 # Transcoding job resource. # @!attribute [rw] name # @return [::String] # The resource name of the job. # Format: `projects/{project}/locations/{location}/jobs/{job}` # @!attribute [rw] input_uri # @return [::String] # Input only. Specify the `input_uri` to populate empty `uri` fields in each element of # `Job.config.inputs` or `JobTemplate.config.inputs` when using template. # URI of the media. Input files must be at least 5 seconds in duration and # stored in Cloud Storage (for example, `gs://bucket/inputs/file.mp4`). # @!attribute [rw] output_uri # @return [::String] # Input only. Specify the `output_uri` to populate an empty `Job.config.output.uri` or # `JobTemplate.config.output.uri` when using template. # URI for the output file(s). For example, `gs://my-bucket/outputs/`. # @!attribute [rw] template_id # @return [::String] # Input only. Specify the `template_id` to use for populating `Job.config`. The default # is `preset/web-hd`. # # Preset Transcoder templates: # - `preset/{preset_id}` # # - User defined JobTemplate: # `{job_template_id}` # @!attribute [rw] config # @return [::Google::Cloud::Video::Transcoder::V1beta1::JobConfig] # The configuration for this job. # @!attribute [rw] priority # @return [::Integer] # Specify the priority of the job. Enter a value between 0 and 100, where 0 # is the lowest priority and 100 is the highest priority. The default is 0. # @!attribute [r] origin_uri # @return [::Google::Cloud::Video::Transcoder::V1beta1::Job::OriginUri] # Output only. The origin URI. # # @!attribute [r] state # @return [::Google::Cloud::Video::Transcoder::V1beta1::Job::ProcessingState] # Output only. The current state of the job. # @!attribute [r] progress # @return [::Google::Cloud::Video::Transcoder::V1beta1::Progress] # Output only. Estimated fractional progress, from `0` to `1` for each # step. # # @!attribute [r] failure_reason # @return [::String] # Output only. A description of the reason for the failure. This property is # always present when `state` is `FAILED`. # @!attribute [r] failure_details # @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::FailureDetail>] # Output only. List of failure details. This property may contain additional # information about the failure when `failure_reason` is present. # # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] # Output only. The time the job was created. # @!attribute [r] start_time # @return [::Google::Protobuf::Timestamp] # Output only. The time the transcoding started. # @!attribute [r] end_time # @return [::Google::Protobuf::Timestamp] # Output only. The time the transcoding finished. # @!attribute [rw] ttl_after_completion_days # @return [::Integer] # Job time to live value in days, which will be effective after job # completion. Job should be deleted automatically after the given TTL. Enter # a value between 1 and 90. The default is 30. class Job include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # The origin URI. # @!attribute [rw] hls # @return [::String] # HLS manifest URI per https://tools.ietf.org/html/rfc8216#section-4.3.4. # If multiple HLS manifests are created, only the first one is listed. # @!attribute [rw] dash # @return [::String] # Dash manifest URI. If multiple Dash manifests are created, only the first # one is listed. class OriginUri include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # The current state of the job. module ProcessingState # The processing state is not specified. PROCESSING_STATE_UNSPECIFIED = 0 # The job is enqueued and will be picked up for processing soon. PENDING = 1 # The job is being processed. RUNNING = 2 # The job has been completed successfully. SUCCEEDED = 3 # The job has failed. For additional information, see `failure_reason` and # `failure_details` FAILED = 4 end end # Transcoding job template resource. # @!attribute [rw] name # @return [::String] # The resource name of the job template. # Format: # `projects/{project}/locations/{location}/jobTemplates/{job_template}` # @!attribute [rw] config # @return [::Google::Cloud::Video::Transcoder::V1beta1::JobConfig] # The configuration for this template. class JobTemplate include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Job configuration # @!attribute [rw] inputs # @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::Input>] # List of input assets stored in Cloud Storage. # @!attribute [rw] edit_list # @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::EditAtom>] # List of `Edit atom`s. Defines the ultimate timeline of the resulting # file or manifest. # @!attribute [rw] elementary_streams # @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::ElementaryStream>] # List of elementary streams. # @!attribute [rw] mux_streams # @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::MuxStream>] # List of multiplexing settings for output streams. # @!attribute [rw] manifests # @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::Manifest>] # List of output manifests. # @!attribute [rw] output # @return [::Google::Cloud::Video::Transcoder::V1beta1::Output] # Output configuration. # @!attribute [rw] ad_breaks # @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::AdBreak>] # List of ad breaks. Specifies where to insert ad break tags in the output # manifests. # @!attribute [rw] pubsub_destination # @return [::Google::Cloud::Video::Transcoder::V1beta1::PubsubDestination] # Destination on Pub/Sub. # @!attribute [rw] sprite_sheets # @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::SpriteSheet>] # List of output sprite sheets. # @!attribute [rw] overlays # @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::Overlay>] # List of overlays on the output video, in descending Z-order. class JobConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Input asset. # @!attribute [rw] key # @return [::String] # A unique key for this input. Must be specified when using advanced # mapping and edit lists. # @!attribute [rw] uri # @return [::String] # URI of the media. Input files must be at least 5 seconds in duration and # stored in Cloud Storage (for example, `gs://bucket/inputs/file.mp4`). # If empty, the value will be populated from `Job.input_uri`. # @!attribute [rw] preprocessing_config # @return [::Google::Cloud::Video::Transcoder::V1beta1::PreprocessingConfig] # Preprocessing configurations. class Input include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Location of output file(s) in a Cloud Storage bucket. # @!attribute [rw] uri # @return [::String] # URI for the output file(s). For example, `gs://my-bucket/outputs/`. # If empty the value is populated from `Job.output_uri`. class Output include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Edit atom. # @!attribute [rw] key # @return [::String] # A unique key for this atom. Must be specified when using advanced # mapping. # @!attribute [rw] inputs # @return [::Array<::String>] # List of `Input.key`s identifying files that should be used in this atom. # The listed `inputs` must have the same timeline. # @!attribute [rw] end_time_offset # @return [::Google::Protobuf::Duration] # End time in seconds for the atom, relative to the input file timeline. # When `end_time_offset` is not specified, the `inputs` are used until # the end of the atom. # @!attribute [rw] start_time_offset # @return [::Google::Protobuf::Duration] # Start time in seconds for the atom, relative to the input file timeline. # The default is `0s`. class EditAtom include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Ad break. # @!attribute [rw] start_time_offset # @return [::Google::Protobuf::Duration] # Start time in seconds for the ad break, relative to the output file # timeline. The default is `0s`. class AdBreak include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Encoding of an input file such as an audio, video, or text track. # Elementary streams must be packaged before # mapping and sharing between different output formats. # @!attribute [rw] key # @return [::String] # A unique key for this elementary stream. # @!attribute [rw] video_stream # @return [::Google::Cloud::Video::Transcoder::V1beta1::VideoStream] # Encoding of a video stream. # @!attribute [rw] audio_stream # @return [::Google::Cloud::Video::Transcoder::V1beta1::AudioStream] # Encoding of an audio stream. # @!attribute [rw] text_stream # @return [::Google::Cloud::Video::Transcoder::V1beta1::TextStream] # Encoding of a text stream. For example, closed captions or subtitles. class ElementaryStream include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Multiplexing settings for output stream. # @!attribute [rw] key # @return [::String] # A unique key for this multiplexed stream. HLS media manifests will be # named `MuxStream.key` with the `".m3u8"` extension suffix. # @!attribute [rw] file_name # @return [::String] # The name of the generated file. The default is `MuxStream.key` with the # extension suffix corresponding to the `MuxStream.container`. # # Individual segments also have an incremental 10-digit zero-padded suffix # starting from 0 before the extension, such as `"mux_stream0000000123.ts"`. # @!attribute [rw] container # @return [::String] # The container format. The default is `"mp4"` # # Supported container formats: # - 'ts' # - 'fmp4'- the corresponding file extension is `".m4s"` # - 'mp4' # - 'vtt' # @!attribute [rw] elementary_streams # @return [::Array<::String>] # List of `ElementaryStream.key`s multiplexed in this stream. # @!attribute [rw] segment_settings # @return [::Google::Cloud::Video::Transcoder::V1beta1::SegmentSettings] # Segment settings for `"ts"`, `"fmp4"` and `"vtt"`. # @!attribute [rw] encryption # @return [::Google::Cloud::Video::Transcoder::V1beta1::Encryption] # Encryption settings. class MuxStream include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Manifest configuration. # @!attribute [rw] file_name # @return [::String] # The name of the generated file. The default is `"manifest"` with the # extension suffix corresponding to the `Manifest.type`. # @!attribute [rw] type # @return [::Google::Cloud::Video::Transcoder::V1beta1::Manifest::ManifestType] # Required. Type of the manifest, can be "HLS" or "DASH". # @!attribute [rw] mux_streams # @return [::Array<::String>] # Required. List of user given `MuxStream.key`s that should appear in this manifest. # # When `Manifest.type` is `HLS`, a media manifest with name `MuxStream.key` # and `.m3u8` extension is generated for each element of the # `Manifest.mux_streams`. class Manifest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # The manifest type can be either `"HLS"` or `"DASH"`. module ManifestType # The manifest type is not specified. MANIFEST_TYPE_UNSPECIFIED = 0 # Create `"HLS"` manifest. The corresponding file extension is `".m3u8"`. HLS = 1 # Create `"DASH"` manifest. The corresponding file extension is `".mpd"`. DASH = 2 end end # A Pub/Sub destination. # @!attribute [rw] topic # @return [::String] # The name of the Pub/Sub topic to publish job completion notification # to. For example: `projects/{project}/topics/{topic}`. class PubsubDestination include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Sprite sheet configuration. # @!attribute [rw] format # @return [::String] # Format type. The default is `"jpeg"`. # # Supported formats: # - 'jpeg' # @!attribute [rw] file_prefix # @return [::String] # Required. File name prefix for the generated sprite sheets. # # Each sprite sheet has an incremental 10-digit zero-padded suffix starting # from 0 before the extension, such as `"sprite_sheet0000000123.jpeg"`. # @!attribute [rw] sprite_width_pixels # @return [::Integer] # Required. The width of sprite in pixels. Must be an even integer. To preserve the # source aspect ratio, set the {::Google::Cloud::Video::Transcoder::V1beta1::SpriteSheet#sprite_width_pixels SpriteSheet.sprite_width_pixels} field or # the {::Google::Cloud::Video::Transcoder::V1beta1::SpriteSheet#sprite_height_pixels SpriteSheet.sprite_height_pixels} field, but not both (the API will # automatically calculate the missing field). # @!attribute [rw] sprite_height_pixels # @return [::Integer] # Required. The height of sprite in pixels. Must be an even integer. To preserve the # source aspect ratio, set the {::Google::Cloud::Video::Transcoder::V1beta1::SpriteSheet#sprite_height_pixels SpriteSheet.sprite_height_pixels} field or # the {::Google::Cloud::Video::Transcoder::V1beta1::SpriteSheet#sprite_width_pixels SpriteSheet.sprite_width_pixels} field, but not both (the API will # automatically calculate the missing field). # @!attribute [rw] column_count # @return [::Integer] # The maximum number of sprites per row in a sprite sheet. The default is 0, # which indicates no maximum limit. # @!attribute [rw] row_count # @return [::Integer] # The maximum number of rows per sprite sheet. When the sprite sheet is full, # a new sprite sheet is created. The default is 0, which indicates no maximum # limit. # @!attribute [rw] start_time_offset # @return [::Google::Protobuf::Duration] # Start time in seconds, relative to the output file timeline. Determines the # first sprite to pick. The default is `0s`. # @!attribute [rw] end_time_offset # @return [::Google::Protobuf::Duration] # End time in seconds, relative to the output file timeline. When # `end_time_offset` is not specified, the sprites are generated until the end # of the output file. # @!attribute [rw] total_count # @return [::Integer] # Total number of sprites. Create the specified number of sprites # distributed evenly across the timeline of the output media. The default # is 100. # @!attribute [rw] interval # @return [::Google::Protobuf::Duration] # Starting from `0s`, create sprites at regular intervals. Specify the # interval value in seconds. # @!attribute [rw] quality # @return [::Integer] # The quality of the generated sprite sheet. Enter a value between 1 # and 100, where 1 is the lowest quality and 100 is the highest quality. # The default is 100. A high quality value corresponds to a low image data # compression ratio. class SpriteSheet include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Overlay configuration. # @!attribute [rw] image # @return [::Google::Cloud::Video::Transcoder::V1beta1::Overlay::Image] # Image overlay. # @!attribute [rw] animations # @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::Overlay::Animation>] # List of Animations. The list should be chronological, without any time # overlap. class Overlay include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # 2D normalized coordinates. Default: `{0.0, 0.0}` # @!attribute [rw] x # @return [::Float] # Normalized x coordinate. # @!attribute [rw] y # @return [::Float] # Normalized y coordinate. class NormalizedCoordinate include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Overlaid jpeg image. # @!attribute [rw] uri # @return [::String] # Required. URI of the JPEG image in Cloud Storage. For example, # `gs://bucket/inputs/image.jpeg`. JPEG is the only supported image type. # @!attribute [rw] resolution # @return [::Google::Cloud::Video::Transcoder::V1beta1::Overlay::NormalizedCoordinate] # Normalized image resolution, based on output video resolution. Valid # values: `0.0`–`1.0`. To respect the original image aspect ratio, set # either `x` or `y` to `0.0`. To use the original image resolution, set # both `x` and `y` to `0.0`. # @!attribute [rw] alpha # @return [::Float] # Target image opacity. Valid values are from `1.0` (solid, default) to # `0.0` (transparent), exclusive. Set this to a value greater than `0.0`. class Image include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Display static overlay object. # @!attribute [rw] xy # @return [::Google::Cloud::Video::Transcoder::V1beta1::Overlay::NormalizedCoordinate] # Normalized coordinates based on output video resolution. Valid # values: `0.0`–`1.0`. `xy` is the upper-left coordinate of the overlay # object. For example, use the x and y coordinates \\{0,0} to position the # top-left corner of the overlay animation in the top-left corner of the # output video. # @!attribute [rw] start_time_offset # @return [::Google::Protobuf::Duration] # The time to start displaying the overlay object, in seconds. Default: 0 class AnimationStatic include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Display overlay object with fade animation. # @!attribute [rw] fade_type # @return [::Google::Cloud::Video::Transcoder::V1beta1::Overlay::FadeType] # Required. Type of fade animation: `FADE_IN` or `FADE_OUT`. # @!attribute [rw] xy # @return [::Google::Cloud::Video::Transcoder::V1beta1::Overlay::NormalizedCoordinate] # Normalized coordinates based on output video resolution. Valid # values: `0.0`–`1.0`. `xy` is the upper-left coordinate of the overlay # object. For example, use the x and y coordinates \\{0,0} to position the # top-left corner of the overlay animation in the top-left corner of the # output video. # @!attribute [rw] start_time_offset # @return [::Google::Protobuf::Duration] # The time to start the fade animation, in seconds. Default: 0 # @!attribute [rw] end_time_offset # @return [::Google::Protobuf::Duration] # The time to end the fade animation, in seconds. Default: # `start_time_offset` + 1s class AnimationFade include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # End previous overlay animation from the video. Without AnimationEnd, the # overlay object will keep the state of previous animation until the end of # the video. # @!attribute [rw] start_time_offset # @return [::Google::Protobuf::Duration] # The time to end overlay object, in seconds. Default: 0 class AnimationEnd include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Animation types. # @!attribute [rw] animation_static # @return [::Google::Cloud::Video::Transcoder::V1beta1::Overlay::AnimationStatic] # Display static overlay object. # @!attribute [rw] animation_fade # @return [::Google::Cloud::Video::Transcoder::V1beta1::Overlay::AnimationFade] # Display overlay object with fade animation. # @!attribute [rw] animation_end # @return [::Google::Cloud::Video::Transcoder::V1beta1::Overlay::AnimationEnd] # End previous animation. class Animation include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Fade type for the overlay: `FADE_IN` or `FADE_OUT`. module FadeType # The fade type is not specified. FADE_TYPE_UNSPECIFIED = 0 # Fade the overlay object into view. FADE_IN = 1 # Fade the overlay object out of view. FADE_OUT = 2 end end # Preprocessing configurations. # @!attribute [rw] color # @return [::Google::Cloud::Video::Transcoder::V1beta1::PreprocessingConfig::Color] # Color preprocessing configuration. # @!attribute [rw] denoise # @return [::Google::Cloud::Video::Transcoder::V1beta1::PreprocessingConfig::Denoise] # Denoise preprocessing configuration. # @!attribute [rw] deblock # @return [::Google::Cloud::Video::Transcoder::V1beta1::PreprocessingConfig::Deblock] # Deblock preprocessing configuration. # @!attribute [rw] audio # @return [::Google::Cloud::Video::Transcoder::V1beta1::PreprocessingConfig::Audio] # Audio preprocessing configuration. # @!attribute [rw] crop # @return [::Google::Cloud::Video::Transcoder::V1beta1::PreprocessingConfig::Crop] # Specify the video cropping configuration. # @!attribute [rw] pad # @return [::Google::Cloud::Video::Transcoder::V1beta1::PreprocessingConfig::Pad] # Specify the video pad filter configuration. class PreprocessingConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Color preprocessing configuration. # @!attribute [rw] saturation # @return [::Float] # Control color saturation of the video. Enter a value between -1 and 1, # where -1 is fully desaturated and 1 is maximum saturation. 0 is no # change. The default is 0. # @!attribute [rw] contrast # @return [::Float] # Control black and white contrast of the video. Enter a value between -1 # and 1, where -1 is minimum contrast and 1 is maximum contrast. 0 is no # change. The default is 0. # @!attribute [rw] brightness # @return [::Float] # Control brightness of the video. Enter a value between -1 and 1, where -1 # is minimum brightness and 1 is maximum brightness. 0 is no change. The # default is 0. class Color include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Denoise preprocessing configuration. # @!attribute [rw] strength # @return [::Float] # Set strength of the denoise. Enter a value between 0 and 1. The higher # the value, the smoother the image. 0 is no denoising. The default is 0. # @!attribute [rw] tune # @return [::String] # Set the denoiser mode. The default is `"standard"`. # # Supported denoiser modes: # - 'standard' # - 'grain' class Denoise include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Deblock preprocessing configuration. # @!attribute [rw] strength # @return [::Float] # Set strength of the deblocker. Enter a value between 0 and 1. The higher # the value, the stronger the block removal. 0 is no deblocking. The # default is 0. # @!attribute [rw] enabled # @return [::Boolean] # Enable deblocker. The default is `false`. class Deblock include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Audio preprocessing configuration. # @!attribute [rw] lufs # @return [::Float] # Specify audio loudness normalization in loudness units relative to full # scale (LUFS). Enter a value between -24 and 0 (the default), where: # # * -24 is the Advanced Television Systems Committee (ATSC A/85) standard # * -23 is the EU R128 broadcast standard # * -19 is the prior standard for online mono audio # * -18 is the ReplayGain standard # * -16 is the prior standard for stereo audio # * -14 is the new online audio standard recommended by Spotify, as well # as Amazon Echo # * 0 disables normalization # @!attribute [rw] high_boost # @return [::Boolean] # Enable boosting high frequency components. The default is `false`. # @!attribute [rw] low_boost # @return [::Boolean] # Enable boosting low frequency components. The default is `false`. class Audio include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Video cropping configuration for the input video. The cropped input video # is scaled to match the output resolution. # @!attribute [rw] top_pixels # @return [::Integer] # The number of pixels to crop from the top. The default is 0. # @!attribute [rw] bottom_pixels # @return [::Integer] # The number of pixels to crop from the bottom. The default is 0. # @!attribute [rw] left_pixels # @return [::Integer] # The number of pixels to crop from the left. The default is 0. # @!attribute [rw] right_pixels # @return [::Integer] # The number of pixels to crop from the right. The default is 0. class Crop include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Pad filter configuration for the input video. The padded input video # is scaled after padding with black to match the output resolution. # @!attribute [rw] top_pixels # @return [::Integer] # The number of pixels to add to the top. The default is 0. # @!attribute [rw] bottom_pixels # @return [::Integer] # The number of pixels to add to the bottom. The default is 0. # @!attribute [rw] left_pixels # @return [::Integer] # The number of pixels to add to the left. The default is 0. # @!attribute [rw] right_pixels # @return [::Integer] # The number of pixels to add to the right. The default is 0. class Pad include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # Video stream resource. # @!attribute [rw] codec # @return [::String] # Codec type. The following codecs are supported: # # * `h264` (default) # * `h265` # * `vp9` # @!attribute [rw] profile # @return [::String] # Enforces the specified codec profile. The following profiles are supported: # # * `baseline` # * `main` # * `high` (default) # # The available options are # FFmpeg-compatible. Note that certain values for this # field may cause the transcoder to override other fields you set in the # `VideoStream` message. # @!attribute [rw] tune # @return [::String] # Enforces the specified codec tune. The available options are # FFmpeg-compatible. Note that certain values for this # field may cause the transcoder to override other fields you set in the # `VideoStream` message. # @!attribute [rw] preset # @return [::String] # Enforces the specified codec preset. The default is `veryfast`. The # available options are # FFmpeg-compatible. Note that certain values for this # field may cause the transcoder to override other fields you set in the # `VideoStream` message. # @!attribute [rw] height_pixels # @return [::Integer] # 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. # @!attribute [rw] width_pixels # @return [::Integer] # 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. # @!attribute [rw] pixel_format # @return [::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. # @!attribute [rw] bitrate_bps # @return [::Integer] # Required. The video bitrate in bits per second. The minimum value is 1,000. # The maximum value for H264/H265 is 800,000,000. The maximum value for VP9 # is 480,000,000. # @!attribute [rw] rate_control_mode # @return [::String] # Specify the `rate_control_mode`. The default is `"vbr"`. # # Supported rate control modes: # - 'vbr' - variable bitrate # - 'crf' - constant rate factor # @!attribute [rw] enable_two_pass # @return [::Boolean] # Use two-pass encoding strategy to achieve better video quality. # `VideoStream.rate_control_mode` must be `"vbr"`. The default is `false`. # @!attribute [rw] crf_level # @return [::Integer] # 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. # @!attribute [rw] vbv_size_bits # @return [::Integer] # Size of the Video Buffering Verifier (VBV) buffer in bits. Must be greater # than zero. The default is equal to `VideoStream.bitrate_bps`. # @!attribute [rw] vbv_fullness_bits # @return [::Integer] # Initial fullness of the Video Buffering Verifier (VBV) buffer in bits. Must # be greater than zero. The default is equal to 90% of # `VideoStream.vbv_size_bits`. # @!attribute [rw] allow_open_gop # @return [::Boolean] # Specifies whether an open Group of Pictures (GOP) structure should be # allowed or not. The default is `false`. # @!attribute [rw] gop_frame_count # @return [::Integer] # Select the GOP size based on the specified frame count. Must be greater # than zero. # @!attribute [rw] gop_duration # @return [::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`](#SegmentSettings), and # [`segmentDuration`](#SegmentSettings) must be divisible by `gopDuration`. # @!attribute [rw] entropy_coder # @return [::String] # The entropy coder to use. The default is `"cabac"`. # # Supported entropy coders: # - 'cavlc' # - 'cabac' # @!attribute [rw] b_pyramid # @return [::Boolean] # Allow B-pyramid for reference frame selection. This may not be supported # on all decoders. The default is `false`. # @!attribute [rw] b_frame_count # @return [::Integer] # The number of consecutive B-frames. Must be greater than or equal to zero. # Must be less than `VideoStream.gop_frame_count` if set. The default is 0. # @!attribute [rw] frame_rate # @return [::Float] # Required. The target video frame rate in frames per second (FPS). Must be less than # or equal to 120. 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 # [Calculate frame # rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for # more information. # @!attribute [rw] aq_strength # @return [::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. class VideoStream include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Audio stream resource. # @!attribute [rw] codec # @return [::String] # The codec for this audio stream. The default is `"aac"`. # # Supported audio codecs: # - 'aac' # - 'aac-he' # - 'aac-he-v2' # - 'mp3' # - 'ac3' # - 'eac3' # @!attribute [rw] bitrate_bps # @return [::Integer] # Required. Audio bitrate in bits per second. Must be between 1 and 10,000,000. # @!attribute [rw] channel_count # @return [::Integer] # Number of audio channels. Must be between 1 and 6. The default is 2. # @!attribute [rw] channel_layout # @return [::Array<::String>] # A list of channel names specifying layout of the audio channels. # This only affects the metadata embedded in the container headers, if # supported by the specified format. The default is `["fl", "fr"]`. # # Supported channel names: # - 'fl' - Front left channel # - 'fr' - Front right channel # - 'sl' - Side left channel # - 'sr' - Side right channel # - 'fc' - Front center channel # - 'lfe' - Low frequency # @!attribute [rw] mapping # @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::AudioStream::AudioAtom>] # The mapping for the `Job.edit_list` atoms with audio `EditAtom.inputs`. # @!attribute [rw] sample_rate_hertz # @return [::Integer] # The audio sample rate in Hertz. The default is 48000 Hertz. class AudioStream include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # The mapping for the `Job.edit_list` atoms with audio `EditAtom.inputs`. # @!attribute [rw] key # @return [::String] # Required. The `EditAtom.key` that references the atom with audio inputs in the # `Job.edit_list`. # @!attribute [rw] channels # @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::AudioStream::AudioAtom::AudioChannel>] # List of `Channel`s for this audio stream. # for in-depth explanation. class AudioAtom include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # The audio channel. # @!attribute [rw] inputs # @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::AudioStream::AudioAtom::AudioChannel::AudioChannelInput>] # List of `Job.inputs` for this audio channel. class AudioChannel include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Identifies which input file, track, and channel should be used. # @!attribute [rw] key # @return [::String] # Required. The `Input.key` that identifies the input file. # @!attribute [rw] track # @return [::Integer] # Required. The zero-based index of the track in the input file. # @!attribute [rw] channel # @return [::Integer] # Required. The zero-based index of the channel in the input file. # @!attribute [rw] gain_db # @return [::Float] # Audio volume control in dB. Negative values decrease volume, # positive values increase. The default is 0. class AudioChannelInput include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end end # Encoding of a text stream. For example, closed captions or subtitles. # @!attribute [rw] codec # @return [::String] # The codec for this text stream. The default is `"webvtt"`. # # Supported text codecs: # - 'srt' # - 'ttml' # - 'cea608' # - 'cea708' # - 'webvtt' # @!attribute [rw] language_code # @return [::String] # Required. The BCP-47 language code, such as `"en-US"` or `"sr-Latn"`. For more # information, see # https://www.unicode.org/reports/tr35/#Unicode_locale_identifier. # @!attribute [rw] mapping # @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::TextStream::TextAtom>] # The mapping for the `Job.edit_list` atoms with text `EditAtom.inputs`. class TextStream include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # The mapping for the `Job.edit_list` atoms with text `EditAtom.inputs`. # @!attribute [rw] key # @return [::String] # Required. The `EditAtom.key` that references atom with text inputs in the # `Job.edit_list`. # @!attribute [rw] inputs # @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::TextStream::TextAtom::TextInput>] # List of `Job.inputs` that should be embedded in this atom. Only one # input is supported. class TextAtom include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Identifies which input file and track should be used. # @!attribute [rw] key # @return [::String] # Required. The `Input.key` that identifies the input file. # @!attribute [rw] track # @return [::Integer] # Required. The zero-based index of the track in the input file. class TextInput include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # Segment settings for `"ts"`, `"fmp4"` and `"vtt"`. # @!attribute [rw] segment_duration # @return [::Google::Protobuf::Duration] # Duration of the segments in seconds. The default is `"6.0s"`. Note that # `segmentDuration` must be greater than or equal to # [`gopDuration`](#videostream), and `segmentDuration` must be divisible by # [`gopDuration`](#videostream). # @!attribute [rw] individual_segments # @return [::Boolean] # Required. Create an individual segment file. The default is `false`. class SegmentSettings include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Encryption settings. # @!attribute [rw] key # @return [::String] # Required. 128 bit encryption key represented as lowercase hexadecimal digits. # @!attribute [rw] iv # @return [::String] # Required. 128 bit Initialization Vector (IV) represented as lowercase hexadecimal # digits. # @!attribute [rw] aes_128 # @return [::Google::Cloud::Video::Transcoder::V1beta1::Encryption::Aes128Encryption] # Configuration for AES-128 encryption. # @!attribute [rw] sample_aes # @return [::Google::Cloud::Video::Transcoder::V1beta1::Encryption::SampleAesEncryption] # Configuration for SAMPLE-AES encryption. # @!attribute [rw] mpeg_cenc # @return [::Google::Cloud::Video::Transcoder::V1beta1::Encryption::MpegCommonEncryption] # Configuration for MPEG Common Encryption (MPEG-CENC). class Encryption include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Configuration for AES-128 encryption. # @!attribute [rw] key_uri # @return [::String] # Required. URI of the key delivery service. This URI is inserted into the M3U8 # header. class Aes128Encryption include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration for SAMPLE-AES encryption. # @!attribute [rw] key_uri # @return [::String] # Required. URI of the key delivery service. This URI is inserted into the M3U8 # header. class SampleAesEncryption include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration for MPEG Common Encryption (MPEG-CENC). # @!attribute [rw] key_id # @return [::String] # Required. 128 bit Key ID represented as lowercase hexadecimal digits for use with # common encryption. # @!attribute [rw] scheme # @return [::String] # Required. Specify the encryption scheme. # # Supported encryption schemes: # - 'cenc' # - 'cbcs' class MpegCommonEncryption include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # Estimated fractional progress for each step, from `0` to `1`. # @!attribute [rw] analyzed # @return [::Float] # Estimated fractional progress for `analyzing` step. # @!attribute [rw] encoded # @return [::Float] # Estimated fractional progress for `encoding` step. # @!attribute [rw] uploaded # @return [::Float] # Estimated fractional progress for `uploading` step. # @!attribute [rw] notified # @return [::Float] # Estimated fractional progress for `notifying` step. class Progress include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Additional information about the reasons for the failure. # @!attribute [rw] description # @return [::String] # A description of the failure. class FailureDetail include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end end end end