google-cloud-video-transcoder-v1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,1182 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2021 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Cloud
22
+ module Video
23
+ module Transcoder
24
+ module V1
25
+ # Transcoding job resource.
26
+ # @!attribute [rw] name
27
+ # @return [::String]
28
+ # The resource name of the job.
29
+ # Format: `projects/{project}/locations/{location}/jobs/{job}`
30
+ # @!attribute [rw] input_uri
31
+ # @return [::String]
32
+ # Input only. Specify the `input_uri` to populate empty `uri` fields in each element of
33
+ # `Job.config.inputs` or `JobTemplate.config.inputs` when using template.
34
+ # URI of the media. Input files must be at least 5 seconds in duration and
35
+ # stored in Cloud Storage (for example, `gs://bucket/inputs/file.mp4`).
36
+ # @!attribute [rw] output_uri
37
+ # @return [::String]
38
+ # Input only. Specify the `output_uri` to populate an empty `Job.config.output.uri` or
39
+ # `JobTemplate.config.output.uri` when using template.
40
+ # URI for the output file(s). For example, `gs://my-bucket/outputs/`.
41
+ # @!attribute [rw] template_id
42
+ # @return [::String]
43
+ # Input only. Specify the `template_id` to use for populating `Job.config`. The default
44
+ # is `preset/web-hd`.
45
+ #
46
+ # Preset Transcoder templates:
47
+ # - `preset/{preset_id}`
48
+ #
49
+ # - User defined JobTemplate:
50
+ # `{job_template_id}`
51
+ # @!attribute [rw] config
52
+ # @return [::Google::Cloud::Video::Transcoder::V1::JobConfig]
53
+ # The configuration for this job.
54
+ # @!attribute [r] state
55
+ # @return [::Google::Cloud::Video::Transcoder::V1::Job::ProcessingState]
56
+ # Output only. The current state of the job.
57
+ # @!attribute [r] create_time
58
+ # @return [::Google::Protobuf::Timestamp]
59
+ # Output only. The time the job was created.
60
+ # @!attribute [r] start_time
61
+ # @return [::Google::Protobuf::Timestamp]
62
+ # Output only. The time the transcoding started.
63
+ # @!attribute [r] end_time
64
+ # @return [::Google::Protobuf::Timestamp]
65
+ # Output only. The time the transcoding finished.
66
+ # @!attribute [rw] ttl_after_completion_days
67
+ # @return [::Integer]
68
+ # Job time to live value in days, which will be effective after job
69
+ # completion. Job should be deleted automatically after the given TTL. Enter
70
+ # a value between 1 and 90. The default is 30.
71
+ # @!attribute [r] error
72
+ # @return [::Google::Rpc::Status]
73
+ # Output only. An error object that describes the reason for the failure.
74
+ # This property is always present when `state` is `FAILED`.
75
+ class Job
76
+ include ::Google::Protobuf::MessageExts
77
+ extend ::Google::Protobuf::MessageExts::ClassMethods
78
+
79
+ # The current state of the job.
80
+ module ProcessingState
81
+ # The processing state is not specified.
82
+ PROCESSING_STATE_UNSPECIFIED = 0
83
+
84
+ # The job is enqueued and will be picked up for processing soon.
85
+ PENDING = 1
86
+
87
+ # The job is being processed.
88
+ RUNNING = 2
89
+
90
+ # The job has been completed successfully.
91
+ SUCCEEDED = 3
92
+
93
+ # The job has failed. For additional information, see `failure_reason` and
94
+ # `failure_details`
95
+ FAILED = 4
96
+ end
97
+ end
98
+
99
+ # Transcoding job template resource.
100
+ # @!attribute [rw] name
101
+ # @return [::String]
102
+ # The resource name of the job template.
103
+ # Format:
104
+ # `projects/{project}/locations/{location}/jobTemplates/{job_template}`
105
+ # @!attribute [rw] config
106
+ # @return [::Google::Cloud::Video::Transcoder::V1::JobConfig]
107
+ # The configuration for this template.
108
+ class JobTemplate
109
+ include ::Google::Protobuf::MessageExts
110
+ extend ::Google::Protobuf::MessageExts::ClassMethods
111
+ end
112
+
113
+ # Job configuration
114
+ # @!attribute [rw] inputs
115
+ # @return [::Array<::Google::Cloud::Video::Transcoder::V1::Input>]
116
+ # List of input assets stored in Cloud Storage.
117
+ # @!attribute [rw] edit_list
118
+ # @return [::Array<::Google::Cloud::Video::Transcoder::V1::EditAtom>]
119
+ # List of `Edit atom`s. Defines the ultimate timeline of the resulting
120
+ # file or manifest.
121
+ # @!attribute [rw] elementary_streams
122
+ # @return [::Array<::Google::Cloud::Video::Transcoder::V1::ElementaryStream>]
123
+ # List of elementary streams.
124
+ # @!attribute [rw] mux_streams
125
+ # @return [::Array<::Google::Cloud::Video::Transcoder::V1::MuxStream>]
126
+ # List of multiplexing settings for output streams.
127
+ # @!attribute [rw] manifests
128
+ # @return [::Array<::Google::Cloud::Video::Transcoder::V1::Manifest>]
129
+ # List of output manifests.
130
+ # @!attribute [rw] output
131
+ # @return [::Google::Cloud::Video::Transcoder::V1::Output]
132
+ # Output configuration.
133
+ # @!attribute [rw] ad_breaks
134
+ # @return [::Array<::Google::Cloud::Video::Transcoder::V1::AdBreak>]
135
+ # List of ad breaks. Specifies where to insert ad break tags in the output
136
+ # manifests.
137
+ # @!attribute [rw] pubsub_destination
138
+ # @return [::Google::Cloud::Video::Transcoder::V1::PubsubDestination]
139
+ # Destination on Pub/Sub.
140
+ # @!attribute [rw] sprite_sheets
141
+ # @return [::Array<::Google::Cloud::Video::Transcoder::V1::SpriteSheet>]
142
+ # List of output sprite sheets.
143
+ # @!attribute [rw] overlays
144
+ # @return [::Array<::Google::Cloud::Video::Transcoder::V1::Overlay>]
145
+ # List of overlays on the output video, in descending Z-order.
146
+ class JobConfig
147
+ include ::Google::Protobuf::MessageExts
148
+ extend ::Google::Protobuf::MessageExts::ClassMethods
149
+ end
150
+
151
+ # Input asset.
152
+ # @!attribute [rw] key
153
+ # @return [::String]
154
+ # A unique key for this input. Must be specified when using advanced
155
+ # mapping and edit lists.
156
+ # @!attribute [rw] uri
157
+ # @return [::String]
158
+ # URI of the media. Input files must be at least 5 seconds in duration and
159
+ # stored in Cloud Storage (for example, `gs://bucket/inputs/file.mp4`).
160
+ # If empty, the value will be populated from `Job.input_uri`.
161
+ # @!attribute [rw] preprocessing_config
162
+ # @return [::Google::Cloud::Video::Transcoder::V1::PreprocessingConfig]
163
+ # Preprocessing configurations.
164
+ class Input
165
+ include ::Google::Protobuf::MessageExts
166
+ extend ::Google::Protobuf::MessageExts::ClassMethods
167
+ end
168
+
169
+ # Location of output file(s) in a Cloud Storage bucket.
170
+ # @!attribute [rw] uri
171
+ # @return [::String]
172
+ # URI for the output file(s). For example, `gs://my-bucket/outputs/`.
173
+ # If empty the value is populated from `Job.output_uri`.
174
+ class Output
175
+ include ::Google::Protobuf::MessageExts
176
+ extend ::Google::Protobuf::MessageExts::ClassMethods
177
+ end
178
+
179
+ # Edit atom.
180
+ # @!attribute [rw] key
181
+ # @return [::String]
182
+ # A unique key for this atom. Must be specified when using advanced
183
+ # mapping.
184
+ # @!attribute [rw] inputs
185
+ # @return [::Array<::String>]
186
+ # List of `Input.key`s identifying files that should be used in this atom.
187
+ # The listed `inputs` must have the same timeline.
188
+ # @!attribute [rw] end_time_offset
189
+ # @return [::Google::Protobuf::Duration]
190
+ # End time in seconds for the atom, relative to the input file timeline.
191
+ # When `end_time_offset` is not specified, the `inputs` are used until
192
+ # the end of the atom.
193
+ # @!attribute [rw] start_time_offset
194
+ # @return [::Google::Protobuf::Duration]
195
+ # Start time in seconds for the atom, relative to the input file timeline.
196
+ # The default is `0s`.
197
+ class EditAtom
198
+ include ::Google::Protobuf::MessageExts
199
+ extend ::Google::Protobuf::MessageExts::ClassMethods
200
+ end
201
+
202
+ # Ad break.
203
+ # @!attribute [rw] start_time_offset
204
+ # @return [::Google::Protobuf::Duration]
205
+ # Start time in seconds for the ad break, relative to the output file
206
+ # timeline. The default is `0s`.
207
+ class AdBreak
208
+ include ::Google::Protobuf::MessageExts
209
+ extend ::Google::Protobuf::MessageExts::ClassMethods
210
+ end
211
+
212
+ # Encoding of an input file such as an audio, video, or text track.
213
+ # Elementary streams must be packaged before
214
+ # mapping and sharing between different output formats.
215
+ # @!attribute [rw] key
216
+ # @return [::String]
217
+ # A unique key for this elementary stream.
218
+ # @!attribute [rw] video_stream
219
+ # @return [::Google::Cloud::Video::Transcoder::V1::VideoStream]
220
+ # Encoding of a video stream.
221
+ # @!attribute [rw] audio_stream
222
+ # @return [::Google::Cloud::Video::Transcoder::V1::AudioStream]
223
+ # Encoding of an audio stream.
224
+ # @!attribute [rw] text_stream
225
+ # @return [::Google::Cloud::Video::Transcoder::V1::TextStream]
226
+ # Encoding of a text stream. For example, closed captions or subtitles.
227
+ class ElementaryStream
228
+ include ::Google::Protobuf::MessageExts
229
+ extend ::Google::Protobuf::MessageExts::ClassMethods
230
+ end
231
+
232
+ # Multiplexing settings for output stream.
233
+ # @!attribute [rw] key
234
+ # @return [::String]
235
+ # A unique key for this multiplexed stream. HLS media manifests will be
236
+ # named `MuxStream.key` with the `".m3u8"` extension suffix.
237
+ # @!attribute [rw] file_name
238
+ # @return [::String]
239
+ # The name of the generated file. The default is `MuxStream.key` with the
240
+ # extension suffix corresponding to the `MuxStream.container`.
241
+ #
242
+ # Individual segments also have an incremental 10-digit zero-padded suffix
243
+ # starting from 0 before the extension, such as `"mux_stream0000000123.ts"`.
244
+ # @!attribute [rw] container
245
+ # @return [::String]
246
+ # The container format. The default is `"mp4"`
247
+ #
248
+ # Supported container formats:
249
+ # - 'ts'
250
+ # - 'fmp4'- the corresponding file extension is `".m4s"`
251
+ # - 'mp4'
252
+ # - 'vtt'
253
+ # @!attribute [rw] elementary_streams
254
+ # @return [::Array<::String>]
255
+ # List of `ElementaryStream.key`s multiplexed in this stream.
256
+ # @!attribute [rw] segment_settings
257
+ # @return [::Google::Cloud::Video::Transcoder::V1::SegmentSettings]
258
+ # Segment settings for `"ts"`, `"fmp4"` and `"vtt"`.
259
+ # @!attribute [rw] encryption
260
+ # @return [::Google::Cloud::Video::Transcoder::V1::Encryption]
261
+ # Encryption settings.
262
+ class MuxStream
263
+ include ::Google::Protobuf::MessageExts
264
+ extend ::Google::Protobuf::MessageExts::ClassMethods
265
+ end
266
+
267
+ # Manifest configuration.
268
+ # @!attribute [rw] file_name
269
+ # @return [::String]
270
+ # The name of the generated file. The default is `"manifest"` with the
271
+ # extension suffix corresponding to the `Manifest.type`.
272
+ # @!attribute [rw] type
273
+ # @return [::Google::Cloud::Video::Transcoder::V1::Manifest::ManifestType]
274
+ # Required. Type of the manifest, can be "HLS" or "DASH".
275
+ # @!attribute [rw] mux_streams
276
+ # @return [::Array<::String>]
277
+ # Required. List of user given `MuxStream.key`s that should appear in this manifest.
278
+ #
279
+ # When `Manifest.type` is `HLS`, a media manifest with name `MuxStream.key`
280
+ # and `.m3u8` extension is generated for each element of the
281
+ # `Manifest.mux_streams`.
282
+ class Manifest
283
+ include ::Google::Protobuf::MessageExts
284
+ extend ::Google::Protobuf::MessageExts::ClassMethods
285
+
286
+ # The manifest type can be either `"HLS"` or `"DASH"`.
287
+ module ManifestType
288
+ # The manifest type is not specified.
289
+ MANIFEST_TYPE_UNSPECIFIED = 0
290
+
291
+ # Create `"HLS"` manifest. The corresponding file extension is `".m3u8"`.
292
+ HLS = 1
293
+
294
+ # Create `"DASH"` manifest. The corresponding file extension is `".mpd"`.
295
+ DASH = 2
296
+ end
297
+ end
298
+
299
+ # A Pub/Sub destination.
300
+ # @!attribute [rw] topic
301
+ # @return [::String]
302
+ # The name of the Pub/Sub topic to publish job completion notification
303
+ # to. For example: `projects/{project}/topics/{topic}`.
304
+ class PubsubDestination
305
+ include ::Google::Protobuf::MessageExts
306
+ extend ::Google::Protobuf::MessageExts::ClassMethods
307
+ end
308
+
309
+ # Sprite sheet configuration.
310
+ # @!attribute [rw] format
311
+ # @return [::String]
312
+ # Format type. The default is `"jpeg"`.
313
+ #
314
+ # Supported formats:
315
+ # - 'jpeg'
316
+ # @!attribute [rw] file_prefix
317
+ # @return [::String]
318
+ # Required. File name prefix for the generated sprite sheets.
319
+ #
320
+ # Each sprite sheet has an incremental 10-digit zero-padded suffix starting
321
+ # from 0 before the extension, such as `"sprite_sheet0000000123.jpeg"`.
322
+ # @!attribute [rw] sprite_width_pixels
323
+ # @return [::Integer]
324
+ # Required. The width of sprite in pixels. Must be an even integer. To preserve the
325
+ # source aspect ratio, set the {::Google::Cloud::Video::Transcoder::V1::SpriteSheet#sprite_width_pixels SpriteSheet.sprite_width_pixels} field or
326
+ # the {::Google::Cloud::Video::Transcoder::V1::SpriteSheet#sprite_height_pixels SpriteSheet.sprite_height_pixels} field, but not both (the API will
327
+ # automatically calculate the missing field).
328
+ # @!attribute [rw] sprite_height_pixels
329
+ # @return [::Integer]
330
+ # Required. The height of sprite in pixels. Must be an even integer. To preserve the
331
+ # source aspect ratio, set the {::Google::Cloud::Video::Transcoder::V1::SpriteSheet#sprite_height_pixels SpriteSheet.sprite_height_pixels} field or
332
+ # the {::Google::Cloud::Video::Transcoder::V1::SpriteSheet#sprite_width_pixels SpriteSheet.sprite_width_pixels} field, but not both (the API will
333
+ # automatically calculate the missing field).
334
+ # @!attribute [rw] column_count
335
+ # @return [::Integer]
336
+ # The maximum number of sprites per row in a sprite sheet. The default is 0,
337
+ # which indicates no maximum limit.
338
+ # @!attribute [rw] row_count
339
+ # @return [::Integer]
340
+ # The maximum number of rows per sprite sheet. When the sprite sheet is full,
341
+ # a new sprite sheet is created. The default is 0, which indicates no maximum
342
+ # limit.
343
+ # @!attribute [rw] start_time_offset
344
+ # @return [::Google::Protobuf::Duration]
345
+ # Start time in seconds, relative to the output file timeline. Determines the
346
+ # first sprite to pick. The default is `0s`.
347
+ # @!attribute [rw] end_time_offset
348
+ # @return [::Google::Protobuf::Duration]
349
+ # End time in seconds, relative to the output file timeline. When
350
+ # `end_time_offset` is not specified, the sprites are generated until the end
351
+ # of the output file.
352
+ # @!attribute [rw] total_count
353
+ # @return [::Integer]
354
+ # Total number of sprites. Create the specified number of sprites
355
+ # distributed evenly across the timeline of the output media. The default
356
+ # is 100.
357
+ # @!attribute [rw] interval
358
+ # @return [::Google::Protobuf::Duration]
359
+ # Starting from `0s`, create sprites at regular intervals. Specify the
360
+ # interval value in seconds.
361
+ # @!attribute [rw] quality
362
+ # @return [::Integer]
363
+ # The quality of the generated sprite sheet. Enter a value between 1
364
+ # and 100, where 1 is the lowest quality and 100 is the highest quality.
365
+ # The default is 100. A high quality value corresponds to a low image data
366
+ # compression ratio.
367
+ class SpriteSheet
368
+ include ::Google::Protobuf::MessageExts
369
+ extend ::Google::Protobuf::MessageExts::ClassMethods
370
+ end
371
+
372
+ # Overlay configuration.
373
+ # @!attribute [rw] image
374
+ # @return [::Google::Cloud::Video::Transcoder::V1::Overlay::Image]
375
+ # Image overlay.
376
+ # @!attribute [rw] animations
377
+ # @return [::Array<::Google::Cloud::Video::Transcoder::V1::Overlay::Animation>]
378
+ # List of Animations. The list should be chronological, without any time
379
+ # overlap.
380
+ class Overlay
381
+ include ::Google::Protobuf::MessageExts
382
+ extend ::Google::Protobuf::MessageExts::ClassMethods
383
+
384
+ # 2D normalized coordinates. Default: `{0.0, 0.0}`
385
+ # @!attribute [rw] x
386
+ # @return [::Float]
387
+ # Normalized x coordinate.
388
+ # @!attribute [rw] y
389
+ # @return [::Float]
390
+ # Normalized y coordinate.
391
+ class NormalizedCoordinate
392
+ include ::Google::Protobuf::MessageExts
393
+ extend ::Google::Protobuf::MessageExts::ClassMethods
394
+ end
395
+
396
+ # Overlaid jpeg image.
397
+ # @!attribute [rw] uri
398
+ # @return [::String]
399
+ # Required. URI of the JPEG image in Cloud Storage. For example,
400
+ # `gs://bucket/inputs/image.jpeg`. JPEG is the only supported image type.
401
+ # @!attribute [rw] resolution
402
+ # @return [::Google::Cloud::Video::Transcoder::V1::Overlay::NormalizedCoordinate]
403
+ # Normalized image resolution, based on output video resolution. Valid
404
+ # values: `0.0`–`1.0`. To respect the original image aspect ratio, set
405
+ # either `x` or `y` to `0.0`. To use the original image resolution, set
406
+ # both `x` and `y` to `0.0`.
407
+ # @!attribute [rw] alpha
408
+ # @return [::Float]
409
+ # Target image opacity. Valid values are from `1.0` (solid, default) to
410
+ # `0.0` (transparent), exclusive. Set this to a value greater than `0.0`.
411
+ class Image
412
+ include ::Google::Protobuf::MessageExts
413
+ extend ::Google::Protobuf::MessageExts::ClassMethods
414
+ end
415
+
416
+ # Display static overlay object.
417
+ # @!attribute [rw] xy
418
+ # @return [::Google::Cloud::Video::Transcoder::V1::Overlay::NormalizedCoordinate]
419
+ # Normalized coordinates based on output video resolution. Valid
420
+ # values: `0.0`–`1.0`. `xy` is the upper-left coordinate of the overlay
421
+ # object. For example, use the x and y coordinates \\{0,0} to position the
422
+ # top-left corner of the overlay animation in the top-left corner of the
423
+ # output video.
424
+ # @!attribute [rw] start_time_offset
425
+ # @return [::Google::Protobuf::Duration]
426
+ # The time to start displaying the overlay object, in seconds. Default: 0
427
+ class AnimationStatic
428
+ include ::Google::Protobuf::MessageExts
429
+ extend ::Google::Protobuf::MessageExts::ClassMethods
430
+ end
431
+
432
+ # Display overlay object with fade animation.
433
+ # @!attribute [rw] fade_type
434
+ # @return [::Google::Cloud::Video::Transcoder::V1::Overlay::FadeType]
435
+ # Required. Type of fade animation: `FADE_IN` or `FADE_OUT`.
436
+ # @!attribute [rw] xy
437
+ # @return [::Google::Cloud::Video::Transcoder::V1::Overlay::NormalizedCoordinate]
438
+ # Normalized coordinates based on output video resolution. Valid
439
+ # values: `0.0`–`1.0`. `xy` is the upper-left coordinate of the overlay
440
+ # object. For example, use the x and y coordinates \\{0,0} to position the
441
+ # top-left corner of the overlay animation in the top-left corner of the
442
+ # output video.
443
+ # @!attribute [rw] start_time_offset
444
+ # @return [::Google::Protobuf::Duration]
445
+ # The time to start the fade animation, in seconds. Default: 0
446
+ # @!attribute [rw] end_time_offset
447
+ # @return [::Google::Protobuf::Duration]
448
+ # The time to end the fade animation, in seconds. Default:
449
+ # `start_time_offset` + 1s
450
+ class AnimationFade
451
+ include ::Google::Protobuf::MessageExts
452
+ extend ::Google::Protobuf::MessageExts::ClassMethods
453
+ end
454
+
455
+ # End previous overlay animation from the video. Without AnimationEnd, the
456
+ # overlay object will keep the state of previous animation until the end of
457
+ # the video.
458
+ # @!attribute [rw] start_time_offset
459
+ # @return [::Google::Protobuf::Duration]
460
+ # The time to end overlay object, in seconds. Default: 0
461
+ class AnimationEnd
462
+ include ::Google::Protobuf::MessageExts
463
+ extend ::Google::Protobuf::MessageExts::ClassMethods
464
+ end
465
+
466
+ # Animation types.
467
+ # @!attribute [rw] animation_static
468
+ # @return [::Google::Cloud::Video::Transcoder::V1::Overlay::AnimationStatic]
469
+ # Display static overlay object.
470
+ # @!attribute [rw] animation_fade
471
+ # @return [::Google::Cloud::Video::Transcoder::V1::Overlay::AnimationFade]
472
+ # Display overlay object with fade animation.
473
+ # @!attribute [rw] animation_end
474
+ # @return [::Google::Cloud::Video::Transcoder::V1::Overlay::AnimationEnd]
475
+ # End previous animation.
476
+ class Animation
477
+ include ::Google::Protobuf::MessageExts
478
+ extend ::Google::Protobuf::MessageExts::ClassMethods
479
+ end
480
+
481
+ # Fade type for the overlay: `FADE_IN` or `FADE_OUT`.
482
+ module FadeType
483
+ # The fade type is not specified.
484
+ FADE_TYPE_UNSPECIFIED = 0
485
+
486
+ # Fade the overlay object into view.
487
+ FADE_IN = 1
488
+
489
+ # Fade the overlay object out of view.
490
+ FADE_OUT = 2
491
+ end
492
+ end
493
+
494
+ # Preprocessing configurations.
495
+ # @!attribute [rw] color
496
+ # @return [::Google::Cloud::Video::Transcoder::V1::PreprocessingConfig::Color]
497
+ # Color preprocessing configuration.
498
+ # @!attribute [rw] denoise
499
+ # @return [::Google::Cloud::Video::Transcoder::V1::PreprocessingConfig::Denoise]
500
+ # Denoise preprocessing configuration.
501
+ # @!attribute [rw] deblock
502
+ # @return [::Google::Cloud::Video::Transcoder::V1::PreprocessingConfig::Deblock]
503
+ # Deblock preprocessing configuration.
504
+ # @!attribute [rw] audio
505
+ # @return [::Google::Cloud::Video::Transcoder::V1::PreprocessingConfig::Audio]
506
+ # Audio preprocessing configuration.
507
+ # @!attribute [rw] crop
508
+ # @return [::Google::Cloud::Video::Transcoder::V1::PreprocessingConfig::Crop]
509
+ # Specify the video cropping configuration.
510
+ # @!attribute [rw] pad
511
+ # @return [::Google::Cloud::Video::Transcoder::V1::PreprocessingConfig::Pad]
512
+ # Specify the video pad filter configuration.
513
+ class PreprocessingConfig
514
+ include ::Google::Protobuf::MessageExts
515
+ extend ::Google::Protobuf::MessageExts::ClassMethods
516
+
517
+ # Color preprocessing configuration.
518
+ # @!attribute [rw] saturation
519
+ # @return [::Float]
520
+ # Control color saturation of the video. Enter a value between -1 and 1,
521
+ # where -1 is fully desaturated and 1 is maximum saturation. 0 is no
522
+ # change. The default is 0.
523
+ # @!attribute [rw] contrast
524
+ # @return [::Float]
525
+ # Control black and white contrast of the video. Enter a value between -1
526
+ # and 1, where -1 is minimum contrast and 1 is maximum contrast. 0 is no
527
+ # change. The default is 0.
528
+ # @!attribute [rw] brightness
529
+ # @return [::Float]
530
+ # Control brightness of the video. Enter a value between -1 and 1, where -1
531
+ # is minimum brightness and 1 is maximum brightness. 0 is no change. The
532
+ # default is 0.
533
+ class Color
534
+ include ::Google::Protobuf::MessageExts
535
+ extend ::Google::Protobuf::MessageExts::ClassMethods
536
+ end
537
+
538
+ # Denoise preprocessing configuration.
539
+ # @!attribute [rw] strength
540
+ # @return [::Float]
541
+ # Set strength of the denoise. Enter a value between 0 and 1. The higher
542
+ # the value, the smoother the image. 0 is no denoising. The default is 0.
543
+ # @!attribute [rw] tune
544
+ # @return [::String]
545
+ # Set the denoiser mode. The default is `"standard"`.
546
+ #
547
+ # Supported denoiser modes:
548
+ # - 'standard'
549
+ # - 'grain'
550
+ class Denoise
551
+ include ::Google::Protobuf::MessageExts
552
+ extend ::Google::Protobuf::MessageExts::ClassMethods
553
+ end
554
+
555
+ # Deblock preprocessing configuration.
556
+ # @!attribute [rw] strength
557
+ # @return [::Float]
558
+ # Set strength of the deblocker. Enter a value between 0 and 1. The higher
559
+ # the value, the stronger the block removal. 0 is no deblocking. The
560
+ # default is 0.
561
+ # @!attribute [rw] enabled
562
+ # @return [::Boolean]
563
+ # Enable deblocker. The default is `false`.
564
+ class Deblock
565
+ include ::Google::Protobuf::MessageExts
566
+ extend ::Google::Protobuf::MessageExts::ClassMethods
567
+ end
568
+
569
+ # Audio preprocessing configuration.
570
+ # @!attribute [rw] lufs
571
+ # @return [::Float]
572
+ # Specify audio loudness normalization in loudness units relative to full
573
+ # scale (LUFS). Enter a value between -24 and 0 (the default), where:
574
+ #
575
+ # * -24 is the Advanced Television Systems Committee (ATSC A/85) standard
576
+ # * -23 is the EU R128 broadcast standard
577
+ # * -19 is the prior standard for online mono audio
578
+ # * -18 is the ReplayGain standard
579
+ # * -16 is the prior standard for stereo audio
580
+ # * -14 is the new online audio standard recommended by Spotify, as well
581
+ # as Amazon Echo
582
+ # * 0 disables normalization
583
+ # @!attribute [rw] high_boost
584
+ # @return [::Boolean]
585
+ # Enable boosting high frequency components. The default is `false`.
586
+ # @!attribute [rw] low_boost
587
+ # @return [::Boolean]
588
+ # Enable boosting low frequency components. The default is `false`.
589
+ class Audio
590
+ include ::Google::Protobuf::MessageExts
591
+ extend ::Google::Protobuf::MessageExts::ClassMethods
592
+ end
593
+
594
+ # Video cropping configuration for the input video. The cropped input video
595
+ # is scaled to match the output resolution.
596
+ # @!attribute [rw] top_pixels
597
+ # @return [::Integer]
598
+ # The number of pixels to crop from the top. The default is 0.
599
+ # @!attribute [rw] bottom_pixels
600
+ # @return [::Integer]
601
+ # The number of pixels to crop from the bottom. The default is 0.
602
+ # @!attribute [rw] left_pixels
603
+ # @return [::Integer]
604
+ # The number of pixels to crop from the left. The default is 0.
605
+ # @!attribute [rw] right_pixels
606
+ # @return [::Integer]
607
+ # The number of pixels to crop from the right. The default is 0.
608
+ class Crop
609
+ include ::Google::Protobuf::MessageExts
610
+ extend ::Google::Protobuf::MessageExts::ClassMethods
611
+ end
612
+
613
+ # Pad filter configuration for the input video. The padded input video
614
+ # is scaled after padding with black to match the output resolution.
615
+ # @!attribute [rw] top_pixels
616
+ # @return [::Integer]
617
+ # The number of pixels to add to the top. The default is 0.
618
+ # @!attribute [rw] bottom_pixels
619
+ # @return [::Integer]
620
+ # The number of pixels to add to the bottom. The default is 0.
621
+ # @!attribute [rw] left_pixels
622
+ # @return [::Integer]
623
+ # The number of pixels to add to the left. The default is 0.
624
+ # @!attribute [rw] right_pixels
625
+ # @return [::Integer]
626
+ # The number of pixels to add to the right. The default is 0.
627
+ class Pad
628
+ include ::Google::Protobuf::MessageExts
629
+ extend ::Google::Protobuf::MessageExts::ClassMethods
630
+ end
631
+ end
632
+
633
+ # Video stream resource.
634
+ # @!attribute [rw] h264
635
+ # @return [::Google::Cloud::Video::Transcoder::V1::VideoStream::H264CodecSettings]
636
+ # H264 codec settings.
637
+ # @!attribute [rw] h265
638
+ # @return [::Google::Cloud::Video::Transcoder::V1::VideoStream::H265CodecSettings]
639
+ # H265 codec settings.
640
+ # @!attribute [rw] vp9
641
+ # @return [::Google::Cloud::Video::Transcoder::V1::VideoStream::Vp9CodecSettings]
642
+ # VP9 codec settings.
643
+ class VideoStream
644
+ include ::Google::Protobuf::MessageExts
645
+ extend ::Google::Protobuf::MessageExts::ClassMethods
646
+
647
+ # H264 codec settings.
648
+ # @!attribute [rw] width_pixels
649
+ # @return [::Integer]
650
+ # The width of the video in pixels. Must be an even integer.
651
+ # When not specified, the width is adjusted to match the specified height
652
+ # and input aspect ratio. If both are omitted, the input width is used.
653
+ # @!attribute [rw] height_pixels
654
+ # @return [::Integer]
655
+ # The height of the video in pixels. Must be an even integer.
656
+ # When not specified, the height is adjusted to match the specified width
657
+ # and input aspect ratio. If both are omitted, the input height is used.
658
+ # @!attribute [rw] frame_rate
659
+ # @return [::Float]
660
+ # Required. The target video frame rate in frames per second (FPS). Must be less than
661
+ # or equal to 120. Will default to the input frame rate if larger than the
662
+ # input frame rate. The API will generate an output FPS that is divisible
663
+ # by the input FPS, and smaller or equal to the target FPS. See
664
+ # [Calculating frame
665
+ # rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for
666
+ # more information.
667
+ # @!attribute [rw] bitrate_bps
668
+ # @return [::Integer]
669
+ # Required. The video bitrate in bits per second. Must be between 1 and
670
+ # 1,000,000,000.
671
+ # @!attribute [rw] pixel_format
672
+ # @return [::String]
673
+ # Pixel format to use. The default is `"yuv420p"`.
674
+ #
675
+ # Supported pixel formats:
676
+ # - 'yuv420p' pixel format.
677
+ # - 'yuv422p' pixel format.
678
+ # - 'yuv444p' pixel format.
679
+ # - 'yuv420p10' 10-bit HDR pixel format.
680
+ # - 'yuv422p10' 10-bit HDR pixel format.
681
+ # - 'yuv444p10' 10-bit HDR pixel format.
682
+ # - 'yuv420p12' 12-bit HDR pixel format.
683
+ # - 'yuv422p12' 12-bit HDR pixel format.
684
+ # - 'yuv444p12' 12-bit HDR pixel format.
685
+ # @!attribute [rw] rate_control_mode
686
+ # @return [::String]
687
+ # Specify the `rate_control_mode`. The default is `"vbr"`.
688
+ #
689
+ # Supported rate control modes:
690
+ # - 'vbr' - variable bitrate
691
+ # - 'crf' - constant rate factor
692
+ # @!attribute [rw] crf_level
693
+ # @return [::Integer]
694
+ # Target CRF level. Must be between 10 and 36, where 10 is the highest
695
+ # quality and 36 is the most efficient compression. The default is 21.
696
+ # @!attribute [rw] allow_open_gop
697
+ # @return [::Boolean]
698
+ # Specifies whether an open Group of Pictures (GOP) structure should be
699
+ # allowed or not. The default is `false`.
700
+ # @!attribute [rw] gop_frame_count
701
+ # @return [::Integer]
702
+ # Select the GOP size based on the specified frame count. Must be greater
703
+ # than zero.
704
+ # @!attribute [rw] gop_duration
705
+ # @return [::Google::Protobuf::Duration]
706
+ # Select the GOP size based on the specified duration. The default is
707
+ # `"3s"`. Note that `gopDuration` must be less than or equal to
708
+ # [`segmentDuration`](#SegmentSettings), and
709
+ # [`segmentDuration`](#SegmentSettings) must be divisible by
710
+ # `gopDuration`.
711
+ # @!attribute [rw] enable_two_pass
712
+ # @return [::Boolean]
713
+ # Use two-pass encoding strategy to achieve better video quality.
714
+ # `VideoStream.rate_control_mode` must be `"vbr"`. The default is `false`.
715
+ # @!attribute [rw] vbv_size_bits
716
+ # @return [::Integer]
717
+ # Size of the Video Buffering Verifier (VBV) buffer in bits. Must be
718
+ # greater than zero. The default is equal to `VideoStream.bitrate_bps`.
719
+ # @!attribute [rw] vbv_fullness_bits
720
+ # @return [::Integer]
721
+ # Initial fullness of the Video Buffering Verifier (VBV) buffer in bits.
722
+ # Must be greater than zero. The default is equal to 90% of
723
+ # `VideoStream.vbv_size_bits`.
724
+ # @!attribute [rw] entropy_coder
725
+ # @return [::String]
726
+ # The entropy coder to use. The default is `"cabac"`.
727
+ #
728
+ # Supported entropy coders:
729
+ # - 'cavlc'
730
+ # - 'cabac'
731
+ # @!attribute [rw] b_pyramid
732
+ # @return [::Boolean]
733
+ # Allow B-pyramid for reference frame selection. This may not be supported
734
+ # on all decoders. The default is `false`.
735
+ # @!attribute [rw] b_frame_count
736
+ # @return [::Integer]
737
+ # The number of consecutive B-frames. Must be greater than or equal to
738
+ # zero. Must be less than `VideoStream.gop_frame_count` if set. The default
739
+ # is 0.
740
+ # @!attribute [rw] aq_strength
741
+ # @return [::Float]
742
+ # Specify the intensity of the adaptive quantizer (AQ). Must be between 0
743
+ # and 1, where 0 disables the quantizer and 1 maximizes the quantizer. A
744
+ # higher value equals a lower bitrate but smoother image. The default is 0.
745
+ # @!attribute [rw] profile
746
+ # @return [::String]
747
+ # Enforces the specified codec profile. The following profiles are
748
+ # supported:
749
+ #
750
+ # * `baseline`
751
+ # * `main`
752
+ # * `high` (default)
753
+ #
754
+ # The available options are
755
+ # [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.264#Profile){:
756
+ # class="external" }. Note that certain values for this field may cause the
757
+ # transcoder to override other fields you set in the `H264CodecSettings`
758
+ # message.
759
+ # @!attribute [rw] tune
760
+ # @return [::String]
761
+ # Enforces the specified codec tune. The available options are
762
+ # [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.264#Tune){:
763
+ # class="external" }. Note that certain values for this field may cause the
764
+ # transcoder to override other fields you set in the `H264CodecSettings`
765
+ # message.
766
+ # @!attribute [rw] preset
767
+ # @return [::String]
768
+ # Enforces the specified codec preset. The default is `veryfast`. The
769
+ # available options are
770
+ # [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.264#Preset){:
771
+ # class="external" }. Note that certain values for this field may cause the
772
+ # transcoder to override other fields you set in the `H264CodecSettings`
773
+ # message.
774
+ class H264CodecSettings
775
+ include ::Google::Protobuf::MessageExts
776
+ extend ::Google::Protobuf::MessageExts::ClassMethods
777
+ end
778
+
779
+ # H265 codec settings.
780
+ # @!attribute [rw] width_pixels
781
+ # @return [::Integer]
782
+ # The width of the video in pixels. Must be an even integer.
783
+ # When not specified, the width is adjusted to match the specified height
784
+ # and input aspect ratio. If both are omitted, the input width is used.
785
+ # @!attribute [rw] height_pixels
786
+ # @return [::Integer]
787
+ # The height of the video in pixels. Must be an even integer.
788
+ # When not specified, the height is adjusted to match the specified width
789
+ # and input aspect ratio. If both are omitted, the input height is used.
790
+ # @!attribute [rw] frame_rate
791
+ # @return [::Float]
792
+ # Required. The target video frame rate in frames per second (FPS). Must be less than
793
+ # or equal to 120. Will default to the input frame rate if larger than the
794
+ # input frame rate. The API will generate an output FPS that is divisible
795
+ # by the input FPS, and smaller or equal to the target FPS. See
796
+ # [Calculating frame
797
+ # rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for
798
+ # more information.
799
+ # @!attribute [rw] bitrate_bps
800
+ # @return [::Integer]
801
+ # Required. The video bitrate in bits per second. Must be between 1 and
802
+ # 1,000,000,000.
803
+ # @!attribute [rw] pixel_format
804
+ # @return [::String]
805
+ # Pixel format to use. The default is `"yuv420p"`.
806
+ #
807
+ # Supported pixel formats:
808
+ # - 'yuv420p' pixel format.
809
+ # - 'yuv422p' pixel format.
810
+ # - 'yuv444p' pixel format.
811
+ # - 'yuv420p10' 10-bit HDR pixel format.
812
+ # - 'yuv422p10' 10-bit HDR pixel format.
813
+ # - 'yuv444p10' 10-bit HDR pixel format.
814
+ # - 'yuv420p12' 12-bit HDR pixel format.
815
+ # - 'yuv422p12' 12-bit HDR pixel format.
816
+ # - 'yuv444p12' 12-bit HDR pixel format.
817
+ # @!attribute [rw] rate_control_mode
818
+ # @return [::String]
819
+ # Specify the `rate_control_mode`. The default is `"vbr"`.
820
+ #
821
+ # Supported rate control modes:
822
+ # - 'vbr' - variable bitrate
823
+ # - 'crf' - constant rate factor
824
+ # @!attribute [rw] crf_level
825
+ # @return [::Integer]
826
+ # Target CRF level. Must be between 10 and 36, where 10 is the highest
827
+ # quality and 36 is the most efficient compression. The default is 21.
828
+ # @!attribute [rw] allow_open_gop
829
+ # @return [::Boolean]
830
+ # Specifies whether an open Group of Pictures (GOP) structure should be
831
+ # allowed or not. The default is `false`.
832
+ # @!attribute [rw] gop_frame_count
833
+ # @return [::Integer]
834
+ # Select the GOP size based on the specified frame count. Must be greater
835
+ # than zero.
836
+ # @!attribute [rw] gop_duration
837
+ # @return [::Google::Protobuf::Duration]
838
+ # Select the GOP size based on the specified duration. The default is
839
+ # `"3s"`. Note that `gopDuration` must be less than or equal to
840
+ # [`segmentDuration`](#SegmentSettings), and
841
+ # [`segmentDuration`](#SegmentSettings) must be divisible by
842
+ # `gopDuration`.
843
+ # @!attribute [rw] enable_two_pass
844
+ # @return [::Boolean]
845
+ # Use two-pass encoding strategy to achieve better video quality.
846
+ # `VideoStream.rate_control_mode` must be `"vbr"`. The default is `false`.
847
+ # @!attribute [rw] vbv_size_bits
848
+ # @return [::Integer]
849
+ # Size of the Video Buffering Verifier (VBV) buffer in bits. Must be
850
+ # greater than zero. The default is equal to `VideoStream.bitrate_bps`.
851
+ # @!attribute [rw] vbv_fullness_bits
852
+ # @return [::Integer]
853
+ # Initial fullness of the Video Buffering Verifier (VBV) buffer in bits.
854
+ # Must be greater than zero. The default is equal to 90% of
855
+ # `VideoStream.vbv_size_bits`.
856
+ # @!attribute [rw] b_pyramid
857
+ # @return [::Boolean]
858
+ # Allow B-pyramid for reference frame selection. This may not be supported
859
+ # on all decoders. The default is `false`.
860
+ # @!attribute [rw] b_frame_count
861
+ # @return [::Integer]
862
+ # The number of consecutive B-frames. Must be greater than or equal to
863
+ # zero. Must be less than `VideoStream.gop_frame_count` if set. The default
864
+ # is 0.
865
+ # @!attribute [rw] aq_strength
866
+ # @return [::Float]
867
+ # Specify the intensity of the adaptive quantizer (AQ). Must be between 0
868
+ # and 1, where 0 disables the quantizer and 1 maximizes the quantizer. A
869
+ # higher value equals a lower bitrate but smoother image. The default is 0.
870
+ # @!attribute [rw] profile
871
+ # @return [::String]
872
+ # Enforces the specified codec profile. The following profiles are
873
+ # supported:
874
+ #
875
+ # 8bit profiles
876
+ # * `main` (default)
877
+ # * `main-intra`
878
+ # * `mainstillpicture`
879
+ #
880
+ # 10bit profiles
881
+ # * `main10` (default)
882
+ # * `main10-intra`
883
+ # * `main422-10`
884
+ # * `main422-10-intra`
885
+ # * `main444-10`
886
+ # * `main444-10-intra`
887
+ #
888
+ # 12bit profiles
889
+ # * `main12` (default)
890
+ # * `main12-intra`
891
+ # * `main422-12`
892
+ # * `main422-12-intra`
893
+ # * `main444-12`
894
+ # * `main444-12-intra`
895
+ #
896
+ # The available options are
897
+ # [FFmpeg-compatible](https://x265.readthedocs.io/){:
898
+ # class="external" }. Note that certain values for this field may cause the
899
+ # transcoder to override other fields you set in the `H265CodecSettings`
900
+ # message.
901
+ # @!attribute [rw] tune
902
+ # @return [::String]
903
+ # Enforces the specified codec tune. The available options are
904
+ # [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.265){:
905
+ # class="external" }. Note that certain values for this field may cause the
906
+ # transcoder to override other fields you set in the `H265CodecSettings`
907
+ # message.
908
+ # @!attribute [rw] preset
909
+ # @return [::String]
910
+ # Enforces the specified codec preset. The default is `veryfast`. The
911
+ # available options are
912
+ # [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.265){:
913
+ # class="external" }. Note that certain values for this field may cause the
914
+ # transcoder to override other fields you set in the `H265CodecSettings`
915
+ # message.
916
+ class H265CodecSettings
917
+ include ::Google::Protobuf::MessageExts
918
+ extend ::Google::Protobuf::MessageExts::ClassMethods
919
+ end
920
+
921
+ # VP9 codec settings.
922
+ # @!attribute [rw] width_pixels
923
+ # @return [::Integer]
924
+ # The width of the video in pixels. Must be an even integer.
925
+ # When not specified, the width is adjusted to match the specified height
926
+ # and input aspect ratio. If both are omitted, the input width is used.
927
+ # @!attribute [rw] height_pixels
928
+ # @return [::Integer]
929
+ # The height of the video in pixels. Must be an even integer.
930
+ # When not specified, the height is adjusted to match the specified width
931
+ # and input aspect ratio. If both are omitted, the input height is used.
932
+ # @!attribute [rw] frame_rate
933
+ # @return [::Float]
934
+ # Required. The target video frame rate in frames per second (FPS). Must be less than
935
+ # or equal to 120. Will default to the input frame rate if larger than the
936
+ # input frame rate. The API will generate an output FPS that is divisible
937
+ # by the input FPS, and smaller or equal to the target FPS. See
938
+ # [Calculating frame
939
+ # rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for
940
+ # more information.
941
+ # @!attribute [rw] bitrate_bps
942
+ # @return [::Integer]
943
+ # Required. The video bitrate in bits per second. Must be between 1 and
944
+ # 1,000,000,000.
945
+ # @!attribute [rw] pixel_format
946
+ # @return [::String]
947
+ # Pixel format to use. The default is `"yuv420p"`.
948
+ #
949
+ # Supported pixel formats:
950
+ # - 'yuv420p' pixel format.
951
+ # - 'yuv422p' pixel format.
952
+ # - 'yuv444p' pixel format.
953
+ # - 'yuv420p10' 10-bit HDR pixel format.
954
+ # - 'yuv422p10' 10-bit HDR pixel format.
955
+ # - 'yuv444p10' 10-bit HDR pixel format.
956
+ # - 'yuv420p12' 12-bit HDR pixel format.
957
+ # - 'yuv422p12' 12-bit HDR pixel format.
958
+ # - 'yuv444p12' 12-bit HDR pixel format.
959
+ # @!attribute [rw] rate_control_mode
960
+ # @return [::String]
961
+ # Specify the `rate_control_mode`. The default is `"vbr"`.
962
+ #
963
+ # Supported rate control modes:
964
+ # - 'vbr' - variable bitrate
965
+ # - 'crf' - constant rate factor
966
+ # @!attribute [rw] crf_level
967
+ # @return [::Integer]
968
+ # Target CRF level. Must be between 10 and 36, where 10 is the highest
969
+ # quality and 36 is the most efficient compression. The default is 21.
970
+ # @!attribute [rw] gop_frame_count
971
+ # @return [::Integer]
972
+ # Select the GOP size based on the specified frame count. Must be greater
973
+ # than zero.
974
+ # @!attribute [rw] gop_duration
975
+ # @return [::Google::Protobuf::Duration]
976
+ # Select the GOP size based on the specified duration. The default is
977
+ # `"3s"`. Note that `gopDuration` must be less than or equal to
978
+ # [`segmentDuration`](#SegmentSettings), and
979
+ # [`segmentDuration`](#SegmentSettings) must be divisible by
980
+ # `gopDuration`.
981
+ # @!attribute [rw] profile
982
+ # @return [::String]
983
+ # Enforces the specified codec profile. The following profiles are
984
+ # supported:
985
+ #
986
+ # * `profile0` (default)
987
+ # * `profile1`
988
+ # * `profile2`
989
+ # * `profile3`
990
+ #
991
+ # The available options are
992
+ # [WebM-compatible](https://www.webmproject.org/vp9/profiles/){:
993
+ # class="external" }. Note that certain values for this field may cause the
994
+ # transcoder to override other fields you set in the `Vp9CodecSettings`
995
+ # message.
996
+ class Vp9CodecSettings
997
+ include ::Google::Protobuf::MessageExts
998
+ extend ::Google::Protobuf::MessageExts::ClassMethods
999
+ end
1000
+ end
1001
+
1002
+ # Audio stream resource.
1003
+ # @!attribute [rw] codec
1004
+ # @return [::String]
1005
+ # The codec for this audio stream. The default is `"aac"`.
1006
+ #
1007
+ # Supported audio codecs:
1008
+ # - 'aac'
1009
+ # - 'aac-he'
1010
+ # - 'aac-he-v2'
1011
+ # - 'mp3'
1012
+ # - 'ac3'
1013
+ # - 'eac3'
1014
+ # @!attribute [rw] bitrate_bps
1015
+ # @return [::Integer]
1016
+ # Required. Audio bitrate in bits per second. Must be between 1 and 10,000,000.
1017
+ # @!attribute [rw] channel_count
1018
+ # @return [::Integer]
1019
+ # Number of audio channels. Must be between 1 and 6. The default is 2.
1020
+ # @!attribute [rw] channel_layout
1021
+ # @return [::Array<::String>]
1022
+ # A list of channel names specifying layout of the audio channels.
1023
+ # This only affects the metadata embedded in the container headers, if
1024
+ # supported by the specified format. The default is `["fl", "fr"]`.
1025
+ #
1026
+ # Supported channel names:
1027
+ # - 'fl' - Front left channel
1028
+ # - 'fr' - Front right channel
1029
+ # - 'sl' - Side left channel
1030
+ # - 'sr' - Side right channel
1031
+ # - 'fc' - Front center channel
1032
+ # - 'lfe' - Low frequency
1033
+ # @!attribute [rw] mapping
1034
+ # @return [::Array<::Google::Cloud::Video::Transcoder::V1::AudioStream::AudioMapping>]
1035
+ # The mapping for the `Job.edit_list` atoms with audio `EditAtom.inputs`.
1036
+ # @!attribute [rw] sample_rate_hertz
1037
+ # @return [::Integer]
1038
+ # The audio sample rate in Hertz. The default is 48000 Hertz.
1039
+ class AudioStream
1040
+ include ::Google::Protobuf::MessageExts
1041
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1042
+
1043
+ # The mapping for the `Job.edit_list` atoms with audio `EditAtom.inputs`.
1044
+ # @!attribute [rw] atom_key
1045
+ # @return [::String]
1046
+ # Required. The `EditAtom.key` that references the atom with audio inputs in the
1047
+ # `Job.edit_list`.
1048
+ # @!attribute [rw] input_key
1049
+ # @return [::String]
1050
+ # Required. The `Input.key` that identifies the input file.
1051
+ # @!attribute [rw] input_track
1052
+ # @return [::Integer]
1053
+ # Required. The zero-based index of the track in the input file.
1054
+ # @!attribute [rw] input_channel
1055
+ # @return [::Integer]
1056
+ # Required. The zero-based index of the channel in the input audio stream.
1057
+ # @!attribute [rw] output_channel
1058
+ # @return [::Integer]
1059
+ # Required. The zero-based index of the channel in the output audio stream.
1060
+ # @!attribute [rw] gain_db
1061
+ # @return [::Float]
1062
+ # Audio volume control in dB. Negative values decrease volume,
1063
+ # positive values increase. The default is 0.
1064
+ class AudioMapping
1065
+ include ::Google::Protobuf::MessageExts
1066
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1067
+ end
1068
+ end
1069
+
1070
+ # Encoding of a text stream. For example, closed captions or subtitles.
1071
+ # @!attribute [rw] codec
1072
+ # @return [::String]
1073
+ # The codec for this text stream. The default is `"webvtt"`.
1074
+ #
1075
+ # Supported text codecs:
1076
+ # - 'srt'
1077
+ # - 'ttml'
1078
+ # - 'cea608'
1079
+ # - 'cea708'
1080
+ # - 'webvtt'
1081
+ # @!attribute [rw] mapping
1082
+ # @return [::Array<::Google::Cloud::Video::Transcoder::V1::TextStream::TextMapping>]
1083
+ # The mapping for the `Job.edit_list` atoms with text `EditAtom.inputs`.
1084
+ class TextStream
1085
+ include ::Google::Protobuf::MessageExts
1086
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1087
+
1088
+ # The mapping for the `Job.edit_list` atoms with text `EditAtom.inputs`.
1089
+ # @!attribute [rw] atom_key
1090
+ # @return [::String]
1091
+ # Required. The `EditAtom.key` that references atom with text inputs in the
1092
+ # `Job.edit_list`.
1093
+ # @!attribute [rw] input_key
1094
+ # @return [::String]
1095
+ # Required. The `Input.key` that identifies the input file.
1096
+ # @!attribute [rw] input_track
1097
+ # @return [::Integer]
1098
+ # Required. The zero-based index of the track in the input file.
1099
+ class TextMapping
1100
+ include ::Google::Protobuf::MessageExts
1101
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1102
+ end
1103
+ end
1104
+
1105
+ # Segment settings for `"ts"`, `"fmp4"` and `"vtt"`.
1106
+ # @!attribute [rw] segment_duration
1107
+ # @return [::Google::Protobuf::Duration]
1108
+ # Duration of the segments in seconds. The default is `"6.0s"`. Note that
1109
+ # `segmentDuration` must be greater than or equal to
1110
+ # [`gopDuration`](#videostream), and `segmentDuration` must be divisible by
1111
+ # [`gopDuration`](#videostream).
1112
+ # @!attribute [rw] individual_segments
1113
+ # @return [::Boolean]
1114
+ # Required. Create an individual segment file. The default is `false`.
1115
+ class SegmentSettings
1116
+ include ::Google::Protobuf::MessageExts
1117
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1118
+ end
1119
+
1120
+ # Encryption settings.
1121
+ # @!attribute [rw] key
1122
+ # @return [::String]
1123
+ # Required. 128 bit encryption key represented as lowercase hexadecimal digits.
1124
+ # @!attribute [rw] iv
1125
+ # @return [::String]
1126
+ # Required. 128 bit Initialization Vector (IV) represented as lowercase hexadecimal
1127
+ # digits.
1128
+ # @!attribute [rw] aes_128
1129
+ # @return [::Google::Cloud::Video::Transcoder::V1::Encryption::Aes128Encryption]
1130
+ # Configuration for AES-128 encryption.
1131
+ # @!attribute [rw] sample_aes
1132
+ # @return [::Google::Cloud::Video::Transcoder::V1::Encryption::SampleAesEncryption]
1133
+ # Configuration for SAMPLE-AES encryption.
1134
+ # @!attribute [rw] mpeg_cenc
1135
+ # @return [::Google::Cloud::Video::Transcoder::V1::Encryption::MpegCommonEncryption]
1136
+ # Configuration for MPEG Common Encryption (MPEG-CENC).
1137
+ class Encryption
1138
+ include ::Google::Protobuf::MessageExts
1139
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1140
+
1141
+ # Configuration for AES-128 encryption.
1142
+ # @!attribute [rw] key_uri
1143
+ # @return [::String]
1144
+ # Required. URI of the key delivery service. This URI is inserted into the M3U8
1145
+ # header.
1146
+ class Aes128Encryption
1147
+ include ::Google::Protobuf::MessageExts
1148
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1149
+ end
1150
+
1151
+ # Configuration for SAMPLE-AES encryption.
1152
+ # @!attribute [rw] key_uri
1153
+ # @return [::String]
1154
+ # Required. URI of the key delivery service. This URI is inserted into the M3U8
1155
+ # header.
1156
+ class SampleAesEncryption
1157
+ include ::Google::Protobuf::MessageExts
1158
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1159
+ end
1160
+
1161
+ # Configuration for MPEG Common Encryption (MPEG-CENC).
1162
+ # @!attribute [rw] key_id
1163
+ # @return [::String]
1164
+ # Required. 128 bit Key ID represented as lowercase hexadecimal digits for use with
1165
+ # common encryption.
1166
+ # @!attribute [rw] scheme
1167
+ # @return [::String]
1168
+ # Required. Specify the encryption scheme.
1169
+ #
1170
+ # Supported encryption schemes:
1171
+ # - 'cenc'
1172
+ # - 'cbcs'
1173
+ class MpegCommonEncryption
1174
+ include ::Google::Protobuf::MessageExts
1175
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1176
+ end
1177
+ end
1178
+ end
1179
+ end
1180
+ end
1181
+ end
1182
+ end