- Resource: Channel
- InputAttachment
- AutomaticFailover
- Output
- ElementaryStream
- VideoStream
- H264CodecSettings
- AudioStream
- AudioMapping
- TextStream
- MuxStream
- SegmentSettings
- Manifest
- ManifestType
- SpriteSheet
- StreamingState
- LogConfig
- LogSeverity
- TimecodeConfig
- TimecodeSource
- TimeZone
- Encryption
- SecretManagerSource
- DrmSystems
- Widevine
- Fairplay
- Playready
- Clearkey
- Aes128Encryption
- SampleAesEncryption
- MpegCommonEncryption
- InputConfig
- InputSwitchMode
- RetentionConfig
- StaticOverlay
- NormalizedResolution
- NormalizedCoordinate
- Methods
Resource: Channel
Channel resource represents the processor that does a user-defined "streaming" operation, which includes getting an input stream through an input, transcoding it to multiple renditions, and publishing output live streams in certain formats (for example, HLS or DASH) to the specified location.
JSON representation |
---|
{ "name": string, "createTime": string, "updateTime": string, "labels": { string: string, ... }, "inputAttachments": [ { object ( |
Fields | |
---|---|
name |
The resource name of the channel, in the form of: |
createTime |
Output only. The creation time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: |
updateTime |
Output only. The update time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: |
labels |
User-defined key/value metadata. An object containing a list of |
inputAttachments[] |
A list of input attachments that this channel uses. One channel can have multiple inputs as the input sources. Only one input can be selected as the input source at one time. |
activeInput |
Output only. The |
output |
Required. Information about the output (that is, the Cloud Storage bucket to store the generated live stream). |
elementaryStreams[] |
List of elementary streams. |
muxStreams[] |
List of multiplexing settings for output streams. |
manifests[] |
List of output manifests. |
spriteSheets[] |
List of output sprite sheets. |
streamingState |
Output only. State of the streaming operation. |
streamingError |
Output only. A description of the reason for the streaming error. This property is always present when |
logConfig |
Configuration of platform logs for this channel. |
timecodeConfig |
Configuration of timecode for this channel. |
encryptions[] |
Encryption configurations for this channel. Each configuration has an ID which is referred to by each MuxStream to indicate which configuration is used for that output. |
inputConfig |
The configuration for input sources defined in |
retentionConfig |
Optional. Configuration for retention of output files for this channel. |
staticOverlays[] |
Optional. List of static overlay images. Those images display over the output content for the whole duration of the live stream. |
InputAttachment
A group of information for attaching an input resource to this channel.
JSON representation |
---|
{
"key": string,
"input": string,
"automaticFailover": {
object ( |
Fields | |
---|---|
key |
A unique key for this input attachment. The key must be 1-63 characters in length. The key must begin and end with a letter (regardless of case) or a number, but can contain dashes or underscores in between. |
input |
The resource name of an existing input, in the form of: |
automaticFailover |
Automatic failover configurations. |
AutomaticFailover
Configurations to follow when automatic failover happens.
JSON representation |
---|
{ "inputKeys": [ string ] } |
Fields | |
---|---|
inputKeys[] |
The |
Output
Location of output file(s) in a Google Cloud Storage bucket.
JSON representation |
---|
{ "uri": string } |
Fields | |
---|---|
uri |
URI for the output file(s). For example, |
ElementaryStream
Encoding of an input element such as an audio, video, or text track. Elementary streams must be packaged before mapping and sharing between different output formats.
JSON representation |
---|
{ "key": string, // Union field |
Fields | |
---|---|
key |
A unique key for this elementary stream. The key must be 1-63 characters in length. The key must begin and end with a letter (regardless of case) or a number, but can contain dashes or underscores in between. |
Union field elementary_stream . Required. Encoding of an audio, video, or text track. elementary_stream can be only one of the following: |
|
videoStream |
Encoding of a video stream. |
audioStream |
Encoding of an audio stream. |
textStream |
Encoding of a text stream. For example, closed captions or subtitles. |
VideoStream
Video stream resource.
JSON representation |
---|
{ // Union field |
Fields | |
---|---|
Union field codec_settings . Codec settings. codec_settings can be only one of the following: |
|
h264 |
H264 codec settings. |
H264CodecSettings
H264 codec settings.
JSON representation |
---|
{ "widthPixels": integer, "heightPixels": integer, "frameRate": number, "bitrateBps": integer, "allowOpenGop": boolean, "vbvSizeBits": integer, "vbvFullnessBits": integer, "entropyCoder": string, "bPyramid": boolean, "bFrameCount": integer, "aqStrength": number, "profile": string, "tune": string, // Union field |
Fields | |
---|---|
widthPixels |
Required. The width of the video in pixels. Must be an even integer. Valid range is [320, 1920]. |
heightPixels |
Required. The height of the video in pixels. Must be an even integer. Valid range is [180, 1080]. |
frameRate |
Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 60. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. See Calculating frame rate for more information. |
bitrateBps |
Required. The video bitrate in bits per second. Minimum value is 10,000.
|
allowOpenGop |
Specifies whether an open Group of Pictures (GOP) structure should be allowed or not. The default is |
vbvSizeBits |
Size of the Video Buffering Verifier (VBV) buffer in bits. Must be greater than zero. The default is equal to |
vbvFullnessBits |
Initial fullness of the Video Buffering Verifier (VBV) buffer in bits. Must be greater than zero. The default is equal to 90% of |
entropyCoder |
The entropy coder to use. The default is Supported entropy coders:
|
bPyramid |
Allow B-pyramid for reference frame selection. This may not be supported on all decoders. The default is |
bFrameCount |
The number of consecutive B-frames. Must be greater than or equal to zero. Must be less than |
aqStrength |
Specify the intensity of the adaptive quantizer (AQ). Must be between 0 and 1, where 0 disables the quantizer and 1 maximizes the quantizer. A higher value equals a lower bitrate but smoother image. The default is 0. |
profile |
Enforces the specified codec profile. The following profiles are supported:
The available options are FFmpeg-compatible Profile Options. Note that certain values for this field may cause the transcoder to override other fields you set in the |
tune |
Enforces the specified codec tune. The available options are FFmpeg-compatible Encode Options Note that certain values for this field may cause the transcoder to override other fields you set in the |
Union field gop_mode . GOP mode can be either by frame count or duration. gop_mode can be only one of the following: |
|
gopFrameCount |
Select the GOP size based on the specified frame count. If GOP frame count is set instead of GOP duration, GOP duration will be calculated by |
gopDuration |
Select the GOP size based on the specified duration. The default is All video streams in the same channel must have the same GOP size. A duration in seconds with up to nine fractional digits, ending with ' |
AudioStream
Audio stream resource.
JSON representation |
---|
{
"transmux": boolean,
"codec": string,
"bitrateBps": integer,
"channelCount": integer,
"channelLayout": [
string
],
"mapping": [
{
object ( |
Fields | |
---|---|
transmux |
Specifies whether pass through (transmuxing) is enabled or not. If set to |
codec |
The codec for this audio stream. The default is Supported audio codecs:
|
bitrateBps |
Required. Audio bitrate in bits per second. Must be between 1 and 10,000,000. |
channelCount |
Number of audio channels. Must be between 1 and 6. The default is 2. |
channelLayout[] |
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 Supported channel names:
|
mapping[] |
The mapping for the input streams and audio channels. |
sampleRateHertz |
The audio sample rate in Hertz. The default is 48000 Hertz. |
AudioMapping
The mapping for the input streams and audio channels.
JSON representation |
---|
{ "inputKey": string, "inputTrack": integer, "inputChannel": integer, "outputChannel": integer, "gainDb": number } |
Fields | |
---|---|
inputKey |
Required. The |
inputTrack |
Required. The zero-based index of the track in the input stream. All |
inputChannel |
Required. The zero-based index of the channel in the input stream. |
outputChannel |
Required. The zero-based index of the channel in the output audio stream. Must be consistent with the |
gainDb |
Audio volume control in dB. Negative values decrease volume, positive values increase. The default is 0. |
TextStream
Encoding of a text stream. For example, closed captions or subtitles.
JSON representation |
---|
{ "codec": string } |
Fields | |
---|---|
codec |
Required. The codec for this text stream. Supported text codecs:
|
MuxStream
Multiplexing settings for output stream.
JSON representation |
---|
{
"key": string,
"container": string,
"elementaryStreams": [
string
],
"segmentSettings": {
object ( |
Fields | |
---|---|
key |
A unique key for this multiplexed stream. The key must be 1-63 characters in length. The key must begin and end with a letter (regardless of case) or a number, but can contain dashes or underscores in between. |
container |
The container format. The default is Supported container formats:
|
elementaryStreams[] |
List of
|
segmentSettings |
Segment settings for |
encryptionId |
Identifier of the encryption configuration to use. If omitted, output will be unencrypted. |
SegmentSettings
Segment settings for fmp4
and ts
.
JSON representation |
---|
{ "segmentDuration": string } |
Fields | |
---|---|
segmentDuration |
Duration of the segments in seconds. The default is All A duration in seconds with up to nine fractional digits, ending with ' |
Manifest
Manifest configuration.
JSON representation |
---|
{
"fileName": string,
"type": enum ( |
Fields | |
---|---|
fileName |
The name of the generated file. The default is |
type |
Required. Type of the manifest, can be |
muxStreams[] |
Required. List of
|
maxSegmentCount |
Maximum number of segments that this manifest holds. Once the manifest reaches this maximum number of segments, whenever a new segment is added to the manifest, the oldest segment will be removed from the manifest. The minimum value is 3 and the default value is 5. |
segmentKeepDuration |
How long to keep a segment on the output Google Cloud Storage bucket after it is removed from the manifest. This field should be large enough to cover the manifest propagation delay. Otherwise, a player could receive 404 errors while accessing segments which are listed in the manifest that the player has, but were already deleted from the output Google Cloud Storage bucket. Default value is If both segmentKeepDuration and A duration in seconds with up to nine fractional digits, ending with ' |
useTimecodeAsTimeline |
Whether to use the timecode, as specified in timecode config, when setting:
If false, ignore the input timecode and use the time from system clock when the manifest is first generated. This is the default behavior. |
key |
Optional. A unique key for this manifest. |
ManifestType
The manifest type can be either HLS
or DASH
.
Enums | |
---|---|
MANIFEST_TYPE_UNSPECIFIED |
The manifest type is not specified. |
HLS |
Create an HLS manifest. The corresponding file extension is .m3u8 . |
DASH |
Create a DASH manifest. The corresponding file extension is .mpd . |
SpriteSheet
Sprite sheet configuration.
JSON representation |
---|
{ "format": string, "filePrefix": string, "spriteWidthPixels": integer, "spriteHeightPixels": integer, "columnCount": integer, "rowCount": integer, "interval": string, "quality": integer } |
Fields | |
---|---|
format |
Format type. The default is Supported formats:
|
filePrefix |
Required. File name prefix for the generated sprite sheets. If multiple sprite sheets are added to the channel, each must have a unique file prefix. Each sprite sheet has an incremental 10-digit zero-padded suffix starting from 0 before the extension, such as |
spriteWidthPixels |
Required. The width of the sprite in pixels. Must be an even integer. |
spriteHeightPixels |
Required. The height of the sprite in pixels. Must be an even integer. |
columnCount |
The maximum number of sprites per row in a sprite sheet. Valid range is [1, 10] and the default value is 1. |
rowCount |
The maximum number of rows per sprite sheet. When the sprite sheet is full, a new sprite sheet is created. Valid range is [1, 10] and the default value is 1. |
interval |
Create sprites at regular intervals. Valid range is [1 second, 1 hour] and the default value is A duration in seconds with up to nine fractional digits, ending with ' |
quality |
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. |
StreamingState
State of streaming operation that the channel is running.
Enums | |
---|---|
STREAMING_STATE_UNSPECIFIED |
Streaming state is not specified. |
STREAMING |
Channel is getting the input stream, generating the live streams to the specified output location. |
AWAITING_INPUT |
Channel is waiting for the input stream through the input. |
STREAMING_ERROR |
Channel is running, but has trouble publishing the live streams onto the specified output location (for example, the specified Cloud Storage bucket is not writable). |
STREAMING_NO_INPUT |
Channel is generating live streams with no input stream. Live streams are filled out with black screen, while input stream is missing. Not supported yet. |
STOPPED |
Channel is stopped, finishing live streams. |
STARTING |
Channel is starting. |
STOPPING |
Channel is stopping. |
LogConfig
Configuration of platform logs. See Using and managing platform logs for more information about how to view platform logs through Cloud Logging.
JSON representation |
---|
{
"logSeverity": enum ( |
Fields | |
---|---|
logSeverity |
The severity level of platform logging for this resource. |
LogSeverity
The severity level of platform logging for this channel. Logs with a severity level higher than or equal to the chosen severity level will be logged and can be viewed through Cloud Logging. The severity level of a log is ranked as followed from low to high: DEBUG < INFO < NOTICE < WARNING < ERROR < CRITICAL < ALERT < EMERGENCY. See LogSeverity for more information.
Enums | |
---|---|
LOG_SEVERITY_UNSPECIFIED |
Log severity is not specified. This is the same as log severity is OFF. |
OFF |
Log is turned off. |
DEBUG |
Log with severity higher than or equal to DEBUG are logged. |
INFO |
Logs with severity higher than or equal to INFO are logged. |
WARNING |
Logs with severity higher than or equal to WARNING are logged. |
ERROR |
Logs with severity higher than or equal to ERROR are logged. |
TimecodeConfig
Timecode configuration.
JSON representation |
---|
{ "source": enum ( |
Fields | |
---|---|
source |
The source of the timecode that will later be used in outputs/manifests. It determines the initial timecode/timestamp (first frame) of output streams. |
Union field time_offset . For EMBEDDED_TIMECODE source only. Used to interpret the embedded timecode (which contains only the time part and no date). We assume all inputs are live. time_offset can be only one of the following: |
|
utcOffset |
UTC offset. Must be whole seconds, between -18 hours and +18 hours. A duration in seconds with up to nine fractional digits, ending with ' |
timeZone |
Time zone e.g. "America/Los_Angeles". |
TimecodeSource
The source of timecode.
Enums | |
---|---|
TIMECODE_SOURCE_UNSPECIFIED |
The timecode source is not specified. |
MEDIA_TIMESTAMP |
Use input media timestamp. |
EMBEDDED_TIMECODE |
Use input embedded timecode e.g. picture timing SEI message. |
TimeZone
Represents a time zone from the IANA Time Zone Database.
JSON representation |
---|
{ "id": string, "version": string } |
Fields | |
---|---|
id |
IANA Time Zone Database time zone, e.g. "America/New_York". |
version |
Optional. IANA Time Zone Database version number, e.g. "2019a". |
Encryption
Encryption settings.
JSON representation |
---|
{ "id": string, "drmSystems": { object ( |
Fields | |
---|---|
id |
Required. Identifier for this set of encryption options. The ID must be 1-63 characters in length. The ID must begin and end with a letter (regardless of case) or a number, but can contain dashes or underscores in between. |
drmSystems |
Required. Configuration for DRM systems. |
Union field secret_source . Defines where content keys are stored. secret_source can be only one of the following: |
|
secretManagerKeySource |
For keys stored in Google Secret Manager. |
Union field encryption_mode . Encryption modes for HLS and MPEG-Dash. encryption_mode can be only one of the following: |
|
aes128 |
Configuration for HLS AES-128 encryption. |
sampleAes |
Configuration for HLS SAMPLE-AES encryption. |
mpegCenc |
Configuration for MPEG-Dash Common Encryption (MPEG-CENC). |
SecretManagerSource
Configuration for secrets stored in Google Secret Manager.
JSON representation |
---|
{ "secretVersion": string } |
Fields | |
---|---|
secretVersion |
Required. The name of the Secret Version containing the encryption key. |
DrmSystems
Defines configuration for DRM systems in use. If a field is omitted, that DRM system will be considered to be disabled.
JSON representation |
---|
{ "widevine": { object ( |
Fields | |
---|---|
widevine |
Widevine configuration. |
fairplay |
Fairplay configuration. |
playready |
Playready configuration. |
clearkey |
Clearkey configuration. |
Widevine
This type has no fields.
Widevine configuration.
Fairplay
This type has no fields.
Fairplay configuration.
Playready
This type has no fields.
Playready configuration.
Clearkey
This type has no fields.
Clearkey configuration.
Aes128Encryption
This type has no fields.
Configuration for HLS AES-128 encryption.
SampleAesEncryption
This type has no fields.
Configuration for HLS SAMPLE-AES encryption.
MpegCommonEncryption
Configuration for MPEG-Dash Common Encryption (MPEG-CENC).
JSON representation |
---|
{ "scheme": string } |
Fields | |
---|---|
scheme |
Required. Specify the encryption scheme, supported schemes: - |
InputConfig
Configuration for the input sources of a channel.
JSON representation |
---|
{
"inputSwitchMode": enum ( |
Fields | |
---|---|
inputSwitchMode |
Input switch mode. Default mode is |
InputSwitchMode
Input switch mode.
Enums | |
---|---|
INPUT_SWITCH_MODE_UNSPECIFIED |
The input switch mode is not specified. |
FAILOVER_PREFER_PRIMARY |
Automatic failover is enabled. The primary input stream is always preferred over its backup input streams configured using the AutomaticFailover field. |
MANUAL |
Automatic failover is disabled. You must use the inputSwitch event to switch the active input source for the channel to stream from. When this mode is chosen, the AutomaticFailover field is ignored. |
RetentionConfig
Configuration for retention of output files.
JSON representation |
---|
{ "retentionWindowDuration": string } |
Fields | |
---|---|
retentionWindowDuration |
The minimum duration for which the output files from the channel will remain in the output bucket. After this duration, output files are deleted asynchronously. When the channel is deleted, all output files are deleted from the output bucket asynchronously. If omitted or set to zero, output files will remain in the output bucket based on If both retentionWindowDuration and A duration in seconds with up to nine fractional digits, ending with ' |
StaticOverlay
Configuration for the static overlay.
JSON representation |
---|
{ "asset": string, "resolution": { object ( |
Fields | |
---|---|
asset |
Required. Asset to use for the overlaid image. The asset must be represented in the form of: |
resolution |
Optional. Normalized image resolution, based on output video resolution. Valid values are [0.0, 1.0]. To respect the original image aspect ratio, set either |
position |
Optional. Position of the image in terms of normalized coordinates of the upper-left corner of the image, based on output video resolution. 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. |
opacity |
Optional. Target image opacity. Valid values are from |
NormalizedResolution
Normalized resolution.
JSON representation |
---|
{ "w": number, "h": number } |
Fields | |
---|---|
w |
Optional. Normalized width. Valid range is [0.0, 1.0]. Default is 0. |
h |
Optional. Normalized height. Valid range is [0.0, 1.0]. Default is 0. |
NormalizedCoordinate
2D normalized coordinates.
JSON representation |
---|
{ "x": number, "y": number } |
Fields | |
---|---|
x |
Optional. Normalized x coordinate. Valid range is [0.0, 1.0]. Default is 0. |
y |
Optional. Normalized y coordinate. Valid range is [0.0, 1.0]. Default is 0. |
Methods |
|
---|---|
|
Creates a channel with the provided unique ID in the specified region. |
|
Deletes the specified channel. |
|
Returns the specified channel. |
|
Returns a list of all channels in the specified region. |
|
Updates the specified channel. |
|
Starts the specified channel. |
|
Stops the specified channel. |