mirror of
https://github.com/googleapis/googleapis.git
synced 2026-08-15 12:50:26 +02:00
feat: added support for specifying HEVC codec tag
feat: added support for converting the input video to a supported high dynamic range (HDR) formats feat: added support for DROP_DUPLICATE frame rate conversion strategy to achieve the exact frame rate on the output video feat: added support for fill_content_gaps field to allow processing inputs with significant number of missing frames docs: improve comment formatting, add links, add references PiperOrigin-RevId: 784316559
This commit is contained in:
parent
fecd7d35f4
commit
142ec419af
3 changed files with 225 additions and 76 deletions
|
|
@ -48,8 +48,8 @@ message Job {
|
|||
// The job has been completed successfully.
|
||||
SUCCEEDED = 3;
|
||||
|
||||
// The job has failed. For additional information, see `failure_reason` and
|
||||
// `failure_details`
|
||||
// The job has failed. For additional information, see
|
||||
// [Troubleshooting](https://cloud.google.com/transcoder/docs/troubleshooting).
|
||||
FAILED = 4;
|
||||
}
|
||||
|
||||
|
|
@ -99,7 +99,7 @@ message Job {
|
|||
// formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats).
|
||||
string output_uri = 3 [(google.api.field_behavior) = INPUT_ONLY];
|
||||
|
||||
// Specify the `job_config` for the transcoding job. If you don't specify the
|
||||
// Specify the config for the transcoding job. If you don't specify the
|
||||
// `job_config`, the API selects `templateId`; this template ID is set to
|
||||
// `preset/web-hd` by default. When you use a `template_id` to create a job,
|
||||
// the `Job.config` is populated by the `JobTemplate.config`.<br>
|
||||
|
|
@ -139,7 +139,9 @@ message Job {
|
|||
map<string, string> labels = 16;
|
||||
|
||||
// Output only. An error object that describes the reason for the failure.
|
||||
// This property is always present when `state` is `FAILED`.
|
||||
// This property is always present when
|
||||
// [ProcessingState][google.cloud.video.transcoder.v1.Job.ProcessingState] is
|
||||
// `FAILED`.
|
||||
google.rpc.Status error = 17 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// The processing mode of the job.
|
||||
|
|
@ -156,6 +158,10 @@ message Job {
|
|||
// `AUTODETECT`.
|
||||
OptimizationStrategy optimization = 22
|
||||
[(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. Insert silence and duplicate frames when timestamp gaps are
|
||||
// detected in a given stream.
|
||||
bool fill_content_gaps = 25 [(google.api.field_behavior) = OPTIONAL];
|
||||
}
|
||||
|
||||
// Transcoding job template resource.
|
||||
|
|
@ -183,7 +189,7 @@ message JobConfig {
|
|||
// List of input assets stored in Cloud Storage.
|
||||
repeated Input inputs = 1;
|
||||
|
||||
// List of `Edit atom`s. Defines the ultimate timeline of the resulting
|
||||
// List of edit atoms. Defines the ultimate timeline of the resulting
|
||||
// file or manifest.
|
||||
repeated EditAtom edit_list = 2;
|
||||
|
||||
|
|
@ -228,7 +234,8 @@ message Input {
|
|||
|
||||
// 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 is populated from `Job.input_uri`. See
|
||||
// If empty, the value is populated from
|
||||
// [Job.input_uri][google.cloud.video.transcoder.v1.Job.input_uri]. See
|
||||
// [Supported input and output
|
||||
// formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats).
|
||||
string uri = 2;
|
||||
|
|
@ -239,8 +246,9 @@ message Input {
|
|||
|
||||
// Location of output file(s) in a Cloud Storage bucket.
|
||||
message Output {
|
||||
// URI for the output file(s). For example, `gs://my-bucket/outputs/`.
|
||||
// If empty, the value is populated from `Job.output_uri`. See
|
||||
// URI for the output file(s). For example, `gs://my-bucket/outputs/`. Must be
|
||||
// a directory and not a top-level bucket. If empty, the value is populated
|
||||
// from [Job.output_uri][google.cloud.video.transcoder.v1.Job.output_uri]. See
|
||||
// [Supported input and output
|
||||
// formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats).
|
||||
string uri = 1;
|
||||
|
|
@ -252,8 +260,9 @@ message EditAtom {
|
|||
// mapping.
|
||||
string key = 1;
|
||||
|
||||
// List of `Input.key`s identifying files that should be used in this atom.
|
||||
// The listed `inputs` must have the same timeline.
|
||||
// List of [Input.key][google.cloud.video.transcoder.v1.Input.key] values
|
||||
// identifying files that should be used in this atom. The listed `inputs`
|
||||
// must have the same timeline.
|
||||
repeated string inputs = 2;
|
||||
|
||||
// End time in seconds for the atom, relative to the input file timeline.
|
||||
|
|
@ -295,12 +304,25 @@ message ElementaryStream {
|
|||
|
||||
// Multiplexing settings for output stream.
|
||||
message MuxStream {
|
||||
// A unique key for this multiplexed stream. HLS media manifests will be
|
||||
// named `MuxStream.key` with the `.m3u8` extension suffix.
|
||||
// `fmp4` container configuration.
|
||||
message Fmp4Config {
|
||||
// Optional. Specify the codec tag string that will be used in the media
|
||||
// bitstream. When not specified, the codec appropriate value is used.
|
||||
//
|
||||
// Supported H265 codec tags:
|
||||
//
|
||||
// - `hvc1` (default)
|
||||
// - `hev1`
|
||||
string codec_tag = 1 [(google.api.field_behavior) = OPTIONAL];
|
||||
}
|
||||
|
||||
// A unique key for this multiplexed stream.
|
||||
string key = 1;
|
||||
|
||||
// The name of the generated file. The default is `MuxStream.key` with the
|
||||
// extension suffix corresponding to the `MuxStream.container`.
|
||||
// The name of the generated file. The default is
|
||||
// [MuxStream.key][google.cloud.video.transcoder.v1.MuxStream.key] with the
|
||||
// extension suffix corresponding to the
|
||||
// [MuxStream.container][google.cloud.video.transcoder.v1.MuxStream.container].
|
||||
//
|
||||
// Individual segments also have an incremental 10-digit zero-padded suffix
|
||||
// starting from 0 before the extension, such as `mux_stream0000000123.ts`.
|
||||
|
|
@ -308,11 +330,16 @@ message MuxStream {
|
|||
|
||||
// The container format. The default is `mp4`
|
||||
//
|
||||
// Supported container formats:
|
||||
// Supported streaming formats:
|
||||
//
|
||||
// - `ts`
|
||||
// - `fmp4`- the corresponding file extension is `.m4s`
|
||||
//
|
||||
// Supported standalone file formats:
|
||||
//
|
||||
// - `mp4`
|
||||
// - `mp3`
|
||||
// - `ogg`
|
||||
// - `vtt`
|
||||
//
|
||||
// See also:
|
||||
|
|
@ -320,7 +347,9 @@ message MuxStream {
|
|||
// formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats)
|
||||
string container = 3;
|
||||
|
||||
// List of `ElementaryStream.key`s multiplexed in this stream.
|
||||
// List of
|
||||
// [ElementaryStream.key][google.cloud.video.transcoder.v1.ElementaryStream.key]
|
||||
// values multiplexed in this stream.
|
||||
repeated string elementary_streams = 4;
|
||||
|
||||
// Segment settings for `ts`, `fmp4` and `vtt`.
|
||||
|
|
@ -329,6 +358,12 @@ message MuxStream {
|
|||
// Identifier of the encryption configuration to use. If omitted, output will
|
||||
// be unencrypted.
|
||||
string encryption_id = 7;
|
||||
|
||||
// Specifies the container configuration.
|
||||
oneof container_config {
|
||||
// Optional. `fmp4` container configuration.
|
||||
Fmp4Config fmp4 = 8 [(google.api.field_behavior) = OPTIONAL];
|
||||
}
|
||||
}
|
||||
|
||||
// Manifest configuration.
|
||||
|
|
@ -352,10 +387,31 @@ message Manifest {
|
|||
// The segment reference scheme is not specified.
|
||||
SEGMENT_REFERENCE_SCHEME_UNSPECIFIED = 0;
|
||||
|
||||
// Lists the URLs of media files for each segment.
|
||||
// Explicitly lists the URLs of media files for each segment. For example,
|
||||
// if
|
||||
// [SegmentSettings.individual_segments][google.cloud.video.transcoder.v1.SegmentSettings.individual_segments]
|
||||
// is `true`, then the manifest contains fields similar to the following:
|
||||
// ```xml
|
||||
// <Initialization sourceURL="my-hd-stream-init.m4s"/>
|
||||
// <SegmentList presentationTimeOffset="0" duration="1000"
|
||||
// timescale="10000">
|
||||
// <SegmentURL media="hd-stream0000000000.m4s"/>
|
||||
// <SegmentURL media="hd-stream0000000001.m4s"/>
|
||||
// ...
|
||||
// ```
|
||||
SEGMENT_LIST = 1;
|
||||
|
||||
// Lists each segment from a template with $Number$ variable.
|
||||
// [SegmentSettings.individual_segments][google.cloud.video.transcoder.v1.SegmentSettings.individual_segments]
|
||||
// must be set to `true` to use this segment reference scheme. Uses the
|
||||
// DASH specification
|
||||
// `<SegmentTemplate>` tag to determine the URLs of media files for each
|
||||
// segment. For example:
|
||||
// ```xml
|
||||
// <SegmentTemplate presentationTimeOffset="0" timescale="10000"
|
||||
// initialization="my-hd-stream-init.m4s"
|
||||
// media="hd-stream$Number%010d$.m4s" startNumber="0">
|
||||
// ...
|
||||
// ```
|
||||
SEGMENT_TEMPLATE_NUMBER = 2;
|
||||
}
|
||||
|
||||
|
|
@ -365,18 +421,21 @@ message Manifest {
|
|||
}
|
||||
|
||||
// The name of the generated file. The default is `manifest` with the
|
||||
// extension suffix corresponding to the `Manifest.type`.
|
||||
// extension suffix corresponding to the
|
||||
// [Manifest.type][google.cloud.video.transcoder.v1.Manifest.type].
|
||||
string file_name = 1;
|
||||
|
||||
// Required. Type of the manifest.
|
||||
ManifestType type = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. List of user given `MuxStream.key`s that should appear in this
|
||||
// manifest.
|
||||
// Required. List of user supplied
|
||||
// [MuxStream.key][google.cloud.video.transcoder.v1.MuxStream.key] values 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`.
|
||||
// When [Manifest.type][google.cloud.video.transcoder.v1.Manifest.type] is
|
||||
// `HLS`, a media manifest with name
|
||||
// [MuxStream.key][google.cloud.video.transcoder.v1.MuxStream.key] and `.m3u8`
|
||||
// extension is generated for each element in this list.
|
||||
repeated string mux_streams = 3 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Specifies the manifest configuration.
|
||||
|
|
@ -546,7 +605,7 @@ message Overlay {
|
|||
google.protobuf.Duration end_time_offset = 4;
|
||||
}
|
||||
|
||||
// End previous overlay animation from the video. Without AnimationEnd, the
|
||||
// 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.
|
||||
message AnimationEnd {
|
||||
|
|
@ -572,7 +631,7 @@ message Overlay {
|
|||
// Image overlay.
|
||||
Image image = 1;
|
||||
|
||||
// List of Animations. The list should be chronological, without any time
|
||||
// List of animations. The list should be chronological, without any time
|
||||
// overlap.
|
||||
repeated Animation animations = 2;
|
||||
}
|
||||
|
|
@ -775,6 +834,31 @@ message PreprocessingConfig {
|
|||
|
||||
// Video stream resource.
|
||||
message VideoStream {
|
||||
// The conversion strategy for desired frame rate.
|
||||
enum FrameRateConversionStrategy {
|
||||
// Unspecified frame rate conversion strategy.
|
||||
FRAME_RATE_CONVERSION_STRATEGY_UNSPECIFIED = 0;
|
||||
|
||||
// Selectively retain frames to reduce the output frame rate.
|
||||
// Every _n_ th frame is kept, where `n = ceil(input frame rate / target
|
||||
// frame rate)`. When _n_ = 1 (that is, the target frame rate is greater
|
||||
// than the input frame rate), the output frame rate matches the input frame
|
||||
// rate. When _n_ > 1, frames are dropped and the output frame rate is
|
||||
// equal to `(input frame rate / n)`. For more information, see
|
||||
// [Calculate frame
|
||||
// rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate).
|
||||
DOWNSAMPLE = 1;
|
||||
|
||||
// Drop or duplicate frames to match the specified frame rate.
|
||||
DROP_DUPLICATE = 2;
|
||||
}
|
||||
|
||||
// Convert the input video to a Standard Dynamic Range (SDR) video.
|
||||
message H264ColorFormatSDR {}
|
||||
|
||||
// Convert the input video to a Hybrid Log Gamma (HLG) video.
|
||||
message H264ColorFormatHLG {}
|
||||
|
||||
// H264 codec settings.
|
||||
message H264CodecSettings {
|
||||
// The width of the video in pixels. Must be an even integer.
|
||||
|
|
@ -798,14 +882,14 @@ message VideoStream {
|
|||
int32 height_pixels = 2;
|
||||
|
||||
// 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
|
||||
// [Calculating frame
|
||||
// rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for
|
||||
// more information.
|
||||
// less than or equal to 120.
|
||||
double frame_rate = 3 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Optional. Frame rate conversion strategy for desired frame rate. The
|
||||
// default is `DOWNSAMPLE`.
|
||||
FrameRateConversionStrategy frame_rate_conversion_strategy = 23
|
||||
[(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Required. The video bitrate in bits per second. The minimum value is
|
||||
// 1,000. The maximum value is 800,000,000.
|
||||
int32 bitrate_bps = 4 [(google.api.field_behavior) = REQUIRED];
|
||||
|
|
@ -825,7 +909,7 @@ message VideoStream {
|
|||
// - `yuv444p12` 12-bit HDR pixel format
|
||||
string pixel_format = 5;
|
||||
|
||||
// Specify the `rate_control_mode`. The default is `vbr`.
|
||||
// Specify the mode. The default is `vbr`.
|
||||
//
|
||||
// Supported rate control modes:
|
||||
//
|
||||
|
|
@ -856,16 +940,18 @@ message VideoStream {
|
|||
}
|
||||
|
||||
// Use two-pass encoding strategy to achieve better video quality.
|
||||
// `VideoStream.rate_control_mode` must be `vbr`. The default is `false`.
|
||||
// [H264CodecSettings.rate_control_mode][google.cloud.video.transcoder.v1.VideoStream.H264CodecSettings.rate_control_mode]
|
||||
// must be `vbr`. The default is `false`.
|
||||
bool enable_two_pass = 11;
|
||||
|
||||
// Size of the Video Buffering Verifier (VBV) buffer in bits. Must be
|
||||
// greater than zero. The default is equal to `VideoStream.bitrate_bps`.
|
||||
// greater than zero. The default is equal to
|
||||
// [H264CodecSettings.bitrate_bps][google.cloud.video.transcoder.v1.VideoStream.H264CodecSettings.bitrate_bps].
|
||||
int32 vbv_size_bits = 12;
|
||||
|
||||
// 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`.
|
||||
// [H264CodecSettings.vbv_size_bits][google.cloud.video.transcoder.v1.VideoStream.H264CodecSettings.vbv_size_bits].
|
||||
int32 vbv_fullness_bits = 13;
|
||||
|
||||
// The entropy coder to use. The default is `cabac`.
|
||||
|
|
@ -881,8 +967,9 @@ message VideoStream {
|
|||
bool b_pyramid = 15;
|
||||
|
||||
// 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.
|
||||
// zero. Must be less than
|
||||
// [H264CodecSettings.gop_frame_count][google.cloud.video.transcoder.v1.VideoStream.H264CodecSettings.gop_frame_count]
|
||||
// if set. The default is 0.
|
||||
int32 b_frame_count = 16;
|
||||
|
||||
// Specify the intensity of the adaptive quantizer (AQ). Must be between 0
|
||||
|
|
@ -918,8 +1005,26 @@ message VideoStream {
|
|||
// transcoder to override other fields you set in the `H264CodecSettings`
|
||||
// message.
|
||||
string preset = 20;
|
||||
|
||||
// Color format can be sdr or hlg.
|
||||
oneof color_format {
|
||||
// Optional. SDR color format setting for H264.
|
||||
H264ColorFormatSDR sdr = 21 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. HLG color format setting for H264.
|
||||
H264ColorFormatHLG hlg = 22 [(google.api.field_behavior) = OPTIONAL];
|
||||
}
|
||||
}
|
||||
|
||||
// Convert the input video to a Standard Dynamic Range (SDR) video.
|
||||
message H265ColorFormatSDR {}
|
||||
|
||||
// Convert the input video to a Hybrid Log Gamma (HLG) video.
|
||||
message H265ColorFormatHLG {}
|
||||
|
||||
// Convert the input video to a High Dynamic Range 10 (HDR10) video.
|
||||
message H265ColorFormatHDR10 {}
|
||||
|
||||
// H265 codec settings.
|
||||
message H265CodecSettings {
|
||||
// The width of the video in pixels. Must be an even integer.
|
||||
|
|
@ -943,14 +1048,14 @@ message VideoStream {
|
|||
int32 height_pixels = 2;
|
||||
|
||||
// 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
|
||||
// [Calculating frame
|
||||
// rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for
|
||||
// more information.
|
||||
// less than or equal to 120.
|
||||
double frame_rate = 3 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Optional. Frame rate conversion strategy for desired frame rate. The
|
||||
// default is `DOWNSAMPLE`.
|
||||
FrameRateConversionStrategy frame_rate_conversion_strategy = 23
|
||||
[(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Required. The video bitrate in bits per second. The minimum value is
|
||||
// 1,000. The maximum value is 800,000,000.
|
||||
int32 bitrate_bps = 4 [(google.api.field_behavior) = REQUIRED];
|
||||
|
|
@ -970,7 +1075,7 @@ message VideoStream {
|
|||
// - `yuv444p12` 12-bit HDR pixel format
|
||||
string pixel_format = 5;
|
||||
|
||||
// Specify the `rate_control_mode`. The default is `vbr`.
|
||||
// Specify the mode. The default is `vbr`.
|
||||
//
|
||||
// Supported rate control modes:
|
||||
//
|
||||
|
|
@ -1001,7 +1106,8 @@ message VideoStream {
|
|||
}
|
||||
|
||||
// Use two-pass encoding strategy to achieve better video quality.
|
||||
// `VideoStream.rate_control_mode` must be `vbr`. The default is `false`.
|
||||
// [H265CodecSettings.rate_control_mode][google.cloud.video.transcoder.v1.VideoStream.H265CodecSettings.rate_control_mode]
|
||||
// must be `vbr`. The default is `false`.
|
||||
bool enable_two_pass = 11;
|
||||
|
||||
// Size of the Video Buffering Verifier (VBV) buffer in bits. Must be
|
||||
|
|
@ -1010,7 +1116,7 @@ message VideoStream {
|
|||
|
||||
// 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`.
|
||||
// [H265CodecSettings.vbv_size_bits][google.cloud.video.transcoder.v1.VideoStream.H265CodecSettings.vbv_size_bits].
|
||||
int32 vbv_fullness_bits = 13;
|
||||
|
||||
// Allow B-pyramid for reference frame selection. This may not be supported
|
||||
|
|
@ -1018,8 +1124,9 @@ message VideoStream {
|
|||
bool b_pyramid = 14;
|
||||
|
||||
// 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.
|
||||
// zero. Must be less than
|
||||
// [H265CodecSettings.gop_frame_count][google.cloud.video.transcoder.v1.VideoStream.H265CodecSettings.gop_frame_count]
|
||||
// if set. The default is 0.
|
||||
int32 b_frame_count = 15;
|
||||
|
||||
// Specify the intensity of the adaptive quantizer (AQ). Must be between 0
|
||||
|
|
@ -1070,8 +1177,26 @@ message VideoStream {
|
|||
// transcoder to override other fields you set in the `H265CodecSettings`
|
||||
// message.
|
||||
string preset = 19;
|
||||
|
||||
// Color format can be sdr, hlg, hdr10.
|
||||
oneof color_format {
|
||||
// Optional. SDR color format setting for H265.
|
||||
H265ColorFormatSDR sdr = 20 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. HLG color format setting for H265.
|
||||
H265ColorFormatHLG hlg = 21 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. HDR10 color format setting for H265.
|
||||
H265ColorFormatHDR10 hdr10 = 22 [(google.api.field_behavior) = OPTIONAL];
|
||||
}
|
||||
}
|
||||
|
||||
// Convert the input video to a Standard Dynamic Range (SDR) video.
|
||||
message Vp9ColorFormatSDR {}
|
||||
|
||||
// Convert the input video to a Hybrid Log Gamma (HLG) video.
|
||||
message Vp9ColorFormatHLG {}
|
||||
|
||||
// VP9 codec settings.
|
||||
message Vp9CodecSettings {
|
||||
// The width of the video in pixels. Must be an even integer.
|
||||
|
|
@ -1095,14 +1220,14 @@ message VideoStream {
|
|||
int32 height_pixels = 2;
|
||||
|
||||
// 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
|
||||
// [Calculating frame
|
||||
// rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for
|
||||
// more information.
|
||||
// less than or equal to 120.
|
||||
double frame_rate = 3 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Optional. Frame rate conversion strategy for desired frame rate. The
|
||||
// default is `DOWNSAMPLE`.
|
||||
FrameRateConversionStrategy frame_rate_conversion_strategy = 13
|
||||
[(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Required. The video bitrate in bits per second. The minimum value is
|
||||
// 1,000. The maximum value is 480,000,000.
|
||||
int32 bitrate_bps = 4 [(google.api.field_behavior) = REQUIRED];
|
||||
|
|
@ -1122,7 +1247,7 @@ message VideoStream {
|
|||
// - `yuv444p12` 12-bit HDR pixel format
|
||||
string pixel_format = 5;
|
||||
|
||||
// Specify the `rate_control_mode`. The default is `vbr`.
|
||||
// Specify the mode. The default is `vbr`.
|
||||
//
|
||||
// Supported rate control modes:
|
||||
//
|
||||
|
|
@ -1163,6 +1288,15 @@ message VideoStream {
|
|||
// transcoder to override other fields you set in the `Vp9CodecSettings`
|
||||
// message.
|
||||
string profile = 10;
|
||||
|
||||
// Color format can be sdr or hlg.
|
||||
oneof color_format {
|
||||
// Optional. SDR color format setting for VP9.
|
||||
Vp9ColorFormatSDR sdr = 11 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. HLG color format setting for VP9.
|
||||
Vp9ColorFormatHLG hlg = 12 [(google.api.field_behavior) = OPTIONAL];
|
||||
}
|
||||
}
|
||||
|
||||
// Codec settings can be h264, h265, or vp9.
|
||||
|
|
@ -1180,13 +1314,19 @@ message VideoStream {
|
|||
|
||||
// Audio stream resource.
|
||||
message AudioStream {
|
||||
// The mapping for the `Job.edit_list` atoms with audio `EditAtom.inputs`.
|
||||
// The mapping for the
|
||||
// [JobConfig.edit_list][google.cloud.video.transcoder.v1.JobConfig.edit_list]
|
||||
// atoms with audio
|
||||
// [EditAtom.inputs][google.cloud.video.transcoder.v1.EditAtom.inputs].
|
||||
message AudioMapping {
|
||||
// Required. The `EditAtom.key` that references the atom with audio inputs
|
||||
// in the `Job.edit_list`.
|
||||
// Required. The
|
||||
// [EditAtom.key][google.cloud.video.transcoder.v1.EditAtom.key] that
|
||||
// references the atom with audio inputs in the
|
||||
// [JobConfig.edit_list][google.cloud.video.transcoder.v1.JobConfig.edit_list].
|
||||
string atom_key = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. The `Input.key` that identifies the input file.
|
||||
// Required. The [Input.key][google.cloud.video.transcoder.v1.Input.key]
|
||||
// that identifies the input file.
|
||||
string input_key = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. The zero-based index of the track in the input file.
|
||||
|
|
@ -1213,6 +1353,7 @@ message AudioStream {
|
|||
// - `mp3`
|
||||
// - `ac3`
|
||||
// - `eac3`
|
||||
// - `vorbis`
|
||||
string codec = 1;
|
||||
|
||||
// Required. Audio bitrate in bits per second. Must be between 1 and
|
||||
|
|
@ -1236,7 +1377,10 @@ message AudioStream {
|
|||
// - `lfe` - Low frequency
|
||||
repeated string channel_layout = 4;
|
||||
|
||||
// The mapping for the `Job.edit_list` atoms with audio `EditAtom.inputs`.
|
||||
// The mapping for the
|
||||
// [JobConfig.edit_list][google.cloud.video.transcoder.v1.JobConfig.edit_list]
|
||||
// atoms with audio
|
||||
// [EditAtom.inputs][google.cloud.video.transcoder.v1.EditAtom.inputs].
|
||||
repeated AudioMapping mapping = 5;
|
||||
|
||||
// The audio sample rate in Hertz. The default is 48000 Hertz.
|
||||
|
|
@ -1255,13 +1399,19 @@ message AudioStream {
|
|||
|
||||
// Encoding of a text stream. For example, closed captions or subtitles.
|
||||
message TextStream {
|
||||
// The mapping for the `Job.edit_list` atoms with text `EditAtom.inputs`.
|
||||
// The mapping for the
|
||||
// [JobConfig.edit_list][google.cloud.video.transcoder.v1.JobConfig.edit_list]
|
||||
// atoms with text
|
||||
// [EditAtom.inputs][google.cloud.video.transcoder.v1.EditAtom.inputs].
|
||||
message TextMapping {
|
||||
// Required. The `EditAtom.key` that references atom with text inputs in the
|
||||
// `Job.edit_list`.
|
||||
// Required. The
|
||||
// [EditAtom.key][google.cloud.video.transcoder.v1.EditAtom.key] that
|
||||
// references atom with text inputs in the
|
||||
// [JobConfig.edit_list][google.cloud.video.transcoder.v1.JobConfig.edit_list].
|
||||
string atom_key = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. The `Input.key` that identifies the input file.
|
||||
// Required. The [Input.key][google.cloud.video.transcoder.v1.Input.key]
|
||||
// that identifies the input file.
|
||||
string input_key = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. The zero-based index of the track in the input file.
|
||||
|
|
@ -1285,7 +1435,10 @@ message TextStream {
|
|||
// supported in MP4 files.
|
||||
string language_code = 2;
|
||||
|
||||
// The mapping for the `Job.edit_list` atoms with text `EditAtom.inputs`.
|
||||
// The mapping for the
|
||||
// [JobConfig.edit_list][google.cloud.video.transcoder.v1.JobConfig.edit_list]
|
||||
// atoms with text
|
||||
// [EditAtom.inputs][google.cloud.video.transcoder.v1.EditAtom.inputs].
|
||||
repeated TextMapping mapping = 3;
|
||||
|
||||
// The name for this particular text stream that
|
||||
|
|
|
|||
|
|
@ -1,6 +1,11 @@
|
|||
{
|
||||
"methodConfig": [{
|
||||
"name": [{ "service": "google.cloud.video.transcoder.v1.TranscoderService" }],
|
||||
"name": [
|
||||
{ "service": "google.cloud.video.transcoder.v1.TranscoderService", "method": "ListJobs" },
|
||||
{ "service": "google.cloud.video.transcoder.v1.TranscoderService", "method": "GetJob" },
|
||||
{ "service": "google.cloud.video.transcoder.v1.TranscoderService", "method": "ListJobTemplates" },
|
||||
{ "service": "google.cloud.video.transcoder.v1.TranscoderService", "method": "GetJobTemplate" }
|
||||
],
|
||||
"timeout": "60s",
|
||||
"retryPolicy": {
|
||||
"maxAttempts": 5,
|
||||
|
|
@ -13,12 +18,8 @@
|
|||
{
|
||||
"name": [
|
||||
{ "service": "google.cloud.video.transcoder.v1.TranscoderService", "method": "CreateJob" },
|
||||
{ "service": "google.cloud.video.transcoder.v1.TranscoderService", "method": "ListJobs" },
|
||||
{ "service": "google.cloud.video.transcoder.v1.TranscoderService", "method": "GetJob" },
|
||||
{ "service": "google.cloud.video.transcoder.v1.TranscoderService", "method": "DeleteJob" },
|
||||
{ "service": "google.cloud.video.transcoder.v1.TranscoderService", "method": "CreateJobTemplate" },
|
||||
{ "service": "google.cloud.video.transcoder.v1.TranscoderService", "method": "ListJobTemplates" },
|
||||
{ "service": "google.cloud.video.transcoder.v1.TranscoderService", "method": "GetJobTemplate" },
|
||||
{ "service": "google.cloud.video.transcoder.v1.TranscoderService", "method": "DeleteJobTemplate" }
|
||||
],
|
||||
"timeout": "60s"
|
||||
|
|
|
|||
|
|
@ -13,11 +13,6 @@ documentation:
|
|||
href="https://cloud.google.com/transcoder/docs/concepts/overview">Transcoder
|
||||
API overview</a>.
|
||||
|
||||
backend:
|
||||
rules:
|
||||
- selector: 'google.cloud.video.transcoder.v1.TranscoderService.*'
|
||||
deadline: 30.0
|
||||
|
||||
authentication:
|
||||
rules:
|
||||
- selector: 'google.cloud.video.transcoder.v1.TranscoderService.*'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue