gcp.transcoder.JobTemplate
Explore with Pulumi AI
Transcoding Job Template Resource
To get more information about JobTemplate, see:
- API documentation
- How-to Guides
Example Usage
Transcoder Job Template Basic
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const _default = new gcp.transcoder.JobTemplate("default", {
jobTemplateId: "example-job-template",
location: "us-central1",
config: {
inputs: [{
key: "input0",
}],
editLists: [{
key: "atom0",
inputs: ["input0"],
startTimeOffset: "0s",
}],
adBreaks: [{
startTimeOffset: "3.500s",
}],
elementaryStreams: [
{
key: "video-stream0",
videoStream: {
h264: {
widthPixels: 640,
heightPixels: 360,
bitrateBps: 550000,
frameRate: 60,
pixelFormat: "yuv420p",
rateControlMode: "vbr",
crfLevel: 21,
gopDuration: "3s",
vbvSizeBits: 550000,
vbvFullnessBits: 495000,
entropyCoder: "cabac",
profile: "high",
preset: "veryfast",
},
},
},
{
key: "video-stream1",
videoStream: {
h264: {
widthPixels: 1280,
heightPixels: 720,
bitrateBps: 550000,
frameRate: 60,
pixelFormat: "yuv420p",
rateControlMode: "vbr",
crfLevel: 21,
gopDuration: "3s",
vbvSizeBits: 2500000,
vbvFullnessBits: 2250000,
entropyCoder: "cabac",
profile: "high",
preset: "veryfast",
},
},
},
{
key: "audio-stream0",
audioStream: {
codec: "aac",
bitrateBps: 64000,
channelCount: 2,
channelLayouts: [
"fl",
"fr",
],
sampleRateHertz: 48000,
},
},
],
muxStreams: [
{
key: "sd",
fileName: "sd.mp4",
container: "mp4",
elementaryStreams: [
"video-stream0",
"audio-stream0",
],
},
{
key: "hd",
fileName: "hd.mp4",
container: "mp4",
elementaryStreams: [
"video-stream1",
"audio-stream0",
],
},
],
},
labels: {
label: "key",
},
});
import pulumi
import pulumi_gcp as gcp
default = gcp.transcoder.JobTemplate("default",
job_template_id="example-job-template",
location="us-central1",
config={
"inputs": [{
"key": "input0",
}],
"edit_lists": [{
"key": "atom0",
"inputs": ["input0"],
"start_time_offset": "0s",
}],
"ad_breaks": [{
"start_time_offset": "3.500s",
}],
"elementary_streams": [
{
"key": "video-stream0",
"video_stream": {
"h264": {
"width_pixels": 640,
"height_pixels": 360,
"bitrate_bps": 550000,
"frame_rate": 60,
"pixel_format": "yuv420p",
"rate_control_mode": "vbr",
"crf_level": 21,
"gop_duration": "3s",
"vbv_size_bits": 550000,
"vbv_fullness_bits": 495000,
"entropy_coder": "cabac",
"profile": "high",
"preset": "veryfast",
},
},
},
{
"key": "video-stream1",
"video_stream": {
"h264": {
"width_pixels": 1280,
"height_pixels": 720,
"bitrate_bps": 550000,
"frame_rate": 60,
"pixel_format": "yuv420p",
"rate_control_mode": "vbr",
"crf_level": 21,
"gop_duration": "3s",
"vbv_size_bits": 2500000,
"vbv_fullness_bits": 2250000,
"entropy_coder": "cabac",
"profile": "high",
"preset": "veryfast",
},
},
},
{
"key": "audio-stream0",
"audio_stream": {
"codec": "aac",
"bitrate_bps": 64000,
"channel_count": 2,
"channel_layouts": [
"fl",
"fr",
],
"sample_rate_hertz": 48000,
},
},
],
"mux_streams": [
{
"key": "sd",
"file_name": "sd.mp4",
"container": "mp4",
"elementary_streams": [
"video-stream0",
"audio-stream0",
],
},
{
"key": "hd",
"file_name": "hd.mp4",
"container": "mp4",
"elementary_streams": [
"video-stream1",
"audio-stream0",
],
},
],
},
labels={
"label": "key",
})
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/transcoder"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := transcoder.NewJobTemplate(ctx, "default", &transcoder.JobTemplateArgs{
JobTemplateId: pulumi.String("example-job-template"),
Location: pulumi.String("us-central1"),
Config: &transcoder.JobTemplateConfigArgs{
Inputs: transcoder.JobTemplateConfigInputTypeArray{
&transcoder.JobTemplateConfigInputTypeArgs{
Key: pulumi.String("input0"),
},
},
EditLists: transcoder.JobTemplateConfigEditListArray{
&transcoder.JobTemplateConfigEditListArgs{
Key: pulumi.String("atom0"),
Inputs: pulumi.StringArray{
pulumi.String("input0"),
},
StartTimeOffset: pulumi.String("0s"),
},
},
AdBreaks: transcoder.JobTemplateConfigAdBreakArray{
&transcoder.JobTemplateConfigAdBreakArgs{
StartTimeOffset: pulumi.String("3.500s"),
},
},
ElementaryStreams: transcoder.JobTemplateConfigElementaryStreamArray{
&transcoder.JobTemplateConfigElementaryStreamArgs{
Key: pulumi.String("video-stream0"),
VideoStream: &transcoder.JobTemplateConfigElementaryStreamVideoStreamArgs{
H264: &transcoder.JobTemplateConfigElementaryStreamVideoStreamH264Args{
WidthPixels: pulumi.Int(640),
HeightPixels: pulumi.Int(360),
BitrateBps: pulumi.Int(550000),
FrameRate: pulumi.Int(60),
PixelFormat: pulumi.String("yuv420p"),
RateControlMode: pulumi.String("vbr"),
CrfLevel: pulumi.Int(21),
GopDuration: pulumi.String("3s"),
VbvSizeBits: pulumi.Int(550000),
VbvFullnessBits: pulumi.Int(495000),
EntropyCoder: pulumi.String("cabac"),
Profile: pulumi.String("high"),
Preset: pulumi.String("veryfast"),
},
},
},
&transcoder.JobTemplateConfigElementaryStreamArgs{
Key: pulumi.String("video-stream1"),
VideoStream: &transcoder.JobTemplateConfigElementaryStreamVideoStreamArgs{
H264: &transcoder.JobTemplateConfigElementaryStreamVideoStreamH264Args{
WidthPixels: pulumi.Int(1280),
HeightPixels: pulumi.Int(720),
BitrateBps: pulumi.Int(550000),
FrameRate: pulumi.Int(60),
PixelFormat: pulumi.String("yuv420p"),
RateControlMode: pulumi.String("vbr"),
CrfLevel: pulumi.Int(21),
GopDuration: pulumi.String("3s"),
VbvSizeBits: pulumi.Int(2500000),
VbvFullnessBits: pulumi.Int(2250000),
EntropyCoder: pulumi.String("cabac"),
Profile: pulumi.String("high"),
Preset: pulumi.String("veryfast"),
},
},
},
&transcoder.JobTemplateConfigElementaryStreamArgs{
Key: pulumi.String("audio-stream0"),
AudioStream: &transcoder.JobTemplateConfigElementaryStreamAudioStreamArgs{
Codec: pulumi.String("aac"),
BitrateBps: pulumi.Int(64000),
ChannelCount: pulumi.Int(2),
ChannelLayouts: pulumi.StringArray{
pulumi.String("fl"),
pulumi.String("fr"),
},
SampleRateHertz: pulumi.Int(48000),
},
},
},
MuxStreams: transcoder.JobTemplateConfigMuxStreamArray{
&transcoder.JobTemplateConfigMuxStreamArgs{
Key: pulumi.String("sd"),
FileName: pulumi.String("sd.mp4"),
Container: pulumi.String("mp4"),
ElementaryStreams: pulumi.StringArray{
pulumi.String("video-stream0"),
pulumi.String("audio-stream0"),
},
},
&transcoder.JobTemplateConfigMuxStreamArgs{
Key: pulumi.String("hd"),
FileName: pulumi.String("hd.mp4"),
Container: pulumi.String("mp4"),
ElementaryStreams: pulumi.StringArray{
pulumi.String("video-stream1"),
pulumi.String("audio-stream0"),
},
},
},
},
Labels: pulumi.StringMap{
"label": pulumi.String("key"),
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var @default = new Gcp.Transcoder.JobTemplate("default", new()
{
JobTemplateId = "example-job-template",
Location = "us-central1",
Config = new Gcp.Transcoder.Inputs.JobTemplateConfigArgs
{
Inputs = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigInputArgs
{
Key = "input0",
},
},
EditLists = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigEditListArgs
{
Key = "atom0",
Inputs = new[]
{
"input0",
},
StartTimeOffset = "0s",
},
},
AdBreaks = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigAdBreakArgs
{
StartTimeOffset = "3.500s",
},
},
ElementaryStreams = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamArgs
{
Key = "video-stream0",
VideoStream = new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamVideoStreamArgs
{
H264 = new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamVideoStreamH264Args
{
WidthPixels = 640,
HeightPixels = 360,
BitrateBps = 550000,
FrameRate = 60,
PixelFormat = "yuv420p",
RateControlMode = "vbr",
CrfLevel = 21,
GopDuration = "3s",
VbvSizeBits = 550000,
VbvFullnessBits = 495000,
EntropyCoder = "cabac",
Profile = "high",
Preset = "veryfast",
},
},
},
new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamArgs
{
Key = "video-stream1",
VideoStream = new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamVideoStreamArgs
{
H264 = new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamVideoStreamH264Args
{
WidthPixels = 1280,
HeightPixels = 720,
BitrateBps = 550000,
FrameRate = 60,
PixelFormat = "yuv420p",
RateControlMode = "vbr",
CrfLevel = 21,
GopDuration = "3s",
VbvSizeBits = 2500000,
VbvFullnessBits = 2250000,
EntropyCoder = "cabac",
Profile = "high",
Preset = "veryfast",
},
},
},
new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamArgs
{
Key = "audio-stream0",
AudioStream = new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamAudioStreamArgs
{
Codec = "aac",
BitrateBps = 64000,
ChannelCount = 2,
ChannelLayouts = new[]
{
"fl",
"fr",
},
SampleRateHertz = 48000,
},
},
},
MuxStreams = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigMuxStreamArgs
{
Key = "sd",
FileName = "sd.mp4",
Container = "mp4",
ElementaryStreams = new[]
{
"video-stream0",
"audio-stream0",
},
},
new Gcp.Transcoder.Inputs.JobTemplateConfigMuxStreamArgs
{
Key = "hd",
FileName = "hd.mp4",
Container = "mp4",
ElementaryStreams = new[]
{
"video-stream1",
"audio-stream0",
},
},
},
},
Labels =
{
{ "label", "key" },
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.transcoder.JobTemplate;
import com.pulumi.gcp.transcoder.JobTemplateArgs;
import com.pulumi.gcp.transcoder.inputs.JobTemplateConfigArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var default_ = new JobTemplate("default", JobTemplateArgs.builder()
.jobTemplateId("example-job-template")
.location("us-central1")
.config(JobTemplateConfigArgs.builder()
.inputs(JobTemplateConfigInputArgs.builder()
.key("input0")
.build())
.editLists(JobTemplateConfigEditListArgs.builder()
.key("atom0")
.inputs("input0")
.startTimeOffset("0s")
.build())
.adBreaks(JobTemplateConfigAdBreakArgs.builder()
.startTimeOffset("3.500s")
.build())
.elementaryStreams(
JobTemplateConfigElementaryStreamArgs.builder()
.key("video-stream0")
.videoStream(JobTemplateConfigElementaryStreamVideoStreamArgs.builder()
.h264(JobTemplateConfigElementaryStreamVideoStreamH264Args.builder()
.widthPixels(640)
.heightPixels(360)
.bitrateBps(550000)
.frameRate(60)
.pixelFormat("yuv420p")
.rateControlMode("vbr")
.crfLevel(21)
.gopDuration("3s")
.vbvSizeBits(550000)
.vbvFullnessBits(495000)
.entropyCoder("cabac")
.profile("high")
.preset("veryfast")
.build())
.build())
.build(),
JobTemplateConfigElementaryStreamArgs.builder()
.key("video-stream1")
.videoStream(JobTemplateConfigElementaryStreamVideoStreamArgs.builder()
.h264(JobTemplateConfigElementaryStreamVideoStreamH264Args.builder()
.widthPixels(1280)
.heightPixels(720)
.bitrateBps(550000)
.frameRate(60)
.pixelFormat("yuv420p")
.rateControlMode("vbr")
.crfLevel(21)
.gopDuration("3s")
.vbvSizeBits(2500000)
.vbvFullnessBits(2250000)
.entropyCoder("cabac")
.profile("high")
.preset("veryfast")
.build())
.build())
.build(),
JobTemplateConfigElementaryStreamArgs.builder()
.key("audio-stream0")
.audioStream(JobTemplateConfigElementaryStreamAudioStreamArgs.builder()
.codec("aac")
.bitrateBps(64000)
.channelCount(2)
.channelLayouts(
"fl",
"fr")
.sampleRateHertz(48000)
.build())
.build())
.muxStreams(
JobTemplateConfigMuxStreamArgs.builder()
.key("sd")
.fileName("sd.mp4")
.container("mp4")
.elementaryStreams(
"video-stream0",
"audio-stream0")
.build(),
JobTemplateConfigMuxStreamArgs.builder()
.key("hd")
.fileName("hd.mp4")
.container("mp4")
.elementaryStreams(
"video-stream1",
"audio-stream0")
.build())
.build())
.labels(Map.of("label", "key"))
.build());
}
}
resources:
default:
type: gcp:transcoder:JobTemplate
properties:
jobTemplateId: example-job-template
location: us-central1
config:
inputs:
- key: input0
editLists:
- key: atom0
inputs:
- input0
startTimeOffset: 0s
adBreaks:
- startTimeOffset: 3.500s
elementaryStreams:
- key: video-stream0
videoStream:
h264:
widthPixels: 640
heightPixels: 360
bitrateBps: 550000
frameRate: 60
pixelFormat: yuv420p
rateControlMode: vbr
crfLevel: 21
gopDuration: 3s
vbvSizeBits: 550000
vbvFullnessBits: 495000
entropyCoder: cabac
profile: high
preset: veryfast
- key: video-stream1
videoStream:
h264:
widthPixels: 1280
heightPixels: 720
bitrateBps: 550000
frameRate: 60
pixelFormat: yuv420p
rateControlMode: vbr
crfLevel: 21
gopDuration: 3s
vbvSizeBits: 2.5e+06
vbvFullnessBits: 2.25e+06
entropyCoder: cabac
profile: high
preset: veryfast
- key: audio-stream0
audioStream:
codec: aac
bitrateBps: 64000
channelCount: 2
channelLayouts:
- fl
- fr
sampleRateHertz: 48000
muxStreams:
- key: sd
fileName: sd.mp4
container: mp4
elementaryStreams:
- video-stream0
- audio-stream0
- key: hd
fileName: hd.mp4
container: mp4
elementaryStreams:
- video-stream1
- audio-stream0
labels:
label: key
Transcoder Job Template Overlays
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const _default = new gcp.transcoder.JobTemplate("default", {
jobTemplateId: "example-job-template",
location: "us-central1",
config: {
inputs: [{
key: "input0",
uri: "gs://example/example.mp4",
}],
output: {
uri: "gs://example/outputs/",
},
editLists: [{
key: "atom0",
inputs: ["input0"],
startTimeOffset: "0s",
}],
adBreaks: [{
startTimeOffset: "3.500s",
}],
overlays: [{
animations: [{
animationFade: {
fadeType: "FADE_IN",
startTimeOffset: "1.500s",
endTimeOffset: "3.500s",
xy: {
x: 1,
y: 0.5,
},
},
}],
image: {
uri: "gs://example/overlay.png",
},
}],
elementaryStreams: [
{
key: "video-stream0",
videoStream: {
h264: {
widthPixels: 640,
heightPixels: 360,
bitrateBps: 550000,
frameRate: 60,
pixelFormat: "yuv420p",
rateControlMode: "vbr",
crfLevel: 21,
gopDuration: "3s",
vbvSizeBits: 550000,
vbvFullnessBits: 495000,
entropyCoder: "cabac",
profile: "high",
preset: "veryfast",
},
},
},
{
key: "video-stream1",
videoStream: {
h264: {
widthPixels: 1280,
heightPixels: 720,
bitrateBps: 550000,
frameRate: 60,
pixelFormat: "yuv420p",
rateControlMode: "vbr",
crfLevel: 21,
gopDuration: "3s",
vbvSizeBits: 2500000,
vbvFullnessBits: 2250000,
entropyCoder: "cabac",
profile: "high",
preset: "veryfast",
},
},
},
{
key: "audio-stream0",
audioStream: {
codec: "aac",
bitrateBps: 64000,
channelCount: 2,
channelLayouts: [
"fl",
"fr",
],
sampleRateHertz: 48000,
},
},
],
muxStreams: [
{
key: "sd",
fileName: "sd.mp4",
container: "mp4",
elementaryStreams: [
"video-stream0",
"audio-stream0",
],
},
{
key: "hd",
fileName: "hd.mp4",
container: "mp4",
elementaryStreams: [
"video-stream1",
"audio-stream0",
],
},
],
},
labels: {
label: "key",
},
});
import pulumi
import pulumi_gcp as gcp
default = gcp.transcoder.JobTemplate("default",
job_template_id="example-job-template",
location="us-central1",
config={
"inputs": [{
"key": "input0",
"uri": "gs://example/example.mp4",
}],
"output": {
"uri": "gs://example/outputs/",
},
"edit_lists": [{
"key": "atom0",
"inputs": ["input0"],
"start_time_offset": "0s",
}],
"ad_breaks": [{
"start_time_offset": "3.500s",
}],
"overlays": [{
"animations": [{
"animation_fade": {
"fade_type": "FADE_IN",
"start_time_offset": "1.500s",
"end_time_offset": "3.500s",
"xy": {
"x": 1,
"y": 0.5,
},
},
}],
"image": {
"uri": "gs://example/overlay.png",
},
}],
"elementary_streams": [
{
"key": "video-stream0",
"video_stream": {
"h264": {
"width_pixels": 640,
"height_pixels": 360,
"bitrate_bps": 550000,
"frame_rate": 60,
"pixel_format": "yuv420p",
"rate_control_mode": "vbr",
"crf_level": 21,
"gop_duration": "3s",
"vbv_size_bits": 550000,
"vbv_fullness_bits": 495000,
"entropy_coder": "cabac",
"profile": "high",
"preset": "veryfast",
},
},
},
{
"key": "video-stream1",
"video_stream": {
"h264": {
"width_pixels": 1280,
"height_pixels": 720,
"bitrate_bps": 550000,
"frame_rate": 60,
"pixel_format": "yuv420p",
"rate_control_mode": "vbr",
"crf_level": 21,
"gop_duration": "3s",
"vbv_size_bits": 2500000,
"vbv_fullness_bits": 2250000,
"entropy_coder": "cabac",
"profile": "high",
"preset": "veryfast",
},
},
},
{
"key": "audio-stream0",
"audio_stream": {
"codec": "aac",
"bitrate_bps": 64000,
"channel_count": 2,
"channel_layouts": [
"fl",
"fr",
],
"sample_rate_hertz": 48000,
},
},
],
"mux_streams": [
{
"key": "sd",
"file_name": "sd.mp4",
"container": "mp4",
"elementary_streams": [
"video-stream0",
"audio-stream0",
],
},
{
"key": "hd",
"file_name": "hd.mp4",
"container": "mp4",
"elementary_streams": [
"video-stream1",
"audio-stream0",
],
},
],
},
labels={
"label": "key",
})
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/transcoder"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := transcoder.NewJobTemplate(ctx, "default", &transcoder.JobTemplateArgs{
JobTemplateId: pulumi.String("example-job-template"),
Location: pulumi.String("us-central1"),
Config: &transcoder.JobTemplateConfigArgs{
Inputs: transcoder.JobTemplateConfigInputTypeArray{
&transcoder.JobTemplateConfigInputTypeArgs{
Key: pulumi.String("input0"),
Uri: pulumi.String("gs://example/example.mp4"),
},
},
Output: &transcoder.JobTemplateConfigOutputTypeArgs{
Uri: pulumi.String("gs://example/outputs/"),
},
EditLists: transcoder.JobTemplateConfigEditListArray{
&transcoder.JobTemplateConfigEditListArgs{
Key: pulumi.String("atom0"),
Inputs: pulumi.StringArray{
pulumi.String("input0"),
},
StartTimeOffset: pulumi.String("0s"),
},
},
AdBreaks: transcoder.JobTemplateConfigAdBreakArray{
&transcoder.JobTemplateConfigAdBreakArgs{
StartTimeOffset: pulumi.String("3.500s"),
},
},
Overlays: transcoder.JobTemplateConfigOverlayArray{
&transcoder.JobTemplateConfigOverlayArgs{
Animations: transcoder.JobTemplateConfigOverlayAnimationArray{
&transcoder.JobTemplateConfigOverlayAnimationArgs{
AnimationFade: &transcoder.JobTemplateConfigOverlayAnimationAnimationFadeArgs{
FadeType: pulumi.String("FADE_IN"),
StartTimeOffset: pulumi.String("1.500s"),
EndTimeOffset: pulumi.String("3.500s"),
Xy: &transcoder.JobTemplateConfigOverlayAnimationAnimationFadeXyArgs{
X: pulumi.Float64(1),
Y: pulumi.Float64(0.5),
},
},
},
},
Image: &transcoder.JobTemplateConfigOverlayImageArgs{
Uri: pulumi.String("gs://example/overlay.png"),
},
},
},
ElementaryStreams: transcoder.JobTemplateConfigElementaryStreamArray{
&transcoder.JobTemplateConfigElementaryStreamArgs{
Key: pulumi.String("video-stream0"),
VideoStream: &transcoder.JobTemplateConfigElementaryStreamVideoStreamArgs{
H264: &transcoder.JobTemplateConfigElementaryStreamVideoStreamH264Args{
WidthPixels: pulumi.Int(640),
HeightPixels: pulumi.Int(360),
BitrateBps: pulumi.Int(550000),
FrameRate: pulumi.Int(60),
PixelFormat: pulumi.String("yuv420p"),
RateControlMode: pulumi.String("vbr"),
CrfLevel: pulumi.Int(21),
GopDuration: pulumi.String("3s"),
VbvSizeBits: pulumi.Int(550000),
VbvFullnessBits: pulumi.Int(495000),
EntropyCoder: pulumi.String("cabac"),
Profile: pulumi.String("high"),
Preset: pulumi.String("veryfast"),
},
},
},
&transcoder.JobTemplateConfigElementaryStreamArgs{
Key: pulumi.String("video-stream1"),
VideoStream: &transcoder.JobTemplateConfigElementaryStreamVideoStreamArgs{
H264: &transcoder.JobTemplateConfigElementaryStreamVideoStreamH264Args{
WidthPixels: pulumi.Int(1280),
HeightPixels: pulumi.Int(720),
BitrateBps: pulumi.Int(550000),
FrameRate: pulumi.Int(60),
PixelFormat: pulumi.String("yuv420p"),
RateControlMode: pulumi.String("vbr"),
CrfLevel: pulumi.Int(21),
GopDuration: pulumi.String("3s"),
VbvSizeBits: pulumi.Int(2500000),
VbvFullnessBits: pulumi.Int(2250000),
EntropyCoder: pulumi.String("cabac"),
Profile: pulumi.String("high"),
Preset: pulumi.String("veryfast"),
},
},
},
&transcoder.JobTemplateConfigElementaryStreamArgs{
Key: pulumi.String("audio-stream0"),
AudioStream: &transcoder.JobTemplateConfigElementaryStreamAudioStreamArgs{
Codec: pulumi.String("aac"),
BitrateBps: pulumi.Int(64000),
ChannelCount: pulumi.Int(2),
ChannelLayouts: pulumi.StringArray{
pulumi.String("fl"),
pulumi.String("fr"),
},
SampleRateHertz: pulumi.Int(48000),
},
},
},
MuxStreams: transcoder.JobTemplateConfigMuxStreamArray{
&transcoder.JobTemplateConfigMuxStreamArgs{
Key: pulumi.String("sd"),
FileName: pulumi.String("sd.mp4"),
Container: pulumi.String("mp4"),
ElementaryStreams: pulumi.StringArray{
pulumi.String("video-stream0"),
pulumi.String("audio-stream0"),
},
},
&transcoder.JobTemplateConfigMuxStreamArgs{
Key: pulumi.String("hd"),
FileName: pulumi.String("hd.mp4"),
Container: pulumi.String("mp4"),
ElementaryStreams: pulumi.StringArray{
pulumi.String("video-stream1"),
pulumi.String("audio-stream0"),
},
},
},
},
Labels: pulumi.StringMap{
"label": pulumi.String("key"),
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var @default = new Gcp.Transcoder.JobTemplate("default", new()
{
JobTemplateId = "example-job-template",
Location = "us-central1",
Config = new Gcp.Transcoder.Inputs.JobTemplateConfigArgs
{
Inputs = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigInputArgs
{
Key = "input0",
Uri = "gs://example/example.mp4",
},
},
Output = new Gcp.Transcoder.Inputs.JobTemplateConfigOutputArgs
{
Uri = "gs://example/outputs/",
},
EditLists = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigEditListArgs
{
Key = "atom0",
Inputs = new[]
{
"input0",
},
StartTimeOffset = "0s",
},
},
AdBreaks = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigAdBreakArgs
{
StartTimeOffset = "3.500s",
},
},
Overlays = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigOverlayArgs
{
Animations = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigOverlayAnimationArgs
{
AnimationFade = new Gcp.Transcoder.Inputs.JobTemplateConfigOverlayAnimationAnimationFadeArgs
{
FadeType = "FADE_IN",
StartTimeOffset = "1.500s",
EndTimeOffset = "3.500s",
Xy = new Gcp.Transcoder.Inputs.JobTemplateConfigOverlayAnimationAnimationFadeXyArgs
{
X = 1,
Y = 0.5,
},
},
},
},
Image = new Gcp.Transcoder.Inputs.JobTemplateConfigOverlayImageArgs
{
Uri = "gs://example/overlay.png",
},
},
},
ElementaryStreams = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamArgs
{
Key = "video-stream0",
VideoStream = new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamVideoStreamArgs
{
H264 = new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamVideoStreamH264Args
{
WidthPixels = 640,
HeightPixels = 360,
BitrateBps = 550000,
FrameRate = 60,
PixelFormat = "yuv420p",
RateControlMode = "vbr",
CrfLevel = 21,
GopDuration = "3s",
VbvSizeBits = 550000,
VbvFullnessBits = 495000,
EntropyCoder = "cabac",
Profile = "high",
Preset = "veryfast",
},
},
},
new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamArgs
{
Key = "video-stream1",
VideoStream = new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamVideoStreamArgs
{
H264 = new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamVideoStreamH264Args
{
WidthPixels = 1280,
HeightPixels = 720,
BitrateBps = 550000,
FrameRate = 60,
PixelFormat = "yuv420p",
RateControlMode = "vbr",
CrfLevel = 21,
GopDuration = "3s",
VbvSizeBits = 2500000,
VbvFullnessBits = 2250000,
EntropyCoder = "cabac",
Profile = "high",
Preset = "veryfast",
},
},
},
new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamArgs
{
Key = "audio-stream0",
AudioStream = new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamAudioStreamArgs
{
Codec = "aac",
BitrateBps = 64000,
ChannelCount = 2,
ChannelLayouts = new[]
{
"fl",
"fr",
},
SampleRateHertz = 48000,
},
},
},
MuxStreams = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigMuxStreamArgs
{
Key = "sd",
FileName = "sd.mp4",
Container = "mp4",
ElementaryStreams = new[]
{
"video-stream0",
"audio-stream0",
},
},
new Gcp.Transcoder.Inputs.JobTemplateConfigMuxStreamArgs
{
Key = "hd",
FileName = "hd.mp4",
Container = "mp4",
ElementaryStreams = new[]
{
"video-stream1",
"audio-stream0",
},
},
},
},
Labels =
{
{ "label", "key" },
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.transcoder.JobTemplate;
import com.pulumi.gcp.transcoder.JobTemplateArgs;
import com.pulumi.gcp.transcoder.inputs.JobTemplateConfigArgs;
import com.pulumi.gcp.transcoder.inputs.JobTemplateConfigOutputArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var default_ = new JobTemplate("default", JobTemplateArgs.builder()
.jobTemplateId("example-job-template")
.location("us-central1")
.config(JobTemplateConfigArgs.builder()
.inputs(JobTemplateConfigInputArgs.builder()
.key("input0")
.uri("gs://example/example.mp4")
.build())
.output(JobTemplateConfigOutputArgs.builder()
.uri("gs://example/outputs/")
.build())
.editLists(JobTemplateConfigEditListArgs.builder()
.key("atom0")
.inputs("input0")
.startTimeOffset("0s")
.build())
.adBreaks(JobTemplateConfigAdBreakArgs.builder()
.startTimeOffset("3.500s")
.build())
.overlays(JobTemplateConfigOverlayArgs.builder()
.animations(JobTemplateConfigOverlayAnimationArgs.builder()
.animationFade(JobTemplateConfigOverlayAnimationAnimationFadeArgs.builder()
.fadeType("FADE_IN")
.startTimeOffset("1.500s")
.endTimeOffset("3.500s")
.xy(JobTemplateConfigOverlayAnimationAnimationFadeXyArgs.builder()
.x(1)
.y(0.5)
.build())
.build())
.build())
.image(JobTemplateConfigOverlayImageArgs.builder()
.uri("gs://example/overlay.png")
.build())
.build())
.elementaryStreams(
JobTemplateConfigElementaryStreamArgs.builder()
.key("video-stream0")
.videoStream(JobTemplateConfigElementaryStreamVideoStreamArgs.builder()
.h264(JobTemplateConfigElementaryStreamVideoStreamH264Args.builder()
.widthPixels(640)
.heightPixels(360)
.bitrateBps(550000)
.frameRate(60)
.pixelFormat("yuv420p")
.rateControlMode("vbr")
.crfLevel(21)
.gopDuration("3s")
.vbvSizeBits(550000)
.vbvFullnessBits(495000)
.entropyCoder("cabac")
.profile("high")
.preset("veryfast")
.build())
.build())
.build(),
JobTemplateConfigElementaryStreamArgs.builder()
.key("video-stream1")
.videoStream(JobTemplateConfigElementaryStreamVideoStreamArgs.builder()
.h264(JobTemplateConfigElementaryStreamVideoStreamH264Args.builder()
.widthPixels(1280)
.heightPixels(720)
.bitrateBps(550000)
.frameRate(60)
.pixelFormat("yuv420p")
.rateControlMode("vbr")
.crfLevel(21)
.gopDuration("3s")
.vbvSizeBits(2500000)
.vbvFullnessBits(2250000)
.entropyCoder("cabac")
.profile("high")
.preset("veryfast")
.build())
.build())
.build(),
JobTemplateConfigElementaryStreamArgs.builder()
.key("audio-stream0")
.audioStream(JobTemplateConfigElementaryStreamAudioStreamArgs.builder()
.codec("aac")
.bitrateBps(64000)
.channelCount(2)
.channelLayouts(
"fl",
"fr")
.sampleRateHertz(48000)
.build())
.build())
.muxStreams(
JobTemplateConfigMuxStreamArgs.builder()
.key("sd")
.fileName("sd.mp4")
.container("mp4")
.elementaryStreams(
"video-stream0",
"audio-stream0")
.build(),
JobTemplateConfigMuxStreamArgs.builder()
.key("hd")
.fileName("hd.mp4")
.container("mp4")
.elementaryStreams(
"video-stream1",
"audio-stream0")
.build())
.build())
.labels(Map.of("label", "key"))
.build());
}
}
resources:
default:
type: gcp:transcoder:JobTemplate
properties:
jobTemplateId: example-job-template
location: us-central1
config:
inputs:
- key: input0
uri: gs://example/example.mp4
output:
uri: gs://example/outputs/
editLists:
- key: atom0
inputs:
- input0
startTimeOffset: 0s
adBreaks:
- startTimeOffset: 3.500s
overlays:
- animations:
- animationFade:
fadeType: FADE_IN
startTimeOffset: 1.500s
endTimeOffset: 3.500s
xy:
x: 1
y: 0.5
image:
uri: gs://example/overlay.png
elementaryStreams:
- key: video-stream0
videoStream:
h264:
widthPixels: 640
heightPixels: 360
bitrateBps: 550000
frameRate: 60
pixelFormat: yuv420p
rateControlMode: vbr
crfLevel: 21
gopDuration: 3s
vbvSizeBits: 550000
vbvFullnessBits: 495000
entropyCoder: cabac
profile: high
preset: veryfast
- key: video-stream1
videoStream:
h264:
widthPixels: 1280
heightPixels: 720
bitrateBps: 550000
frameRate: 60
pixelFormat: yuv420p
rateControlMode: vbr
crfLevel: 21
gopDuration: 3s
vbvSizeBits: 2.5e+06
vbvFullnessBits: 2.25e+06
entropyCoder: cabac
profile: high
preset: veryfast
- key: audio-stream0
audioStream:
codec: aac
bitrateBps: 64000
channelCount: 2
channelLayouts:
- fl
- fr
sampleRateHertz: 48000
muxStreams:
- key: sd
fileName: sd.mp4
container: mp4
elementaryStreams:
- video-stream0
- audio-stream0
- key: hd
fileName: hd.mp4
container: mp4
elementaryStreams:
- video-stream1
- audio-stream0
labels:
label: key
Transcoder Job Template Encryptions
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const encryptionKey = new gcp.secretmanager.Secret("encryption_key", {
secretId: "transcoder-encryption-key",
replication: {
auto: {},
},
});
const encryptionKeySecretVersion = new gcp.secretmanager.SecretVersion("encryption_key", {
secret: encryptionKey.name,
secretData: "4A67F2C1B8E93A4F6D3E7890A1BC23DF",
});
const _default = new gcp.transcoder.JobTemplate("default", {
jobTemplateId: "example-job-template",
location: "us-central1",
config: {
elementaryStreams: [
{
key: "es_video",
videoStream: {
h264: {
profile: "main",
heightPixels: 600,
widthPixels: 800,
bitrateBps: 1000000,
frameRate: 60,
},
},
},
{
key: "es_audio",
audioStream: {
codec: "aac",
channelCount: 2,
bitrateBps: 160000,
},
},
],
encryptions: [
{
id: "aes-128",
secretManagerKeySource: {
secretVersion: encryptionKeySecretVersion.name,
},
drmSystems: {
clearkey: {},
},
aes128: {},
},
{
id: "cenc",
secretManagerKeySource: {
secretVersion: encryptionKeySecretVersion.name,
},
drmSystems: {
widevine: {},
},
mpegCenc: {
scheme: "cenc",
},
},
{
id: "cbcs",
secretManagerKeySource: {
secretVersion: encryptionKeySecretVersion.name,
},
drmSystems: {
widevine: {},
},
mpegCenc: {
scheme: "cbcs",
},
},
],
muxStreams: [
{
key: "ts_aes128",
container: "ts",
elementaryStreams: [
"es_video",
"es_audio",
],
segmentSettings: {
segmentDuration: "6s",
},
encryptionId: "aes-128",
},
{
key: "fmp4_cenc_video",
container: "fmp4",
elementaryStreams: ["es_video"],
segmentSettings: {
segmentDuration: "6s",
},
encryptionId: "cenc",
},
{
key: "fmp4_cenc_audio",
container: "fmp4",
elementaryStreams: ["es_audio"],
segmentSettings: {
segmentDuration: "6s",
},
encryptionId: "cenc",
},
{
key: "fmp4_cbcs_video",
container: "fmp4",
elementaryStreams: ["es_video"],
segmentSettings: {
segmentDuration: "6s",
},
encryptionId: "cbcs",
},
{
key: "fmp4_cbcs_audio",
container: "fmp4",
elementaryStreams: ["es_audio"],
segmentSettings: {
segmentDuration: "6s",
},
encryptionId: "cbcs",
},
],
manifests: [
{
fileName: "manifest_aes128.m3u8",
type: "HLS",
muxStreams: ["ts_aes128"],
},
{
fileName: "manifest_cenc.mpd",
type: "DASH",
muxStreams: [
"fmp4_cenc_video",
"fmp4_cenc_audio",
],
},
{
fileName: "manifest_cbcs.mpd",
type: "DASH",
muxStreams: [
"fmp4_cbcs_video",
"fmp4_cbcs_audio",
],
},
],
},
labels: {
label: "key",
},
});
import pulumi
import pulumi_gcp as gcp
encryption_key = gcp.secretmanager.Secret("encryption_key",
secret_id="transcoder-encryption-key",
replication={
"auto": {},
})
encryption_key_secret_version = gcp.secretmanager.SecretVersion("encryption_key",
secret=encryption_key.name,
secret_data="4A67F2C1B8E93A4F6D3E7890A1BC23DF")
default = gcp.transcoder.JobTemplate("default",
job_template_id="example-job-template",
location="us-central1",
config={
"elementary_streams": [
{
"key": "es_video",
"video_stream": {
"h264": {
"profile": "main",
"height_pixels": 600,
"width_pixels": 800,
"bitrate_bps": 1000000,
"frame_rate": 60,
},
},
},
{
"key": "es_audio",
"audio_stream": {
"codec": "aac",
"channel_count": 2,
"bitrate_bps": 160000,
},
},
],
"encryptions": [
{
"id": "aes-128",
"secret_manager_key_source": {
"secret_version": encryption_key_secret_version.name,
},
"drm_systems": {
"clearkey": {},
},
"aes128": {},
},
{
"id": "cenc",
"secret_manager_key_source": {
"secret_version": encryption_key_secret_version.name,
},
"drm_systems": {
"widevine": {},
},
"mpeg_cenc": {
"scheme": "cenc",
},
},
{
"id": "cbcs",
"secret_manager_key_source": {
"secret_version": encryption_key_secret_version.name,
},
"drm_systems": {
"widevine": {},
},
"mpeg_cenc": {
"scheme": "cbcs",
},
},
],
"mux_streams": [
{
"key": "ts_aes128",
"container": "ts",
"elementary_streams": [
"es_video",
"es_audio",
],
"segment_settings": {
"segment_duration": "6s",
},
"encryption_id": "aes-128",
},
{
"key": "fmp4_cenc_video",
"container": "fmp4",
"elementary_streams": ["es_video"],
"segment_settings": {
"segment_duration": "6s",
},
"encryption_id": "cenc",
},
{
"key": "fmp4_cenc_audio",
"container": "fmp4",
"elementary_streams": ["es_audio"],
"segment_settings": {
"segment_duration": "6s",
},
"encryption_id": "cenc",
},
{
"key": "fmp4_cbcs_video",
"container": "fmp4",
"elementary_streams": ["es_video"],
"segment_settings": {
"segment_duration": "6s",
},
"encryption_id": "cbcs",
},
{
"key": "fmp4_cbcs_audio",
"container": "fmp4",
"elementary_streams": ["es_audio"],
"segment_settings": {
"segment_duration": "6s",
},
"encryption_id": "cbcs",
},
],
"manifests": [
{
"file_name": "manifest_aes128.m3u8",
"type": "HLS",
"mux_streams": ["ts_aes128"],
},
{
"file_name": "manifest_cenc.mpd",
"type": "DASH",
"mux_streams": [
"fmp4_cenc_video",
"fmp4_cenc_audio",
],
},
{
"file_name": "manifest_cbcs.mpd",
"type": "DASH",
"mux_streams": [
"fmp4_cbcs_video",
"fmp4_cbcs_audio",
],
},
],
},
labels={
"label": "key",
})
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/secretmanager"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/transcoder"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
encryptionKey, err := secretmanager.NewSecret(ctx, "encryption_key", &secretmanager.SecretArgs{
SecretId: pulumi.String("transcoder-encryption-key"),
Replication: &secretmanager.SecretReplicationArgs{
Auto: &secretmanager.SecretReplicationAutoArgs{},
},
})
if err != nil {
return err
}
encryptionKeySecretVersion, err := secretmanager.NewSecretVersion(ctx, "encryption_key", &secretmanager.SecretVersionArgs{
Secret: encryptionKey.Name,
SecretData: pulumi.String("4A67F2C1B8E93A4F6D3E7890A1BC23DF"),
})
if err != nil {
return err
}
_, err = transcoder.NewJobTemplate(ctx, "default", &transcoder.JobTemplateArgs{
JobTemplateId: pulumi.String("example-job-template"),
Location: pulumi.String("us-central1"),
Config: &transcoder.JobTemplateConfigArgs{
ElementaryStreams: transcoder.JobTemplateConfigElementaryStreamArray{
&transcoder.JobTemplateConfigElementaryStreamArgs{
Key: pulumi.String("es_video"),
VideoStream: &transcoder.JobTemplateConfigElementaryStreamVideoStreamArgs{
H264: &transcoder.JobTemplateConfigElementaryStreamVideoStreamH264Args{
Profile: pulumi.String("main"),
HeightPixels: pulumi.Int(600),
WidthPixels: pulumi.Int(800),
BitrateBps: pulumi.Int(1000000),
FrameRate: pulumi.Int(60),
},
},
},
&transcoder.JobTemplateConfigElementaryStreamArgs{
Key: pulumi.String("es_audio"),
AudioStream: &transcoder.JobTemplateConfigElementaryStreamAudioStreamArgs{
Codec: pulumi.String("aac"),
ChannelCount: pulumi.Int(2),
BitrateBps: pulumi.Int(160000),
},
},
},
Encryptions: transcoder.JobTemplateConfigEncryptionArray{
&transcoder.JobTemplateConfigEncryptionArgs{
Id: pulumi.String("aes-128"),
SecretManagerKeySource: &transcoder.JobTemplateConfigEncryptionSecretManagerKeySourceArgs{
SecretVersion: encryptionKeySecretVersion.Name,
},
DrmSystems: &transcoder.JobTemplateConfigEncryptionDrmSystemsArgs{
Clearkey: &transcoder.JobTemplateConfigEncryptionDrmSystemsClearkeyArgs{},
},
Aes128: &transcoder.JobTemplateConfigEncryptionAes128Args{},
},
&transcoder.JobTemplateConfigEncryptionArgs{
Id: pulumi.String("cenc"),
SecretManagerKeySource: &transcoder.JobTemplateConfigEncryptionSecretManagerKeySourceArgs{
SecretVersion: encryptionKeySecretVersion.Name,
},
DrmSystems: &transcoder.JobTemplateConfigEncryptionDrmSystemsArgs{
Widevine: &transcoder.JobTemplateConfigEncryptionDrmSystemsWidevineArgs{},
},
MpegCenc: &transcoder.JobTemplateConfigEncryptionMpegCencArgs{
Scheme: pulumi.String("cenc"),
},
},
&transcoder.JobTemplateConfigEncryptionArgs{
Id: pulumi.String("cbcs"),
SecretManagerKeySource: &transcoder.JobTemplateConfigEncryptionSecretManagerKeySourceArgs{
SecretVersion: encryptionKeySecretVersion.Name,
},
DrmSystems: &transcoder.JobTemplateConfigEncryptionDrmSystemsArgs{
Widevine: &transcoder.JobTemplateConfigEncryptionDrmSystemsWidevineArgs{},
},
MpegCenc: &transcoder.JobTemplateConfigEncryptionMpegCencArgs{
Scheme: pulumi.String("cbcs"),
},
},
},
MuxStreams: transcoder.JobTemplateConfigMuxStreamArray{
&transcoder.JobTemplateConfigMuxStreamArgs{
Key: pulumi.String("ts_aes128"),
Container: pulumi.String("ts"),
ElementaryStreams: pulumi.StringArray{
pulumi.String("es_video"),
pulumi.String("es_audio"),
},
SegmentSettings: &transcoder.JobTemplateConfigMuxStreamSegmentSettingsArgs{
SegmentDuration: pulumi.String("6s"),
},
EncryptionId: pulumi.String("aes-128"),
},
&transcoder.JobTemplateConfigMuxStreamArgs{
Key: pulumi.String("fmp4_cenc_video"),
Container: pulumi.String("fmp4"),
ElementaryStreams: pulumi.StringArray{
pulumi.String("es_video"),
},
SegmentSettings: &transcoder.JobTemplateConfigMuxStreamSegmentSettingsArgs{
SegmentDuration: pulumi.String("6s"),
},
EncryptionId: pulumi.String("cenc"),
},
&transcoder.JobTemplateConfigMuxStreamArgs{
Key: pulumi.String("fmp4_cenc_audio"),
Container: pulumi.String("fmp4"),
ElementaryStreams: pulumi.StringArray{
pulumi.String("es_audio"),
},
SegmentSettings: &transcoder.JobTemplateConfigMuxStreamSegmentSettingsArgs{
SegmentDuration: pulumi.String("6s"),
},
EncryptionId: pulumi.String("cenc"),
},
&transcoder.JobTemplateConfigMuxStreamArgs{
Key: pulumi.String("fmp4_cbcs_video"),
Container: pulumi.String("fmp4"),
ElementaryStreams: pulumi.StringArray{
pulumi.String("es_video"),
},
SegmentSettings: &transcoder.JobTemplateConfigMuxStreamSegmentSettingsArgs{
SegmentDuration: pulumi.String("6s"),
},
EncryptionId: pulumi.String("cbcs"),
},
&transcoder.JobTemplateConfigMuxStreamArgs{
Key: pulumi.String("fmp4_cbcs_audio"),
Container: pulumi.String("fmp4"),
ElementaryStreams: pulumi.StringArray{
pulumi.String("es_audio"),
},
SegmentSettings: &transcoder.JobTemplateConfigMuxStreamSegmentSettingsArgs{
SegmentDuration: pulumi.String("6s"),
},
EncryptionId: pulumi.String("cbcs"),
},
},
Manifests: transcoder.JobTemplateConfigManifestArray{
&transcoder.JobTemplateConfigManifestArgs{
FileName: pulumi.String("manifest_aes128.m3u8"),
Type: pulumi.String("HLS"),
MuxStreams: pulumi.StringArray{
pulumi.String("ts_aes128"),
},
},
&transcoder.JobTemplateConfigManifestArgs{
FileName: pulumi.String("manifest_cenc.mpd"),
Type: pulumi.String("DASH"),
MuxStreams: pulumi.StringArray{
pulumi.String("fmp4_cenc_video"),
pulumi.String("fmp4_cenc_audio"),
},
},
&transcoder.JobTemplateConfigManifestArgs{
FileName: pulumi.String("manifest_cbcs.mpd"),
Type: pulumi.String("DASH"),
MuxStreams: pulumi.StringArray{
pulumi.String("fmp4_cbcs_video"),
pulumi.String("fmp4_cbcs_audio"),
},
},
},
},
Labels: pulumi.StringMap{
"label": pulumi.String("key"),
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var encryptionKey = new Gcp.SecretManager.Secret("encryption_key", new()
{
SecretId = "transcoder-encryption-key",
Replication = new Gcp.SecretManager.Inputs.SecretReplicationArgs
{
Auto = null,
},
});
var encryptionKeySecretVersion = new Gcp.SecretManager.SecretVersion("encryption_key", new()
{
Secret = encryptionKey.Name,
SecretData = "4A67F2C1B8E93A4F6D3E7890A1BC23DF",
});
var @default = new Gcp.Transcoder.JobTemplate("default", new()
{
JobTemplateId = "example-job-template",
Location = "us-central1",
Config = new Gcp.Transcoder.Inputs.JobTemplateConfigArgs
{
ElementaryStreams = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamArgs
{
Key = "es_video",
VideoStream = new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamVideoStreamArgs
{
H264 = new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamVideoStreamH264Args
{
Profile = "main",
HeightPixels = 600,
WidthPixels = 800,
BitrateBps = 1000000,
FrameRate = 60,
},
},
},
new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamArgs
{
Key = "es_audio",
AudioStream = new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamAudioStreamArgs
{
Codec = "aac",
ChannelCount = 2,
BitrateBps = 160000,
},
},
},
Encryptions = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigEncryptionArgs
{
Id = "aes-128",
SecretManagerKeySource = new Gcp.Transcoder.Inputs.JobTemplateConfigEncryptionSecretManagerKeySourceArgs
{
SecretVersion = encryptionKeySecretVersion.Name,
},
DrmSystems = new Gcp.Transcoder.Inputs.JobTemplateConfigEncryptionDrmSystemsArgs
{
Clearkey = null,
},
Aes128 = null,
},
new Gcp.Transcoder.Inputs.JobTemplateConfigEncryptionArgs
{
Id = "cenc",
SecretManagerKeySource = new Gcp.Transcoder.Inputs.JobTemplateConfigEncryptionSecretManagerKeySourceArgs
{
SecretVersion = encryptionKeySecretVersion.Name,
},
DrmSystems = new Gcp.Transcoder.Inputs.JobTemplateConfigEncryptionDrmSystemsArgs
{
Widevine = null,
},
MpegCenc = new Gcp.Transcoder.Inputs.JobTemplateConfigEncryptionMpegCencArgs
{
Scheme = "cenc",
},
},
new Gcp.Transcoder.Inputs.JobTemplateConfigEncryptionArgs
{
Id = "cbcs",
SecretManagerKeySource = new Gcp.Transcoder.Inputs.JobTemplateConfigEncryptionSecretManagerKeySourceArgs
{
SecretVersion = encryptionKeySecretVersion.Name,
},
DrmSystems = new Gcp.Transcoder.Inputs.JobTemplateConfigEncryptionDrmSystemsArgs
{
Widevine = null,
},
MpegCenc = new Gcp.Transcoder.Inputs.JobTemplateConfigEncryptionMpegCencArgs
{
Scheme = "cbcs",
},
},
},
MuxStreams = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigMuxStreamArgs
{
Key = "ts_aes128",
Container = "ts",
ElementaryStreams = new[]
{
"es_video",
"es_audio",
},
SegmentSettings = new Gcp.Transcoder.Inputs.JobTemplateConfigMuxStreamSegmentSettingsArgs
{
SegmentDuration = "6s",
},
EncryptionId = "aes-128",
},
new Gcp.Transcoder.Inputs.JobTemplateConfigMuxStreamArgs
{
Key = "fmp4_cenc_video",
Container = "fmp4",
ElementaryStreams = new[]
{
"es_video",
},
SegmentSettings = new Gcp.Transcoder.Inputs.JobTemplateConfigMuxStreamSegmentSettingsArgs
{
SegmentDuration = "6s",
},
EncryptionId = "cenc",
},
new Gcp.Transcoder.Inputs.JobTemplateConfigMuxStreamArgs
{
Key = "fmp4_cenc_audio",
Container = "fmp4",
ElementaryStreams = new[]
{
"es_audio",
},
SegmentSettings = new Gcp.Transcoder.Inputs.JobTemplateConfigMuxStreamSegmentSettingsArgs
{
SegmentDuration = "6s",
},
EncryptionId = "cenc",
},
new Gcp.Transcoder.Inputs.JobTemplateConfigMuxStreamArgs
{
Key = "fmp4_cbcs_video",
Container = "fmp4",
ElementaryStreams = new[]
{
"es_video",
},
SegmentSettings = new Gcp.Transcoder.Inputs.JobTemplateConfigMuxStreamSegmentSettingsArgs
{
SegmentDuration = "6s",
},
EncryptionId = "cbcs",
},
new Gcp.Transcoder.Inputs.JobTemplateConfigMuxStreamArgs
{
Key = "fmp4_cbcs_audio",
Container = "fmp4",
ElementaryStreams = new[]
{
"es_audio",
},
SegmentSettings = new Gcp.Transcoder.Inputs.JobTemplateConfigMuxStreamSegmentSettingsArgs
{
SegmentDuration = "6s",
},
EncryptionId = "cbcs",
},
},
Manifests = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigManifestArgs
{
FileName = "manifest_aes128.m3u8",
Type = "HLS",
MuxStreams = new[]
{
"ts_aes128",
},
},
new Gcp.Transcoder.Inputs.JobTemplateConfigManifestArgs
{
FileName = "manifest_cenc.mpd",
Type = "DASH",
MuxStreams = new[]
{
"fmp4_cenc_video",
"fmp4_cenc_audio",
},
},
new Gcp.Transcoder.Inputs.JobTemplateConfigManifestArgs
{
FileName = "manifest_cbcs.mpd",
Type = "DASH",
MuxStreams = new[]
{
"fmp4_cbcs_video",
"fmp4_cbcs_audio",
},
},
},
},
Labels =
{
{ "label", "key" },
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.secretmanager.Secret;
import com.pulumi.gcp.secretmanager.SecretArgs;
import com.pulumi.gcp.secretmanager.inputs.SecretReplicationArgs;
import com.pulumi.gcp.secretmanager.inputs.SecretReplicationAutoArgs;
import com.pulumi.gcp.secretmanager.SecretVersion;
import com.pulumi.gcp.secretmanager.SecretVersionArgs;
import com.pulumi.gcp.transcoder.JobTemplate;
import com.pulumi.gcp.transcoder.JobTemplateArgs;
import com.pulumi.gcp.transcoder.inputs.JobTemplateConfigArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var encryptionKey = new Secret("encryptionKey", SecretArgs.builder()
.secretId("transcoder-encryption-key")
.replication(SecretReplicationArgs.builder()
.auto()
.build())
.build());
var encryptionKeySecretVersion = new SecretVersion("encryptionKeySecretVersion", SecretVersionArgs.builder()
.secret(encryptionKey.name())
.secretData("4A67F2C1B8E93A4F6D3E7890A1BC23DF")
.build());
var default_ = new JobTemplate("default", JobTemplateArgs.builder()
.jobTemplateId("example-job-template")
.location("us-central1")
.config(JobTemplateConfigArgs.builder()
.elementaryStreams(
JobTemplateConfigElementaryStreamArgs.builder()
.key("es_video")
.videoStream(JobTemplateConfigElementaryStreamVideoStreamArgs.builder()
.h264(JobTemplateConfigElementaryStreamVideoStreamH264Args.builder()
.profile("main")
.heightPixels(600)
.widthPixels(800)
.bitrateBps(1000000)
.frameRate(60)
.build())
.build())
.build(),
JobTemplateConfigElementaryStreamArgs.builder()
.key("es_audio")
.audioStream(JobTemplateConfigElementaryStreamAudioStreamArgs.builder()
.codec("aac")
.channelCount(2)
.bitrateBps(160000)
.build())
.build())
.encryptions(
JobTemplateConfigEncryptionArgs.builder()
.id("aes-128")
.secretManagerKeySource(JobTemplateConfigEncryptionSecretManagerKeySourceArgs.builder()
.secretVersion(encryptionKeySecretVersion.name())
.build())
.drmSystems(JobTemplateConfigEncryptionDrmSystemsArgs.builder()
.clearkey()
.build())
.aes128()
.build(),
JobTemplateConfigEncryptionArgs.builder()
.id("cenc")
.secretManagerKeySource(JobTemplateConfigEncryptionSecretManagerKeySourceArgs.builder()
.secretVersion(encryptionKeySecretVersion.name())
.build())
.drmSystems(JobTemplateConfigEncryptionDrmSystemsArgs.builder()
.widevine()
.build())
.mpegCenc(JobTemplateConfigEncryptionMpegCencArgs.builder()
.scheme("cenc")
.build())
.build(),
JobTemplateConfigEncryptionArgs.builder()
.id("cbcs")
.secretManagerKeySource(JobTemplateConfigEncryptionSecretManagerKeySourceArgs.builder()
.secretVersion(encryptionKeySecretVersion.name())
.build())
.drmSystems(JobTemplateConfigEncryptionDrmSystemsArgs.builder()
.widevine()
.build())
.mpegCenc(JobTemplateConfigEncryptionMpegCencArgs.builder()
.scheme("cbcs")
.build())
.build())
.muxStreams(
JobTemplateConfigMuxStreamArgs.builder()
.key("ts_aes128")
.container("ts")
.elementaryStreams(
"es_video",
"es_audio")
.segmentSettings(JobTemplateConfigMuxStreamSegmentSettingsArgs.builder()
.segmentDuration("6s")
.build())
.encryptionId("aes-128")
.build(),
JobTemplateConfigMuxStreamArgs.builder()
.key("fmp4_cenc_video")
.container("fmp4")
.elementaryStreams("es_video")
.segmentSettings(JobTemplateConfigMuxStreamSegmentSettingsArgs.builder()
.segmentDuration("6s")
.build())
.encryptionId("cenc")
.build(),
JobTemplateConfigMuxStreamArgs.builder()
.key("fmp4_cenc_audio")
.container("fmp4")
.elementaryStreams("es_audio")
.segmentSettings(JobTemplateConfigMuxStreamSegmentSettingsArgs.builder()
.segmentDuration("6s")
.build())
.encryptionId("cenc")
.build(),
JobTemplateConfigMuxStreamArgs.builder()
.key("fmp4_cbcs_video")
.container("fmp4")
.elementaryStreams("es_video")
.segmentSettings(JobTemplateConfigMuxStreamSegmentSettingsArgs.builder()
.segmentDuration("6s")
.build())
.encryptionId("cbcs")
.build(),
JobTemplateConfigMuxStreamArgs.builder()
.key("fmp4_cbcs_audio")
.container("fmp4")
.elementaryStreams("es_audio")
.segmentSettings(JobTemplateConfigMuxStreamSegmentSettingsArgs.builder()
.segmentDuration("6s")
.build())
.encryptionId("cbcs")
.build())
.manifests(
JobTemplateConfigManifestArgs.builder()
.fileName("manifest_aes128.m3u8")
.type("HLS")
.muxStreams("ts_aes128")
.build(),
JobTemplateConfigManifestArgs.builder()
.fileName("manifest_cenc.mpd")
.type("DASH")
.muxStreams(
"fmp4_cenc_video",
"fmp4_cenc_audio")
.build(),
JobTemplateConfigManifestArgs.builder()
.fileName("manifest_cbcs.mpd")
.type("DASH")
.muxStreams(
"fmp4_cbcs_video",
"fmp4_cbcs_audio")
.build())
.build())
.labels(Map.of("label", "key"))
.build());
}
}
resources:
encryptionKey:
type: gcp:secretmanager:Secret
name: encryption_key
properties:
secretId: transcoder-encryption-key
replication:
auto: {}
encryptionKeySecretVersion:
type: gcp:secretmanager:SecretVersion
name: encryption_key
properties:
secret: ${encryptionKey.name}
secretData: 4A67F2C1B8E93A4F6D3E7890A1BC23DF
default:
type: gcp:transcoder:JobTemplate
properties:
jobTemplateId: example-job-template
location: us-central1
config:
elementaryStreams:
- key: es_video
videoStream:
h264:
profile: main
heightPixels: 600
widthPixels: 800
bitrateBps: 1e+06
frameRate: 60
- key: es_audio
audioStream:
codec: aac
channelCount: 2
bitrateBps: 160000
encryptions:
- id: aes-128
secretManagerKeySource:
secretVersion: ${encryptionKeySecretVersion.name}
drmSystems:
clearkey: {}
aes128: {}
- id: cenc
secretManagerKeySource:
secretVersion: ${encryptionKeySecretVersion.name}
drmSystems:
widevine: {}
mpegCenc:
scheme: cenc
- id: cbcs
secretManagerKeySource:
secretVersion: ${encryptionKeySecretVersion.name}
drmSystems:
widevine: {}
mpegCenc:
scheme: cbcs
muxStreams:
- key: ts_aes128
container: ts
elementaryStreams:
- es_video
- es_audio
segmentSettings:
segmentDuration: 6s
encryptionId: aes-128
- key: fmp4_cenc_video
container: fmp4
elementaryStreams:
- es_video
segmentSettings:
segmentDuration: 6s
encryptionId: cenc
- key: fmp4_cenc_audio
container: fmp4
elementaryStreams:
- es_audio
segmentSettings:
segmentDuration: 6s
encryptionId: cenc
- key: fmp4_cbcs_video
container: fmp4
elementaryStreams:
- es_video
segmentSettings:
segmentDuration: 6s
encryptionId: cbcs
- key: fmp4_cbcs_audio
container: fmp4
elementaryStreams:
- es_audio
segmentSettings:
segmentDuration: 6s
encryptionId: cbcs
manifests:
- fileName: manifest_aes128.m3u8
type: HLS
muxStreams:
- ts_aes128
- fileName: manifest_cenc.mpd
type: DASH
muxStreams:
- fmp4_cenc_video
- fmp4_cenc_audio
- fileName: manifest_cbcs.mpd
type: DASH
muxStreams:
- fmp4_cbcs_video
- fmp4_cbcs_audio
labels:
label: key
Transcoder Job Template Pubsub
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const transcoderNotifications = new gcp.pubsub.Topic("transcoder_notifications", {name: "transcoder-notifications"});
const _default = new gcp.transcoder.JobTemplate("default", {
jobTemplateId: "example-job-template",
location: "us-central1",
config: {
inputs: [{
key: "input0",
uri: "gs://example/example.mp4",
}],
output: {
uri: "gs://example/outputs/",
},
editLists: [{
key: "atom0",
inputs: ["input0"],
startTimeOffset: "0s",
}],
adBreaks: [{
startTimeOffset: "3.500s",
}],
elementaryStreams: [
{
key: "video-stream0",
videoStream: {
h264: {
widthPixels: 640,
heightPixels: 360,
bitrateBps: 550000,
frameRate: 60,
pixelFormat: "yuv420p",
rateControlMode: "vbr",
crfLevel: 21,
gopDuration: "3s",
vbvSizeBits: 550000,
vbvFullnessBits: 495000,
entropyCoder: "cabac",
profile: "high",
preset: "veryfast",
},
},
},
{
key: "video-stream1",
videoStream: {
h264: {
widthPixels: 1280,
heightPixels: 720,
bitrateBps: 550000,
frameRate: 60,
pixelFormat: "yuv420p",
rateControlMode: "vbr",
crfLevel: 21,
gopDuration: "3s",
vbvSizeBits: 2500000,
vbvFullnessBits: 2250000,
entropyCoder: "cabac",
profile: "high",
preset: "veryfast",
},
},
},
{
key: "audio-stream0",
audioStream: {
codec: "aac",
bitrateBps: 64000,
channelCount: 2,
channelLayouts: [
"fl",
"fr",
],
sampleRateHertz: 48000,
},
},
],
muxStreams: [
{
key: "sd",
fileName: "sd.mp4",
container: "mp4",
elementaryStreams: [
"video-stream0",
"audio-stream0",
],
},
{
key: "hd",
fileName: "hd.mp4",
container: "mp4",
elementaryStreams: [
"video-stream1",
"audio-stream0",
],
},
],
pubsubDestination: {
topic: transcoderNotifications.id,
},
},
labels: {
label: "key",
},
});
import pulumi
import pulumi_gcp as gcp
transcoder_notifications = gcp.pubsub.Topic("transcoder_notifications", name="transcoder-notifications")
default = gcp.transcoder.JobTemplate("default",
job_template_id="example-job-template",
location="us-central1",
config={
"inputs": [{
"key": "input0",
"uri": "gs://example/example.mp4",
}],
"output": {
"uri": "gs://example/outputs/",
},
"edit_lists": [{
"key": "atom0",
"inputs": ["input0"],
"start_time_offset": "0s",
}],
"ad_breaks": [{
"start_time_offset": "3.500s",
}],
"elementary_streams": [
{
"key": "video-stream0",
"video_stream": {
"h264": {
"width_pixels": 640,
"height_pixels": 360,
"bitrate_bps": 550000,
"frame_rate": 60,
"pixel_format": "yuv420p",
"rate_control_mode": "vbr",
"crf_level": 21,
"gop_duration": "3s",
"vbv_size_bits": 550000,
"vbv_fullness_bits": 495000,
"entropy_coder": "cabac",
"profile": "high",
"preset": "veryfast",
},
},
},
{
"key": "video-stream1",
"video_stream": {
"h264": {
"width_pixels": 1280,
"height_pixels": 720,
"bitrate_bps": 550000,
"frame_rate": 60,
"pixel_format": "yuv420p",
"rate_control_mode": "vbr",
"crf_level": 21,
"gop_duration": "3s",
"vbv_size_bits": 2500000,
"vbv_fullness_bits": 2250000,
"entropy_coder": "cabac",
"profile": "high",
"preset": "veryfast",
},
},
},
{
"key": "audio-stream0",
"audio_stream": {
"codec": "aac",
"bitrate_bps": 64000,
"channel_count": 2,
"channel_layouts": [
"fl",
"fr",
],
"sample_rate_hertz": 48000,
},
},
],
"mux_streams": [
{
"key": "sd",
"file_name": "sd.mp4",
"container": "mp4",
"elementary_streams": [
"video-stream0",
"audio-stream0",
],
},
{
"key": "hd",
"file_name": "hd.mp4",
"container": "mp4",
"elementary_streams": [
"video-stream1",
"audio-stream0",
],
},
],
"pubsub_destination": {
"topic": transcoder_notifications.id,
},
},
labels={
"label": "key",
})
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/pubsub"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/transcoder"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
transcoderNotifications, err := pubsub.NewTopic(ctx, "transcoder_notifications", &pubsub.TopicArgs{
Name: pulumi.String("transcoder-notifications"),
})
if err != nil {
return err
}
_, err = transcoder.NewJobTemplate(ctx, "default", &transcoder.JobTemplateArgs{
JobTemplateId: pulumi.String("example-job-template"),
Location: pulumi.String("us-central1"),
Config: &transcoder.JobTemplateConfigArgs{
Inputs: transcoder.JobTemplateConfigInputTypeArray{
&transcoder.JobTemplateConfigInputTypeArgs{
Key: pulumi.String("input0"),
Uri: pulumi.String("gs://example/example.mp4"),
},
},
Output: &transcoder.JobTemplateConfigOutputTypeArgs{
Uri: pulumi.String("gs://example/outputs/"),
},
EditLists: transcoder.JobTemplateConfigEditListArray{
&transcoder.JobTemplateConfigEditListArgs{
Key: pulumi.String("atom0"),
Inputs: pulumi.StringArray{
pulumi.String("input0"),
},
StartTimeOffset: pulumi.String("0s"),
},
},
AdBreaks: transcoder.JobTemplateConfigAdBreakArray{
&transcoder.JobTemplateConfigAdBreakArgs{
StartTimeOffset: pulumi.String("3.500s"),
},
},
ElementaryStreams: transcoder.JobTemplateConfigElementaryStreamArray{
&transcoder.JobTemplateConfigElementaryStreamArgs{
Key: pulumi.String("video-stream0"),
VideoStream: &transcoder.JobTemplateConfigElementaryStreamVideoStreamArgs{
H264: &transcoder.JobTemplateConfigElementaryStreamVideoStreamH264Args{
WidthPixels: pulumi.Int(640),
HeightPixels: pulumi.Int(360),
BitrateBps: pulumi.Int(550000),
FrameRate: pulumi.Int(60),
PixelFormat: pulumi.String("yuv420p"),
RateControlMode: pulumi.String("vbr"),
CrfLevel: pulumi.Int(21),
GopDuration: pulumi.String("3s"),
VbvSizeBits: pulumi.Int(550000),
VbvFullnessBits: pulumi.Int(495000),
EntropyCoder: pulumi.String("cabac"),
Profile: pulumi.String("high"),
Preset: pulumi.String("veryfast"),
},
},
},
&transcoder.JobTemplateConfigElementaryStreamArgs{
Key: pulumi.String("video-stream1"),
VideoStream: &transcoder.JobTemplateConfigElementaryStreamVideoStreamArgs{
H264: &transcoder.JobTemplateConfigElementaryStreamVideoStreamH264Args{
WidthPixels: pulumi.Int(1280),
HeightPixels: pulumi.Int(720),
BitrateBps: pulumi.Int(550000),
FrameRate: pulumi.Int(60),
PixelFormat: pulumi.String("yuv420p"),
RateControlMode: pulumi.String("vbr"),
CrfLevel: pulumi.Int(21),
GopDuration: pulumi.String("3s"),
VbvSizeBits: pulumi.Int(2500000),
VbvFullnessBits: pulumi.Int(2250000),
EntropyCoder: pulumi.String("cabac"),
Profile: pulumi.String("high"),
Preset: pulumi.String("veryfast"),
},
},
},
&transcoder.JobTemplateConfigElementaryStreamArgs{
Key: pulumi.String("audio-stream0"),
AudioStream: &transcoder.JobTemplateConfigElementaryStreamAudioStreamArgs{
Codec: pulumi.String("aac"),
BitrateBps: pulumi.Int(64000),
ChannelCount: pulumi.Int(2),
ChannelLayouts: pulumi.StringArray{
pulumi.String("fl"),
pulumi.String("fr"),
},
SampleRateHertz: pulumi.Int(48000),
},
},
},
MuxStreams: transcoder.JobTemplateConfigMuxStreamArray{
&transcoder.JobTemplateConfigMuxStreamArgs{
Key: pulumi.String("sd"),
FileName: pulumi.String("sd.mp4"),
Container: pulumi.String("mp4"),
ElementaryStreams: pulumi.StringArray{
pulumi.String("video-stream0"),
pulumi.String("audio-stream0"),
},
},
&transcoder.JobTemplateConfigMuxStreamArgs{
Key: pulumi.String("hd"),
FileName: pulumi.String("hd.mp4"),
Container: pulumi.String("mp4"),
ElementaryStreams: pulumi.StringArray{
pulumi.String("video-stream1"),
pulumi.String("audio-stream0"),
},
},
},
PubsubDestination: &transcoder.JobTemplateConfigPubsubDestinationArgs{
Topic: transcoderNotifications.ID(),
},
},
Labels: pulumi.StringMap{
"label": pulumi.String("key"),
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var transcoderNotifications = new Gcp.PubSub.Topic("transcoder_notifications", new()
{
Name = "transcoder-notifications",
});
var @default = new Gcp.Transcoder.JobTemplate("default", new()
{
JobTemplateId = "example-job-template",
Location = "us-central1",
Config = new Gcp.Transcoder.Inputs.JobTemplateConfigArgs
{
Inputs = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigInputArgs
{
Key = "input0",
Uri = "gs://example/example.mp4",
},
},
Output = new Gcp.Transcoder.Inputs.JobTemplateConfigOutputArgs
{
Uri = "gs://example/outputs/",
},
EditLists = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigEditListArgs
{
Key = "atom0",
Inputs = new[]
{
"input0",
},
StartTimeOffset = "0s",
},
},
AdBreaks = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigAdBreakArgs
{
StartTimeOffset = "3.500s",
},
},
ElementaryStreams = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamArgs
{
Key = "video-stream0",
VideoStream = new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamVideoStreamArgs
{
H264 = new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamVideoStreamH264Args
{
WidthPixels = 640,
HeightPixels = 360,
BitrateBps = 550000,
FrameRate = 60,
PixelFormat = "yuv420p",
RateControlMode = "vbr",
CrfLevel = 21,
GopDuration = "3s",
VbvSizeBits = 550000,
VbvFullnessBits = 495000,
EntropyCoder = "cabac",
Profile = "high",
Preset = "veryfast",
},
},
},
new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamArgs
{
Key = "video-stream1",
VideoStream = new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamVideoStreamArgs
{
H264 = new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamVideoStreamH264Args
{
WidthPixels = 1280,
HeightPixels = 720,
BitrateBps = 550000,
FrameRate = 60,
PixelFormat = "yuv420p",
RateControlMode = "vbr",
CrfLevel = 21,
GopDuration = "3s",
VbvSizeBits = 2500000,
VbvFullnessBits = 2250000,
EntropyCoder = "cabac",
Profile = "high",
Preset = "veryfast",
},
},
},
new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamArgs
{
Key = "audio-stream0",
AudioStream = new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamAudioStreamArgs
{
Codec = "aac",
BitrateBps = 64000,
ChannelCount = 2,
ChannelLayouts = new[]
{
"fl",
"fr",
},
SampleRateHertz = 48000,
},
},
},
MuxStreams = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigMuxStreamArgs
{
Key = "sd",
FileName = "sd.mp4",
Container = "mp4",
ElementaryStreams = new[]
{
"video-stream0",
"audio-stream0",
},
},
new Gcp.Transcoder.Inputs.JobTemplateConfigMuxStreamArgs
{
Key = "hd",
FileName = "hd.mp4",
Container = "mp4",
ElementaryStreams = new[]
{
"video-stream1",
"audio-stream0",
},
},
},
PubsubDestination = new Gcp.Transcoder.Inputs.JobTemplateConfigPubsubDestinationArgs
{
Topic = transcoderNotifications.Id,
},
},
Labels =
{
{ "label", "key" },
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.pubsub.Topic;
import com.pulumi.gcp.pubsub.TopicArgs;
import com.pulumi.gcp.transcoder.JobTemplate;
import com.pulumi.gcp.transcoder.JobTemplateArgs;
import com.pulumi.gcp.transcoder.inputs.JobTemplateConfigArgs;
import com.pulumi.gcp.transcoder.inputs.JobTemplateConfigOutputArgs;
import com.pulumi.gcp.transcoder.inputs.JobTemplateConfigPubsubDestinationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var transcoderNotifications = new Topic("transcoderNotifications", TopicArgs.builder()
.name("transcoder-notifications")
.build());
var default_ = new JobTemplate("default", JobTemplateArgs.builder()
.jobTemplateId("example-job-template")
.location("us-central1")
.config(JobTemplateConfigArgs.builder()
.inputs(JobTemplateConfigInputArgs.builder()
.key("input0")
.uri("gs://example/example.mp4")
.build())
.output(JobTemplateConfigOutputArgs.builder()
.uri("gs://example/outputs/")
.build())
.editLists(JobTemplateConfigEditListArgs.builder()
.key("atom0")
.inputs("input0")
.startTimeOffset("0s")
.build())
.adBreaks(JobTemplateConfigAdBreakArgs.builder()
.startTimeOffset("3.500s")
.build())
.elementaryStreams(
JobTemplateConfigElementaryStreamArgs.builder()
.key("video-stream0")
.videoStream(JobTemplateConfigElementaryStreamVideoStreamArgs.builder()
.h264(JobTemplateConfigElementaryStreamVideoStreamH264Args.builder()
.widthPixels(640)
.heightPixels(360)
.bitrateBps(550000)
.frameRate(60)
.pixelFormat("yuv420p")
.rateControlMode("vbr")
.crfLevel(21)
.gopDuration("3s")
.vbvSizeBits(550000)
.vbvFullnessBits(495000)
.entropyCoder("cabac")
.profile("high")
.preset("veryfast")
.build())
.build())
.build(),
JobTemplateConfigElementaryStreamArgs.builder()
.key("video-stream1")
.videoStream(JobTemplateConfigElementaryStreamVideoStreamArgs.builder()
.h264(JobTemplateConfigElementaryStreamVideoStreamH264Args.builder()
.widthPixels(1280)
.heightPixels(720)
.bitrateBps(550000)
.frameRate(60)
.pixelFormat("yuv420p")
.rateControlMode("vbr")
.crfLevel(21)
.gopDuration("3s")
.vbvSizeBits(2500000)
.vbvFullnessBits(2250000)
.entropyCoder("cabac")
.profile("high")
.preset("veryfast")
.build())
.build())
.build(),
JobTemplateConfigElementaryStreamArgs.builder()
.key("audio-stream0")
.audioStream(JobTemplateConfigElementaryStreamAudioStreamArgs.builder()
.codec("aac")
.bitrateBps(64000)
.channelCount(2)
.channelLayouts(
"fl",
"fr")
.sampleRateHertz(48000)
.build())
.build())
.muxStreams(
JobTemplateConfigMuxStreamArgs.builder()
.key("sd")
.fileName("sd.mp4")
.container("mp4")
.elementaryStreams(
"video-stream0",
"audio-stream0")
.build(),
JobTemplateConfigMuxStreamArgs.builder()
.key("hd")
.fileName("hd.mp4")
.container("mp4")
.elementaryStreams(
"video-stream1",
"audio-stream0")
.build())
.pubsubDestination(JobTemplateConfigPubsubDestinationArgs.builder()
.topic(transcoderNotifications.id())
.build())
.build())
.labels(Map.of("label", "key"))
.build());
}
}
resources:
transcoderNotifications:
type: gcp:pubsub:Topic
name: transcoder_notifications
properties:
name: transcoder-notifications
default:
type: gcp:transcoder:JobTemplate
properties:
jobTemplateId: example-job-template
location: us-central1
config:
inputs:
- key: input0
uri: gs://example/example.mp4
output:
uri: gs://example/outputs/
editLists:
- key: atom0
inputs:
- input0
startTimeOffset: 0s
adBreaks:
- startTimeOffset: 3.500s
elementaryStreams:
- key: video-stream0
videoStream:
h264:
widthPixels: 640
heightPixels: 360
bitrateBps: 550000
frameRate: 60
pixelFormat: yuv420p
rateControlMode: vbr
crfLevel: 21
gopDuration: 3s
vbvSizeBits: 550000
vbvFullnessBits: 495000
entropyCoder: cabac
profile: high
preset: veryfast
- key: video-stream1
videoStream:
h264:
widthPixels: 1280
heightPixels: 720
bitrateBps: 550000
frameRate: 60
pixelFormat: yuv420p
rateControlMode: vbr
crfLevel: 21
gopDuration: 3s
vbvSizeBits: 2.5e+06
vbvFullnessBits: 2.25e+06
entropyCoder: cabac
profile: high
preset: veryfast
- key: audio-stream0
audioStream:
codec: aac
bitrateBps: 64000
channelCount: 2
channelLayouts:
- fl
- fr
sampleRateHertz: 48000
muxStreams:
- key: sd
fileName: sd.mp4
container: mp4
elementaryStreams:
- video-stream0
- audio-stream0
- key: hd
fileName: hd.mp4
container: mp4
elementaryStreams:
- video-stream1
- audio-stream0
pubsubDestination:
topic: ${transcoderNotifications.id}
labels:
label: key
Create JobTemplate Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new JobTemplate(name: string, args: JobTemplateArgs, opts?: CustomResourceOptions);
@overload
def JobTemplate(resource_name: str,
args: JobTemplateArgs,
opts: Optional[ResourceOptions] = None)
@overload
def JobTemplate(resource_name: str,
opts: Optional[ResourceOptions] = None,
job_template_id: Optional[str] = None,
location: Optional[str] = None,
config: Optional[JobTemplateConfigArgs] = None,
labels: Optional[Mapping[str, str]] = None,
project: Optional[str] = None)
func NewJobTemplate(ctx *Context, name string, args JobTemplateArgs, opts ...ResourceOption) (*JobTemplate, error)
public JobTemplate(string name, JobTemplateArgs args, CustomResourceOptions? opts = null)
public JobTemplate(String name, JobTemplateArgs args)
public JobTemplate(String name, JobTemplateArgs args, CustomResourceOptions options)
type: gcp:transcoder:JobTemplate
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args JobTemplateArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args JobTemplateArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args JobTemplateArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args JobTemplateArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args JobTemplateArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var jobTemplateResource = new Gcp.Transcoder.JobTemplate("jobTemplateResource", new()
{
JobTemplateId = "string",
Location = "string",
Config = new Gcp.Transcoder.Inputs.JobTemplateConfigArgs
{
AdBreaks = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigAdBreakArgs
{
StartTimeOffset = "string",
},
},
EditLists = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigEditListArgs
{
Inputs = new[]
{
"string",
},
Key = "string",
StartTimeOffset = "string",
},
},
ElementaryStreams = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamArgs
{
AudioStream = new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamAudioStreamArgs
{
BitrateBps = 0,
ChannelCount = 0,
ChannelLayouts = new[]
{
"string",
},
Codec = "string",
SampleRateHertz = 0,
},
Key = "string",
VideoStream = new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamVideoStreamArgs
{
H264 = new Gcp.Transcoder.Inputs.JobTemplateConfigElementaryStreamVideoStreamH264Args
{
FrameRate = 0,
BitrateBps = 0,
Hlg = null,
EntropyCoder = "string",
GopDuration = "string",
HeightPixels = 0,
CrfLevel = 0,
PixelFormat = "string",
Preset = "string",
Profile = "string",
RateControlMode = "string",
Sdr = null,
VbvFullnessBits = 0,
VbvSizeBits = 0,
WidthPixels = 0,
},
},
},
},
Encryptions = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigEncryptionArgs
{
Id = "string",
Aes128 = null,
DrmSystems = new Gcp.Transcoder.Inputs.JobTemplateConfigEncryptionDrmSystemsArgs
{
Clearkey = null,
Fairplay = null,
Playready = null,
Widevine = null,
},
MpegCenc = new Gcp.Transcoder.Inputs.JobTemplateConfigEncryptionMpegCencArgs
{
Scheme = "string",
},
SampleAes = null,
SecretManagerKeySource = new Gcp.Transcoder.Inputs.JobTemplateConfigEncryptionSecretManagerKeySourceArgs
{
SecretVersion = "string",
},
},
},
Inputs = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigInputArgs
{
Key = "string",
Uri = "string",
},
},
Manifests = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigManifestArgs
{
FileName = "string",
MuxStreams = new[]
{
"string",
},
Type = "string",
},
},
MuxStreams = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigMuxStreamArgs
{
Container = "string",
ElementaryStreams = new[]
{
"string",
},
EncryptionId = "string",
FileName = "string",
Key = "string",
SegmentSettings = new Gcp.Transcoder.Inputs.JobTemplateConfigMuxStreamSegmentSettingsArgs
{
SegmentDuration = "string",
},
},
},
Output = new Gcp.Transcoder.Inputs.JobTemplateConfigOutputArgs
{
Uri = "string",
},
Overlays = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigOverlayArgs
{
Animations = new[]
{
new Gcp.Transcoder.Inputs.JobTemplateConfigOverlayAnimationArgs
{
AnimationFade = new Gcp.Transcoder.Inputs.JobTemplateConfigOverlayAnimationAnimationFadeArgs
{
FadeType = "string",
EndTimeOffset = "string",
StartTimeOffset = "string",
Xy = new Gcp.Transcoder.Inputs.JobTemplateConfigOverlayAnimationAnimationFadeXyArgs
{
X = 0,
Y = 0,
},
},
},
},
Image = new Gcp.Transcoder.Inputs.JobTemplateConfigOverlayImageArgs
{
Uri = "string",
},
},
},
PubsubDestination = new Gcp.Transcoder.Inputs.JobTemplateConfigPubsubDestinationArgs
{
Topic = "string",
},
},
Labels =
{
{ "string", "string" },
},
Project = "string",
});
example, err := transcoder.NewJobTemplate(ctx, "jobTemplateResource", &transcoder.JobTemplateArgs{
JobTemplateId: pulumi.String("string"),
Location: pulumi.String("string"),
Config: &transcoder.JobTemplateConfigArgs{
AdBreaks: transcoder.JobTemplateConfigAdBreakArray{
&transcoder.JobTemplateConfigAdBreakArgs{
StartTimeOffset: pulumi.String("string"),
},
},
EditLists: transcoder.JobTemplateConfigEditListArray{
&transcoder.JobTemplateConfigEditListArgs{
Inputs: pulumi.StringArray{
pulumi.String("string"),
},
Key: pulumi.String("string"),
StartTimeOffset: pulumi.String("string"),
},
},
ElementaryStreams: transcoder.JobTemplateConfigElementaryStreamArray{
&transcoder.JobTemplateConfigElementaryStreamArgs{
AudioStream: &transcoder.JobTemplateConfigElementaryStreamAudioStreamArgs{
BitrateBps: pulumi.Int(0),
ChannelCount: pulumi.Int(0),
ChannelLayouts: pulumi.StringArray{
pulumi.String("string"),
},
Codec: pulumi.String("string"),
SampleRateHertz: pulumi.Int(0),
},
Key: pulumi.String("string"),
VideoStream: &transcoder.JobTemplateConfigElementaryStreamVideoStreamArgs{
H264: &transcoder.JobTemplateConfigElementaryStreamVideoStreamH264Args{
FrameRate: pulumi.Int(0),
BitrateBps: pulumi.Int(0),
Hlg: &transcoder.JobTemplateConfigElementaryStreamVideoStreamH264HlgArgs{},
EntropyCoder: pulumi.String("string"),
GopDuration: pulumi.String("string"),
HeightPixels: pulumi.Int(0),
CrfLevel: pulumi.Int(0),
PixelFormat: pulumi.String("string"),
Preset: pulumi.String("string"),
Profile: pulumi.String("string"),
RateControlMode: pulumi.String("string"),
Sdr: &transcoder.JobTemplateConfigElementaryStreamVideoStreamH264SdrArgs{},
VbvFullnessBits: pulumi.Int(0),
VbvSizeBits: pulumi.Int(0),
WidthPixels: pulumi.Int(0),
},
},
},
},
Encryptions: transcoder.JobTemplateConfigEncryptionArray{
&transcoder.JobTemplateConfigEncryptionArgs{
Id: pulumi.String("string"),
Aes128: &transcoder.JobTemplateConfigEncryptionAes128Args{},
DrmSystems: &transcoder.JobTemplateConfigEncryptionDrmSystemsArgs{
Clearkey: &transcoder.JobTemplateConfigEncryptionDrmSystemsClearkeyArgs{},
Fairplay: &transcoder.JobTemplateConfigEncryptionDrmSystemsFairplayArgs{},
Playready: &transcoder.JobTemplateConfigEncryptionDrmSystemsPlayreadyArgs{},
Widevine: &transcoder.JobTemplateConfigEncryptionDrmSystemsWidevineArgs{},
},
MpegCenc: &transcoder.JobTemplateConfigEncryptionMpegCencArgs{
Scheme: pulumi.String("string"),
},
SampleAes: &transcoder.JobTemplateConfigEncryptionSampleAesArgs{},
SecretManagerKeySource: &transcoder.JobTemplateConfigEncryptionSecretManagerKeySourceArgs{
SecretVersion: pulumi.String("string"),
},
},
},
Inputs: transcoder.JobTemplateConfigInputTypeArray{
&transcoder.JobTemplateConfigInputTypeArgs{
Key: pulumi.String("string"),
Uri: pulumi.String("string"),
},
},
Manifests: transcoder.JobTemplateConfigManifestArray{
&transcoder.JobTemplateConfigManifestArgs{
FileName: pulumi.String("string"),
MuxStreams: pulumi.StringArray{
pulumi.String("string"),
},
Type: pulumi.String("string"),
},
},
MuxStreams: transcoder.JobTemplateConfigMuxStreamArray{
&transcoder.JobTemplateConfigMuxStreamArgs{
Container: pulumi.String("string"),
ElementaryStreams: pulumi.StringArray{
pulumi.String("string"),
},
EncryptionId: pulumi.String("string"),
FileName: pulumi.String("string"),
Key: pulumi.String("string"),
SegmentSettings: &transcoder.JobTemplateConfigMuxStreamSegmentSettingsArgs{
SegmentDuration: pulumi.String("string"),
},
},
},
Output: &transcoder.JobTemplateConfigOutputTypeArgs{
Uri: pulumi.String("string"),
},
Overlays: transcoder.JobTemplateConfigOverlayArray{
&transcoder.JobTemplateConfigOverlayArgs{
Animations: transcoder.JobTemplateConfigOverlayAnimationArray{
&transcoder.JobTemplateConfigOverlayAnimationArgs{
AnimationFade: &transcoder.JobTemplateConfigOverlayAnimationAnimationFadeArgs{
FadeType: pulumi.String("string"),
EndTimeOffset: pulumi.String("string"),
StartTimeOffset: pulumi.String("string"),
Xy: &transcoder.JobTemplateConfigOverlayAnimationAnimationFadeXyArgs{
X: pulumi.Float64(0),
Y: pulumi.Float64(0),
},
},
},
},
Image: &transcoder.JobTemplateConfigOverlayImageArgs{
Uri: pulumi.String("string"),
},
},
},
PubsubDestination: &transcoder.JobTemplateConfigPubsubDestinationArgs{
Topic: pulumi.String("string"),
},
},
Labels: pulumi.StringMap{
"string": pulumi.String("string"),
},
Project: pulumi.String("string"),
})
var jobTemplateResource = new JobTemplate("jobTemplateResource", JobTemplateArgs.builder()
.jobTemplateId("string")
.location("string")
.config(JobTemplateConfigArgs.builder()
.adBreaks(JobTemplateConfigAdBreakArgs.builder()
.startTimeOffset("string")
.build())
.editLists(JobTemplateConfigEditListArgs.builder()
.inputs("string")
.key("string")
.startTimeOffset("string")
.build())
.elementaryStreams(JobTemplateConfigElementaryStreamArgs.builder()
.audioStream(JobTemplateConfigElementaryStreamAudioStreamArgs.builder()
.bitrateBps(0)
.channelCount(0)
.channelLayouts("string")
.codec("string")
.sampleRateHertz(0)
.build())
.key("string")
.videoStream(JobTemplateConfigElementaryStreamVideoStreamArgs.builder()
.h264(JobTemplateConfigElementaryStreamVideoStreamH264Args.builder()
.frameRate(0)
.bitrateBps(0)
.hlg()
.entropyCoder("string")
.gopDuration("string")
.heightPixels(0)
.crfLevel(0)
.pixelFormat("string")
.preset("string")
.profile("string")
.rateControlMode("string")
.sdr()
.vbvFullnessBits(0)
.vbvSizeBits(0)
.widthPixels(0)
.build())
.build())
.build())
.encryptions(JobTemplateConfigEncryptionArgs.builder()
.id("string")
.aes128()
.drmSystems(JobTemplateConfigEncryptionDrmSystemsArgs.builder()
.clearkey()
.fairplay()
.playready()
.widevine()
.build())
.mpegCenc(JobTemplateConfigEncryptionMpegCencArgs.builder()
.scheme("string")
.build())
.sampleAes()
.secretManagerKeySource(JobTemplateConfigEncryptionSecretManagerKeySourceArgs.builder()
.secretVersion("string")
.build())
.build())
.inputs(JobTemplateConfigInputArgs.builder()
.key("string")
.uri("string")
.build())
.manifests(JobTemplateConfigManifestArgs.builder()
.fileName("string")
.muxStreams("string")
.type("string")
.build())
.muxStreams(JobTemplateConfigMuxStreamArgs.builder()
.container("string")
.elementaryStreams("string")
.encryptionId("string")
.fileName("string")
.key("string")
.segmentSettings(JobTemplateConfigMuxStreamSegmentSettingsArgs.builder()
.segmentDuration("string")
.build())
.build())
.output(JobTemplateConfigOutputArgs.builder()
.uri("string")
.build())
.overlays(JobTemplateConfigOverlayArgs.builder()
.animations(JobTemplateConfigOverlayAnimationArgs.builder()
.animationFade(JobTemplateConfigOverlayAnimationAnimationFadeArgs.builder()
.fadeType("string")
.endTimeOffset("string")
.startTimeOffset("string")
.xy(JobTemplateConfigOverlayAnimationAnimationFadeXyArgs.builder()
.x(0)
.y(0)
.build())
.build())
.build())
.image(JobTemplateConfigOverlayImageArgs.builder()
.uri("string")
.build())
.build())
.pubsubDestination(JobTemplateConfigPubsubDestinationArgs.builder()
.topic("string")
.build())
.build())
.labels(Map.of("string", "string"))
.project("string")
.build());
job_template_resource = gcp.transcoder.JobTemplate("jobTemplateResource",
job_template_id="string",
location="string",
config={
"ad_breaks": [{
"start_time_offset": "string",
}],
"edit_lists": [{
"inputs": ["string"],
"key": "string",
"start_time_offset": "string",
}],
"elementary_streams": [{
"audio_stream": {
"bitrate_bps": 0,
"channel_count": 0,
"channel_layouts": ["string"],
"codec": "string",
"sample_rate_hertz": 0,
},
"key": "string",
"video_stream": {
"h264": {
"frame_rate": 0,
"bitrate_bps": 0,
"hlg": {},
"entropy_coder": "string",
"gop_duration": "string",
"height_pixels": 0,
"crf_level": 0,
"pixel_format": "string",
"preset": "string",
"profile": "string",
"rate_control_mode": "string",
"sdr": {},
"vbv_fullness_bits": 0,
"vbv_size_bits": 0,
"width_pixels": 0,
},
},
}],
"encryptions": [{
"id": "string",
"aes128": {},
"drm_systems": {
"clearkey": {},
"fairplay": {},
"playready": {},
"widevine": {},
},
"mpeg_cenc": {
"scheme": "string",
},
"sample_aes": {},
"secret_manager_key_source": {
"secret_version": "string",
},
}],
"inputs": [{
"key": "string",
"uri": "string",
}],
"manifests": [{
"file_name": "string",
"mux_streams": ["string"],
"type": "string",
}],
"mux_streams": [{
"container": "string",
"elementary_streams": ["string"],
"encryption_id": "string",
"file_name": "string",
"key": "string",
"segment_settings": {
"segment_duration": "string",
},
}],
"output": {
"uri": "string",
},
"overlays": [{
"animations": [{
"animation_fade": {
"fade_type": "string",
"end_time_offset": "string",
"start_time_offset": "string",
"xy": {
"x": 0,
"y": 0,
},
},
}],
"image": {
"uri": "string",
},
}],
"pubsub_destination": {
"topic": "string",
},
},
labels={
"string": "string",
},
project="string")
const jobTemplateResource = new gcp.transcoder.JobTemplate("jobTemplateResource", {
jobTemplateId: "string",
location: "string",
config: {
adBreaks: [{
startTimeOffset: "string",
}],
editLists: [{
inputs: ["string"],
key: "string",
startTimeOffset: "string",
}],
elementaryStreams: [{
audioStream: {
bitrateBps: 0,
channelCount: 0,
channelLayouts: ["string"],
codec: "string",
sampleRateHertz: 0,
},
key: "string",
videoStream: {
h264: {
frameRate: 0,
bitrateBps: 0,
hlg: {},
entropyCoder: "string",
gopDuration: "string",
heightPixels: 0,
crfLevel: 0,
pixelFormat: "string",
preset: "string",
profile: "string",
rateControlMode: "string",
sdr: {},
vbvFullnessBits: 0,
vbvSizeBits: 0,
widthPixels: 0,
},
},
}],
encryptions: [{
id: "string",
aes128: {},
drmSystems: {
clearkey: {},
fairplay: {},
playready: {},
widevine: {},
},
mpegCenc: {
scheme: "string",
},
sampleAes: {},
secretManagerKeySource: {
secretVersion: "string",
},
}],
inputs: [{
key: "string",
uri: "string",
}],
manifests: [{
fileName: "string",
muxStreams: ["string"],
type: "string",
}],
muxStreams: [{
container: "string",
elementaryStreams: ["string"],
encryptionId: "string",
fileName: "string",
key: "string",
segmentSettings: {
segmentDuration: "string",
},
}],
output: {
uri: "string",
},
overlays: [{
animations: [{
animationFade: {
fadeType: "string",
endTimeOffset: "string",
startTimeOffset: "string",
xy: {
x: 0,
y: 0,
},
},
}],
image: {
uri: "string",
},
}],
pubsubDestination: {
topic: "string",
},
},
labels: {
string: "string",
},
project: "string",
});
type: gcp:transcoder:JobTemplate
properties:
config:
adBreaks:
- startTimeOffset: string
editLists:
- inputs:
- string
key: string
startTimeOffset: string
elementaryStreams:
- audioStream:
bitrateBps: 0
channelCount: 0
channelLayouts:
- string
codec: string
sampleRateHertz: 0
key: string
videoStream:
h264:
bitrateBps: 0
crfLevel: 0
entropyCoder: string
frameRate: 0
gopDuration: string
heightPixels: 0
hlg: {}
pixelFormat: string
preset: string
profile: string
rateControlMode: string
sdr: {}
vbvFullnessBits: 0
vbvSizeBits: 0
widthPixels: 0
encryptions:
- aes128: {}
drmSystems:
clearkey: {}
fairplay: {}
playready: {}
widevine: {}
id: string
mpegCenc:
scheme: string
sampleAes: {}
secretManagerKeySource:
secretVersion: string
inputs:
- key: string
uri: string
manifests:
- fileName: string
muxStreams:
- string
type: string
muxStreams:
- container: string
elementaryStreams:
- string
encryptionId: string
fileName: string
key: string
segmentSettings:
segmentDuration: string
output:
uri: string
overlays:
- animations:
- animationFade:
endTimeOffset: string
fadeType: string
startTimeOffset: string
xy:
x: 0
"y": 0
image:
uri: string
pubsubDestination:
topic: string
jobTemplateId: string
labels:
string: string
location: string
project: string
JobTemplate Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The JobTemplate resource accepts the following input properties:
- Job
Template stringId - ID to use for the Transcoding job template.
- Location string
- The location of the transcoding job template resource.
- Config
Job
Template Config - The configuration for this template. Structure is documented below.
- Labels Dictionary<string, string>
The labels associated with this job template. You can use these to organize and group your job templates.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effective_labels
for all of the labels present on the resource.- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- Job
Template stringId - ID to use for the Transcoding job template.
- Location string
- The location of the transcoding job template resource.
- Config
Job
Template Config Args - The configuration for this template. Structure is documented below.
- Labels map[string]string
The labels associated with this job template. You can use these to organize and group your job templates.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effective_labels
for all of the labels present on the resource.- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- job
Template StringId - ID to use for the Transcoding job template.
- location String
- The location of the transcoding job template resource.
- config
Job
Template Config - The configuration for this template. Structure is documented below.
- labels Map<String,String>
The labels associated with this job template. You can use these to organize and group your job templates.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effective_labels
for all of the labels present on the resource.- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- job
Template stringId - ID to use for the Transcoding job template.
- location string
- The location of the transcoding job template resource.
- config
Job
Template Config - The configuration for this template. Structure is documented below.
- labels {[key: string]: string}
The labels associated with this job template. You can use these to organize and group your job templates.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effective_labels
for all of the labels present on the resource.- project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- job_
template_ strid - ID to use for the Transcoding job template.
- location str
- The location of the transcoding job template resource.
- config
Job
Template Config Args - The configuration for this template. Structure is documented below.
- labels Mapping[str, str]
The labels associated with this job template. You can use these to organize and group your job templates.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effective_labels
for all of the labels present on the resource.- project str
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- job
Template StringId - ID to use for the Transcoding job template.
- location String
- The location of the transcoding job template resource.
- config Property Map
- The configuration for this template. Structure is documented below.
- labels Map<String>
The labels associated with this job template. You can use these to organize and group your job templates.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effective_labels
for all of the labels present on the resource.- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
Outputs
All input properties are implicitly available as output properties. Additionally, the JobTemplate resource produces the following output properties:
- Effective
Labels Dictionary<string, string> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- Id string
- The provider-assigned unique ID for this managed resource.
- Name string
- The resource name of the job template.
- Pulumi
Labels Dictionary<string, string> - The combination of labels configured directly on the resource and default labels configured on the provider.
- Effective
Labels map[string]string - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- Id string
- The provider-assigned unique ID for this managed resource.
- Name string
- The resource name of the job template.
- Pulumi
Labels map[string]string - The combination of labels configured directly on the resource and default labels configured on the provider.
- effective
Labels Map<String,String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- id String
- The provider-assigned unique ID for this managed resource.
- name String
- The resource name of the job template.
- pulumi
Labels Map<String,String> - The combination of labels configured directly on the resource and default labels configured on the provider.
- effective
Labels {[key: string]: string} - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- id string
- The provider-assigned unique ID for this managed resource.
- name string
- The resource name of the job template.
- pulumi
Labels {[key: string]: string} - The combination of labels configured directly on the resource and default labels configured on the provider.
- effective_
labels Mapping[str, str] - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- id str
- The provider-assigned unique ID for this managed resource.
- name str
- The resource name of the job template.
- pulumi_
labels Mapping[str, str] - The combination of labels configured directly on the resource and default labels configured on the provider.
- effective
Labels Map<String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- id String
- The provider-assigned unique ID for this managed resource.
- name String
- The resource name of the job template.
- pulumi
Labels Map<String> - The combination of labels configured directly on the resource and default labels configured on the provider.
Look up Existing JobTemplate Resource
Get an existing JobTemplate resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: JobTemplateState, opts?: CustomResourceOptions): JobTemplate
@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
config: Optional[JobTemplateConfigArgs] = None,
effective_labels: Optional[Mapping[str, str]] = None,
job_template_id: Optional[str] = None,
labels: Optional[Mapping[str, str]] = None,
location: Optional[str] = None,
name: Optional[str] = None,
project: Optional[str] = None,
pulumi_labels: Optional[Mapping[str, str]] = None) -> JobTemplate
func GetJobTemplate(ctx *Context, name string, id IDInput, state *JobTemplateState, opts ...ResourceOption) (*JobTemplate, error)
public static JobTemplate Get(string name, Input<string> id, JobTemplateState? state, CustomResourceOptions? opts = null)
public static JobTemplate get(String name, Output<String> id, JobTemplateState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Config
Job
Template Config - The configuration for this template. Structure is documented below.
- Effective
Labels Dictionary<string, string> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- Job
Template stringId - ID to use for the Transcoding job template.
- Labels Dictionary<string, string>
The labels associated with this job template. You can use these to organize and group your job templates.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effective_labels
for all of the labels present on the resource.- Location string
- The location of the transcoding job template resource.
- Name string
- The resource name of the job template.
- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- Pulumi
Labels Dictionary<string, string> - The combination of labels configured directly on the resource and default labels configured on the provider.
- Config
Job
Template Config Args - The configuration for this template. Structure is documented below.
- Effective
Labels map[string]string - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- Job
Template stringId - ID to use for the Transcoding job template.
- Labels map[string]string
The labels associated with this job template. You can use these to organize and group your job templates.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effective_labels
for all of the labels present on the resource.- Location string
- The location of the transcoding job template resource.
- Name string
- The resource name of the job template.
- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- Pulumi
Labels map[string]string - The combination of labels configured directly on the resource and default labels configured on the provider.
- config
Job
Template Config - The configuration for this template. Structure is documented below.
- effective
Labels Map<String,String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- job
Template StringId - ID to use for the Transcoding job template.
- labels Map<String,String>
The labels associated with this job template. You can use these to organize and group your job templates.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effective_labels
for all of the labels present on the resource.- location String
- The location of the transcoding job template resource.
- name String
- The resource name of the job template.
- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumi
Labels Map<String,String> - The combination of labels configured directly on the resource and default labels configured on the provider.
- config
Job
Template Config - The configuration for this template. Structure is documented below.
- effective
Labels {[key: string]: string} - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- job
Template stringId - ID to use for the Transcoding job template.
- labels {[key: string]: string}
The labels associated with this job template. You can use these to organize and group your job templates.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effective_labels
for all of the labels present on the resource.- location string
- The location of the transcoding job template resource.
- name string
- The resource name of the job template.
- project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumi
Labels {[key: string]: string} - The combination of labels configured directly on the resource and default labels configured on the provider.
- config
Job
Template Config Args - The configuration for this template. Structure is documented below.
- effective_
labels Mapping[str, str] - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- job_
template_ strid - ID to use for the Transcoding job template.
- labels Mapping[str, str]
The labels associated with this job template. You can use these to organize and group your job templates.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effective_labels
for all of the labels present on the resource.- location str
- The location of the transcoding job template resource.
- name str
- The resource name of the job template.
- project str
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumi_
labels Mapping[str, str] - The combination of labels configured directly on the resource and default labels configured on the provider.
- config Property Map
- The configuration for this template. Structure is documented below.
- effective
Labels Map<String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- job
Template StringId - ID to use for the Transcoding job template.
- labels Map<String>
The labels associated with this job template. You can use these to organize and group your job templates.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effective_labels
for all of the labels present on the resource.- location String
- The location of the transcoding job template resource.
- name String
- The resource name of the job template.
- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumi
Labels Map<String> - The combination of labels configured directly on the resource and default labels configured on the provider.
Supporting Types
JobTemplateConfig, JobTemplateConfigArgs
- Ad
Breaks List<JobTemplate Config Ad Break> - Ad break. Structure is documented below.
- Edit
Lists List<JobTemplate Config Edit List> - List of input assets stored in Cloud Storage. Structure is documented below.
- Elementary
Streams List<JobTemplate Config Elementary Stream> - List of input assets stored in Cloud Storage. Structure is documented below.
- Encryptions
List<Job
Template Config Encryption> - List of encryption configurations for the content. Structure is documented below.
- Inputs
List<Job
Template Config Input> - List of input assets stored in Cloud Storage. Structure is documented below.
- Manifests
List<Job
Template Config Manifest> - Manifest configuration. Structure is documented below.
- Mux
Streams List<JobTemplate Config Mux Stream> - Multiplexing settings for output stream. Structure is documented below.
- Output
Job
Template Config Output - Location of output file(s) in a Cloud Storage bucket. Structure is documented below.
- Overlays
List<Job
Template Config Overlay> - List of overlays on the output video, in descending Z-order. Structure is documented below.
- Pubsub
Destination JobTemplate Config Pubsub Destination - Pub/Sub destination. Structure is documented below.
- Ad
Breaks []JobTemplate Config Ad Break - Ad break. Structure is documented below.
- Edit
Lists []JobTemplate Config Edit List - List of input assets stored in Cloud Storage. Structure is documented below.
- Elementary
Streams []JobTemplate Config Elementary Stream - List of input assets stored in Cloud Storage. Structure is documented below.
- Encryptions
[]Job
Template Config Encryption - List of encryption configurations for the content. Structure is documented below.
- Inputs
[]Job
Template Config Input Type - List of input assets stored in Cloud Storage. Structure is documented below.
- Manifests
[]Job
Template Config Manifest - Manifest configuration. Structure is documented below.
- Mux
Streams []JobTemplate Config Mux Stream - Multiplexing settings for output stream. Structure is documented below.
- Output
Job
Template Config Output Type - Location of output file(s) in a Cloud Storage bucket. Structure is documented below.
- Overlays
[]Job
Template Config Overlay - List of overlays on the output video, in descending Z-order. Structure is documented below.
- Pubsub
Destination JobTemplate Config Pubsub Destination - Pub/Sub destination. Structure is documented below.
- ad
Breaks List<JobTemplate Config Ad Break> - Ad break. Structure is documented below.
- edit
Lists List<JobTemplate Config Edit List> - List of input assets stored in Cloud Storage. Structure is documented below.
- elementary
Streams List<JobTemplate Config Elementary Stream> - List of input assets stored in Cloud Storage. Structure is documented below.
- encryptions
List<Job
Template Config Encryption> - List of encryption configurations for the content. Structure is documented below.
- inputs
List<Job
Template Config Input> - List of input assets stored in Cloud Storage. Structure is documented below.
- manifests
List<Job
Template Config Manifest> - Manifest configuration. Structure is documented below.
- mux
Streams List<JobTemplate Config Mux Stream> - Multiplexing settings for output stream. Structure is documented below.
- output
Job
Template Config Output - Location of output file(s) in a Cloud Storage bucket. Structure is documented below.
- overlays
List<Job
Template Config Overlay> - List of overlays on the output video, in descending Z-order. Structure is documented below.
- pubsub
Destination JobTemplate Config Pubsub Destination - Pub/Sub destination. Structure is documented below.
- ad
Breaks JobTemplate Config Ad Break[] - Ad break. Structure is documented below.
- edit
Lists JobTemplate Config Edit List[] - List of input assets stored in Cloud Storage. Structure is documented below.
- elementary
Streams JobTemplate Config Elementary Stream[] - List of input assets stored in Cloud Storage. Structure is documented below.
- encryptions
Job
Template Config Encryption[] - List of encryption configurations for the content. Structure is documented below.
- inputs
Job
Template Config Input[] - List of input assets stored in Cloud Storage. Structure is documented below.
- manifests
Job
Template Config Manifest[] - Manifest configuration. Structure is documented below.
- mux
Streams JobTemplate Config Mux Stream[] - Multiplexing settings for output stream. Structure is documented below.
- output
Job
Template Config Output - Location of output file(s) in a Cloud Storage bucket. Structure is documented below.
- overlays
Job
Template Config Overlay[] - List of overlays on the output video, in descending Z-order. Structure is documented below.
- pubsub
Destination JobTemplate Config Pubsub Destination - Pub/Sub destination. Structure is documented below.
- ad_
breaks Sequence[JobTemplate Config Ad Break] - Ad break. Structure is documented below.
- edit_
lists Sequence[JobTemplate Config Edit List] - List of input assets stored in Cloud Storage. Structure is documented below.
- elementary_
streams Sequence[JobTemplate Config Elementary Stream] - List of input assets stored in Cloud Storage. Structure is documented below.
- encryptions
Sequence[Job
Template Config Encryption] - List of encryption configurations for the content. Structure is documented below.
- inputs
Sequence[Job
Template Config Input] - List of input assets stored in Cloud Storage. Structure is documented below.
- manifests
Sequence[Job
Template Config Manifest] - Manifest configuration. Structure is documented below.
- mux_
streams Sequence[JobTemplate Config Mux Stream] - Multiplexing settings for output stream. Structure is documented below.
- output
Job
Template Config Output - Location of output file(s) in a Cloud Storage bucket. Structure is documented below.
- overlays
Sequence[Job
Template Config Overlay] - List of overlays on the output video, in descending Z-order. Structure is documented below.
- pubsub_
destination JobTemplate Config Pubsub Destination - Pub/Sub destination. Structure is documented below.
- ad
Breaks List<Property Map> - Ad break. Structure is documented below.
- edit
Lists List<Property Map> - List of input assets stored in Cloud Storage. Structure is documented below.
- elementary
Streams List<Property Map> - List of input assets stored in Cloud Storage. Structure is documented below.
- encryptions List<Property Map>
- List of encryption configurations for the content. Structure is documented below.
- inputs List<Property Map>
- List of input assets stored in Cloud Storage. Structure is documented below.
- manifests List<Property Map>
- Manifest configuration. Structure is documented below.
- mux
Streams List<Property Map> - Multiplexing settings for output stream. Structure is documented below.
- output Property Map
- Location of output file(s) in a Cloud Storage bucket. Structure is documented below.
- overlays List<Property Map>
- List of overlays on the output video, in descending Z-order. Structure is documented below.
- pubsub
Destination Property Map - Pub/Sub destination. Structure is documented below.
JobTemplateConfigAdBreak, JobTemplateConfigAdBreakArgs
- Start
Time stringOffset - Start time in seconds for the ad break, relative to the output file timeline
- Start
Time stringOffset - Start time in seconds for the ad break, relative to the output file timeline
- start
Time StringOffset - Start time in seconds for the ad break, relative to the output file timeline
- start
Time stringOffset - Start time in seconds for the ad break, relative to the output file timeline
- start_
time_ stroffset - Start time in seconds for the ad break, relative to the output file timeline
- start
Time StringOffset - Start time in seconds for the ad break, relative to the output file timeline
JobTemplateConfigEditList, JobTemplateConfigEditListArgs
- Inputs List<string>
- List of values identifying files that should be used in this atom.
- Key string
- A unique key for this atom.
- Start
Time stringOffset - Start time in seconds for the atom, relative to the input file timeline. The default is
0s
.
- Inputs []string
- List of values identifying files that should be used in this atom.
- Key string
- A unique key for this atom.
- Start
Time stringOffset - Start time in seconds for the atom, relative to the input file timeline. The default is
0s
.
- inputs List<String>
- List of values identifying files that should be used in this atom.
- key String
- A unique key for this atom.
- start
Time StringOffset - Start time in seconds for the atom, relative to the input file timeline. The default is
0s
.
- inputs string[]
- List of values identifying files that should be used in this atom.
- key string
- A unique key for this atom.
- start
Time stringOffset - Start time in seconds for the atom, relative to the input file timeline. The default is
0s
.
- inputs Sequence[str]
- List of values identifying files that should be used in this atom.
- key str
- A unique key for this atom.
- start_
time_ stroffset - Start time in seconds for the atom, relative to the input file timeline. The default is
0s
.
- inputs List<String>
- List of values identifying files that should be used in this atom.
- key String
- A unique key for this atom.
- start
Time StringOffset - Start time in seconds for the atom, relative to the input file timeline. The default is
0s
.
JobTemplateConfigElementaryStream, JobTemplateConfigElementaryStreamArgs
- Audio
Stream JobTemplate Config Elementary Stream Audio Stream - Encoding of an audio stream. Structure is documented below.
- Key string
- A unique key for this atom.
- Video
Stream JobTemplate Config Elementary Stream Video Stream - Encoding of a video stream. Structure is documented below.
- Audio
Stream JobTemplate Config Elementary Stream Audio Stream - Encoding of an audio stream. Structure is documented below.
- Key string
- A unique key for this atom.
- Video
Stream JobTemplate Config Elementary Stream Video Stream - Encoding of a video stream. Structure is documented below.
- audio
Stream JobTemplate Config Elementary Stream Audio Stream - Encoding of an audio stream. Structure is documented below.
- key String
- A unique key for this atom.
- video
Stream JobTemplate Config Elementary Stream Video Stream - Encoding of a video stream. Structure is documented below.
- audio
Stream JobTemplate Config Elementary Stream Audio Stream - Encoding of an audio stream. Structure is documented below.
- key string
- A unique key for this atom.
- video
Stream JobTemplate Config Elementary Stream Video Stream - Encoding of a video stream. Structure is documented below.
- audio_
stream JobTemplate Config Elementary Stream Audio Stream - Encoding of an audio stream. Structure is documented below.
- key str
- A unique key for this atom.
- video_
stream JobTemplate Config Elementary Stream Video Stream - Encoding of a video stream. Structure is documented below.
- audio
Stream Property Map - Encoding of an audio stream. Structure is documented below.
- key String
- A unique key for this atom.
- video
Stream Property Map - Encoding of a video stream. Structure is documented below.
JobTemplateConfigElementaryStreamAudioStream, JobTemplateConfigElementaryStreamAudioStreamArgs
- Bitrate
Bps int - Audio bitrate in bits per second.
- Channel
Count int - Number of audio channels. The default is
2
. - Channel
Layouts List<string> - A list of channel names specifying layout of the audio channels. The default is ["fl", "fr"].
- Codec string
- The codec for this audio stream. The default is
aac
. - Sample
Rate intHertz - The audio sample rate in Hertz. The default is
48000
.
- Bitrate
Bps int - Audio bitrate in bits per second.
- Channel
Count int - Number of audio channels. The default is
2
. - Channel
Layouts []string - A list of channel names specifying layout of the audio channels. The default is ["fl", "fr"].
- Codec string
- The codec for this audio stream. The default is
aac
. - Sample
Rate intHertz - The audio sample rate in Hertz. The default is
48000
.
- bitrate
Bps Integer - Audio bitrate in bits per second.
- channel
Count Integer - Number of audio channels. The default is
2
. - channel
Layouts List<String> - A list of channel names specifying layout of the audio channels. The default is ["fl", "fr"].
- codec String
- The codec for this audio stream. The default is
aac
. - sample
Rate IntegerHertz - The audio sample rate in Hertz. The default is
48000
.
- bitrate
Bps number - Audio bitrate in bits per second.
- channel
Count number - Number of audio channels. The default is
2
. - channel
Layouts string[] - A list of channel names specifying layout of the audio channels. The default is ["fl", "fr"].
- codec string
- The codec for this audio stream. The default is
aac
. - sample
Rate numberHertz - The audio sample rate in Hertz. The default is
48000
.
- bitrate_
bps int - Audio bitrate in bits per second.
- channel_
count int - Number of audio channels. The default is
2
. - channel_
layouts Sequence[str] - A list of channel names specifying layout of the audio channels. The default is ["fl", "fr"].
- codec str
- The codec for this audio stream. The default is
aac
. - sample_
rate_ inthertz - The audio sample rate in Hertz. The default is
48000
.
- bitrate
Bps Number - Audio bitrate in bits per second.
- channel
Count Number - Number of audio channels. The default is
2
. - channel
Layouts List<String> - A list of channel names specifying layout of the audio channels. The default is ["fl", "fr"].
- codec String
- The codec for this audio stream. The default is
aac
. - sample
Rate NumberHertz - The audio sample rate in Hertz. The default is
48000
.
JobTemplateConfigElementaryStreamVideoStream, JobTemplateConfigElementaryStreamVideoStreamArgs
- H264
Job
Template Config Elementary Stream Video Stream H264 H264 codec settings Structure is documented below.
The
h264
block supports:
- H264
Job
Template Config Elementary Stream Video Stream H264 H264 codec settings Structure is documented below.
The
h264
block supports:
- h264
Job
Template Config Elementary Stream Video Stream H264 H264 codec settings Structure is documented below.
The
h264
block supports:
- h264
Job
Template Config Elementary Stream Video Stream H264 H264 codec settings Structure is documented below.
The
h264
block supports:
- h264
Job
Template Config Elementary Stream Video Stream H264 H264 codec settings Structure is documented below.
The
h264
block supports:
- h264 Property Map
H264 codec settings Structure is documented below.
The
h264
block supports:
JobTemplateConfigElementaryStreamVideoStreamH264, JobTemplateConfigElementaryStreamVideoStreamH264Args
- Bitrate
Bps int - The video bitrate in bits per second.
- Frame
Rate int - The target video frame rate in frames per second (FPS).
- Crf
Level int - Target CRF level. The default is '21'.
- Entropy
Coder string - The entropy coder to use. The default is 'cabac'.
- Gop
Duration string - Select the GOP size based on the specified duration. The default is '3s'.
- Height
Pixels int - The height of the video in pixels.
- Hlg
Job
Template Config Elementary Stream Video Stream H264Hlg - HLG color format setting for H264.
- Pixel
Format string - Pixel format to use. The default is 'yuv420p'.
- Preset string
- Enforces the specified codec preset. The default is 'veryfast'.
- Profile string
- Enforces the specified codec profile.
- Rate
Control stringMode - Specify the mode. The default is 'vbr'.
- Sdr
Job
Template Config Elementary Stream Video Stream H264Sdr - SDR color format setting for H264.
- Vbv
Fullness intBits - Initial fullness of the Video Buffering Verifier (VBV) buffer in bits.
- Vbv
Size intBits - Size of the Video Buffering Verifier (VBV) buffer in bits.
- Width
Pixels int - The width of the video in pixels.
- Bitrate
Bps int - The video bitrate in bits per second.
- Frame
Rate int - The target video frame rate in frames per second (FPS).
- Crf
Level int - Target CRF level. The default is '21'.
- Entropy
Coder string - The entropy coder to use. The default is 'cabac'.
- Gop
Duration string - Select the GOP size based on the specified duration. The default is '3s'.
- Height
Pixels int - The height of the video in pixels.
- Hlg
Job
Template Config Elementary Stream Video Stream H264Hlg - HLG color format setting for H264.
- Pixel
Format string - Pixel format to use. The default is 'yuv420p'.
- Preset string
- Enforces the specified codec preset. The default is 'veryfast'.
- Profile string
- Enforces the specified codec profile.
- Rate
Control stringMode - Specify the mode. The default is 'vbr'.
- Sdr
Job
Template Config Elementary Stream Video Stream H264Sdr - SDR color format setting for H264.
- Vbv
Fullness intBits - Initial fullness of the Video Buffering Verifier (VBV) buffer in bits.
- Vbv
Size intBits - Size of the Video Buffering Verifier (VBV) buffer in bits.
- Width
Pixels int - The width of the video in pixels.
- bitrate
Bps Integer - The video bitrate in bits per second.
- frame
Rate Integer - The target video frame rate in frames per second (FPS).
- crf
Level Integer - Target CRF level. The default is '21'.
- entropy
Coder String - The entropy coder to use. The default is 'cabac'.
- gop
Duration String - Select the GOP size based on the specified duration. The default is '3s'.
- height
Pixels Integer - The height of the video in pixels.
- hlg
Job
Template Config Elementary Stream Video Stream H264Hlg - HLG color format setting for H264.
- pixel
Format String - Pixel format to use. The default is 'yuv420p'.
- preset String
- Enforces the specified codec preset. The default is 'veryfast'.
- profile String
- Enforces the specified codec profile.
- rate
Control StringMode - Specify the mode. The default is 'vbr'.
- sdr
Job
Template Config Elementary Stream Video Stream H264Sdr - SDR color format setting for H264.
- vbv
Fullness IntegerBits - Initial fullness of the Video Buffering Verifier (VBV) buffer in bits.
- vbv
Size IntegerBits - Size of the Video Buffering Verifier (VBV) buffer in bits.
- width
Pixels Integer - The width of the video in pixels.
- bitrate
Bps number - The video bitrate in bits per second.
- frame
Rate number - The target video frame rate in frames per second (FPS).
- crf
Level number - Target CRF level. The default is '21'.
- entropy
Coder string - The entropy coder to use. The default is 'cabac'.
- gop
Duration string - Select the GOP size based on the specified duration. The default is '3s'.
- height
Pixels number - The height of the video in pixels.
- hlg
Job
Template Config Elementary Stream Video Stream H264Hlg - HLG color format setting for H264.
- pixel
Format string - Pixel format to use. The default is 'yuv420p'.
- preset string
- Enforces the specified codec preset. The default is 'veryfast'.
- profile string
- Enforces the specified codec profile.
- rate
Control stringMode - Specify the mode. The default is 'vbr'.
- sdr
Job
Template Config Elementary Stream Video Stream H264Sdr - SDR color format setting for H264.
- vbv
Fullness numberBits - Initial fullness of the Video Buffering Verifier (VBV) buffer in bits.
- vbv
Size numberBits - Size of the Video Buffering Verifier (VBV) buffer in bits.
- width
Pixels number - The width of the video in pixels.
- bitrate_
bps int - The video bitrate in bits per second.
- frame_
rate int - The target video frame rate in frames per second (FPS).
- crf_
level int - Target CRF level. The default is '21'.
- entropy_
coder str - The entropy coder to use. The default is 'cabac'.
- gop_
duration str - Select the GOP size based on the specified duration. The default is '3s'.
- height_
pixels int - The height of the video in pixels.
- hlg
Job
Template Config Elementary Stream Video Stream H264Hlg - HLG color format setting for H264.
- pixel_
format str - Pixel format to use. The default is 'yuv420p'.
- preset str
- Enforces the specified codec preset. The default is 'veryfast'.
- profile str
- Enforces the specified codec profile.
- rate_
control_ strmode - Specify the mode. The default is 'vbr'.
- sdr
Job
Template Config Elementary Stream Video Stream H264Sdr - SDR color format setting for H264.
- vbv_
fullness_ intbits - Initial fullness of the Video Buffering Verifier (VBV) buffer in bits.
- vbv_
size_ intbits - Size of the Video Buffering Verifier (VBV) buffer in bits.
- width_
pixels int - The width of the video in pixels.
- bitrate
Bps Number - The video bitrate in bits per second.
- frame
Rate Number - The target video frame rate in frames per second (FPS).
- crf
Level Number - Target CRF level. The default is '21'.
- entropy
Coder String - The entropy coder to use. The default is 'cabac'.
- gop
Duration String - Select the GOP size based on the specified duration. The default is '3s'.
- height
Pixels Number - The height of the video in pixels.
- hlg Property Map
- HLG color format setting for H264.
- pixel
Format String - Pixel format to use. The default is 'yuv420p'.
- preset String
- Enforces the specified codec preset. The default is 'veryfast'.
- profile String
- Enforces the specified codec profile.
- rate
Control StringMode - Specify the mode. The default is 'vbr'.
- sdr Property Map
- SDR color format setting for H264.
- vbv
Fullness NumberBits - Initial fullness of the Video Buffering Verifier (VBV) buffer in bits.
- vbv
Size NumberBits - Size of the Video Buffering Verifier (VBV) buffer in bits.
- width
Pixels Number - The width of the video in pixels.
JobTemplateConfigEncryption, JobTemplateConfigEncryptionArgs
- Id string
- Identifier for this set of encryption options.
- Aes128
Job
Template Config Encryption Aes128 - Configuration for AES-128 encryption.
- Drm
Systems JobTemplate Config Encryption Drm Systems - DRM system(s) to use; at least one must be specified. If a DRM system is omitted, it is considered disabled. Structure is documented below.
- Mpeg
Cenc JobTemplate Config Encryption Mpeg Cenc - Configuration for MPEG Common Encryption (MPEG-CENC). Structure is documented below.
- Sample
Aes JobTemplate Config Encryption Sample Aes - Configuration for SAMPLE-AES encryption.
- Secret
Manager JobKey Source Template Config Encryption Secret Manager Key Source - Configuration for secrets stored in Google Secret Manager. Structure is documented below.
- Id string
- Identifier for this set of encryption options.
- Aes128
Job
Template Config Encryption Aes128 - Configuration for AES-128 encryption.
- Drm
Systems JobTemplate Config Encryption Drm Systems - DRM system(s) to use; at least one must be specified. If a DRM system is omitted, it is considered disabled. Structure is documented below.
- Mpeg
Cenc JobTemplate Config Encryption Mpeg Cenc - Configuration for MPEG Common Encryption (MPEG-CENC). Structure is documented below.
- Sample
Aes JobTemplate Config Encryption Sample Aes - Configuration for SAMPLE-AES encryption.
- Secret
Manager JobKey Source Template Config Encryption Secret Manager Key Source - Configuration for secrets stored in Google Secret Manager. Structure is documented below.
- id String
- Identifier for this set of encryption options.
- aes128
Job
Template Config Encryption Aes128 - Configuration for AES-128 encryption.
- drm
Systems JobTemplate Config Encryption Drm Systems - DRM system(s) to use; at least one must be specified. If a DRM system is omitted, it is considered disabled. Structure is documented below.
- mpeg
Cenc JobTemplate Config Encryption Mpeg Cenc - Configuration for MPEG Common Encryption (MPEG-CENC). Structure is documented below.
- sample
Aes JobTemplate Config Encryption Sample Aes - Configuration for SAMPLE-AES encryption.
- secret
Manager JobKey Source Template Config Encryption Secret Manager Key Source - Configuration for secrets stored in Google Secret Manager. Structure is documented below.
- id string
- Identifier for this set of encryption options.
- aes128
Job
Template Config Encryption Aes128 - Configuration for AES-128 encryption.
- drm
Systems JobTemplate Config Encryption Drm Systems - DRM system(s) to use; at least one must be specified. If a DRM system is omitted, it is considered disabled. Structure is documented below.
- mpeg
Cenc JobTemplate Config Encryption Mpeg Cenc - Configuration for MPEG Common Encryption (MPEG-CENC). Structure is documented below.
- sample
Aes JobTemplate Config Encryption Sample Aes - Configuration for SAMPLE-AES encryption.
- secret
Manager JobKey Source Template Config Encryption Secret Manager Key Source - Configuration for secrets stored in Google Secret Manager. Structure is documented below.
- id str
- Identifier for this set of encryption options.
- aes128
Job
Template Config Encryption Aes128 - Configuration for AES-128 encryption.
- drm_
systems JobTemplate Config Encryption Drm Systems - DRM system(s) to use; at least one must be specified. If a DRM system is omitted, it is considered disabled. Structure is documented below.
- mpeg_
cenc JobTemplate Config Encryption Mpeg Cenc - Configuration for MPEG Common Encryption (MPEG-CENC). Structure is documented below.
- sample_
aes JobTemplate Config Encryption Sample Aes - Configuration for SAMPLE-AES encryption.
- secret_
manager_ Jobkey_ source Template Config Encryption Secret Manager Key Source - Configuration for secrets stored in Google Secret Manager. Structure is documented below.
- id String
- Identifier for this set of encryption options.
- aes128 Property Map
- Configuration for AES-128 encryption.
- drm
Systems Property Map - DRM system(s) to use; at least one must be specified. If a DRM system is omitted, it is considered disabled. Structure is documented below.
- mpeg
Cenc Property Map - Configuration for MPEG Common Encryption (MPEG-CENC). Structure is documented below.
- sample
Aes Property Map - Configuration for SAMPLE-AES encryption.
- secret
Manager Property MapKey Source - Configuration for secrets stored in Google Secret Manager. Structure is documented below.
JobTemplateConfigEncryptionDrmSystems, JobTemplateConfigEncryptionDrmSystemsArgs
- Clearkey
Job
Template Config Encryption Drm Systems Clearkey - Clearkey configuration.
- Fairplay
Job
Template Config Encryption Drm Systems Fairplay - Fairplay configuration.
- Playready
Job
Template Config Encryption Drm Systems Playready - Playready configuration.
- Widevine
Job
Template Config Encryption Drm Systems Widevine - Widevine configuration.
- Clearkey
Job
Template Config Encryption Drm Systems Clearkey - Clearkey configuration.
- Fairplay
Job
Template Config Encryption Drm Systems Fairplay - Fairplay configuration.
- Playready
Job
Template Config Encryption Drm Systems Playready - Playready configuration.
- Widevine
Job
Template Config Encryption Drm Systems Widevine - Widevine configuration.
- clearkey
Job
Template Config Encryption Drm Systems Clearkey - Clearkey configuration.
- fairplay
Job
Template Config Encryption Drm Systems Fairplay - Fairplay configuration.
- playready
Job
Template Config Encryption Drm Systems Playready - Playready configuration.
- widevine
Job
Template Config Encryption Drm Systems Widevine - Widevine configuration.
- clearkey
Job
Template Config Encryption Drm Systems Clearkey - Clearkey configuration.
- fairplay
Job
Template Config Encryption Drm Systems Fairplay - Fairplay configuration.
- playready
Job
Template Config Encryption Drm Systems Playready - Playready configuration.
- widevine
Job
Template Config Encryption Drm Systems Widevine - Widevine configuration.
- clearkey
Job
Template Config Encryption Drm Systems Clearkey - Clearkey configuration.
- fairplay
Job
Template Config Encryption Drm Systems Fairplay - Fairplay configuration.
- playready
Job
Template Config Encryption Drm Systems Playready - Playready configuration.
- widevine
Job
Template Config Encryption Drm Systems Widevine - Widevine configuration.
- clearkey Property Map
- Clearkey configuration.
- fairplay Property Map
- Fairplay configuration.
- playready Property Map
- Playready configuration.
- widevine Property Map
- Widevine configuration.
JobTemplateConfigEncryptionMpegCenc, JobTemplateConfigEncryptionMpegCencArgs
- Scheme string
- Specify the encryption scheme.
- Scheme string
- Specify the encryption scheme.
- scheme String
- Specify the encryption scheme.
- scheme string
- Specify the encryption scheme.
- scheme str
- Specify the encryption scheme.
- scheme String
- Specify the encryption scheme.
JobTemplateConfigEncryptionSecretManagerKeySource, JobTemplateConfigEncryptionSecretManagerKeySourceArgs
- Secret
Version string - The name of the Secret Version containing the encryption key in the following format: projects/{project}/secrets/{secret_id}/versions/{version_number}.
- Secret
Version string - The name of the Secret Version containing the encryption key in the following format: projects/{project}/secrets/{secret_id}/versions/{version_number}.
- secret
Version String - The name of the Secret Version containing the encryption key in the following format: projects/{project}/secrets/{secret_id}/versions/{version_number}.
- secret
Version string - The name of the Secret Version containing the encryption key in the following format: projects/{project}/secrets/{secret_id}/versions/{version_number}.
- secret_
version str - The name of the Secret Version containing the encryption key in the following format: projects/{project}/secrets/{secret_id}/versions/{version_number}.
- secret
Version String - The name of the Secret Version containing the encryption key in the following format: projects/{project}/secrets/{secret_id}/versions/{version_number}.
JobTemplateConfigInput, JobTemplateConfigInputArgs
- Key string
- A unique key for this input. Must be specified when using advanced mapping and edit lists.
- Uri string
- URI of the media. Input files must be at least 5 seconds in duration and stored in Cloud Storage (for example, gs://bucket/inputs/file.mp4). If empty, the value is populated from Job.input_uri.
- Key string
- A unique key for this input. Must be specified when using advanced mapping and edit lists.
- Uri string
- URI of the media. Input files must be at least 5 seconds in duration and stored in Cloud Storage (for example, gs://bucket/inputs/file.mp4). If empty, the value is populated from Job.input_uri.
- key String
- A unique key for this input. Must be specified when using advanced mapping and edit lists.
- uri String
- URI of the media. Input files must be at least 5 seconds in duration and stored in Cloud Storage (for example, gs://bucket/inputs/file.mp4). If empty, the value is populated from Job.input_uri.
- key string
- A unique key for this input. Must be specified when using advanced mapping and edit lists.
- uri string
- URI of the media. Input files must be at least 5 seconds in duration and stored in Cloud Storage (for example, gs://bucket/inputs/file.mp4). If empty, the value is populated from Job.input_uri.
- key String
- A unique key for this input. Must be specified when using advanced mapping and edit lists.
- uri String
- URI of the media. Input files must be at least 5 seconds in duration and stored in Cloud Storage (for example, gs://bucket/inputs/file.mp4). If empty, the value is populated from Job.input_uri.
JobTemplateConfigManifest, JobTemplateConfigManifestArgs
- File
Name string - The name of the generated file. The default is
manifest
. - Mux
Streams List<string> - List of user supplied MuxStream.key values that should appear in this manifest.
- Type string
- Type of the manifest.
Possible values are:
MANIFEST_TYPE_UNSPECIFIED
,HLS
,DASH
.
- File
Name string - The name of the generated file. The default is
manifest
. - Mux
Streams []string - List of user supplied MuxStream.key values that should appear in this manifest.
- Type string
- Type of the manifest.
Possible values are:
MANIFEST_TYPE_UNSPECIFIED
,HLS
,DASH
.
- file
Name String - The name of the generated file. The default is
manifest
. - mux
Streams List<String> - List of user supplied MuxStream.key values that should appear in this manifest.
- type String
- Type of the manifest.
Possible values are:
MANIFEST_TYPE_UNSPECIFIED
,HLS
,DASH
.
- file
Name string - The name of the generated file. The default is
manifest
. - mux
Streams string[] - List of user supplied MuxStream.key values that should appear in this manifest.
- type string
- Type of the manifest.
Possible values are:
MANIFEST_TYPE_UNSPECIFIED
,HLS
,DASH
.
- file_
name str - The name of the generated file. The default is
manifest
. - mux_
streams Sequence[str] - List of user supplied MuxStream.key values that should appear in this manifest.
- type str
- Type of the manifest.
Possible values are:
MANIFEST_TYPE_UNSPECIFIED
,HLS
,DASH
.
- file
Name String - The name of the generated file. The default is
manifest
. - mux
Streams List<String> - List of user supplied MuxStream.key values that should appear in this manifest.
- type String
- Type of the manifest.
Possible values are:
MANIFEST_TYPE_UNSPECIFIED
,HLS
,DASH
.
JobTemplateConfigMuxStream, JobTemplateConfigMuxStreamArgs
- Container string
- The container format. The default is
mp4
. - Elementary
Streams List<string> - List of ElementaryStream.key values multiplexed in this stream.
- Encryption
Id string - Identifier of the encryption configuration to use.
- File
Name string - The name of the generated file.
- Key string
- A unique key for this multiplexed stream.
- Segment
Settings JobTemplate Config Mux Stream Segment Settings - Segment settings for ts, fmp4 and vtt. Structure is documented below.
- Container string
- The container format. The default is
mp4
. - Elementary
Streams []string - List of ElementaryStream.key values multiplexed in this stream.
- Encryption
Id string - Identifier of the encryption configuration to use.
- File
Name string - The name of the generated file.
- Key string
- A unique key for this multiplexed stream.
- Segment
Settings JobTemplate Config Mux Stream Segment Settings - Segment settings for ts, fmp4 and vtt. Structure is documented below.
- container String
- The container format. The default is
mp4
. - elementary
Streams List<String> - List of ElementaryStream.key values multiplexed in this stream.
- encryption
Id String - Identifier of the encryption configuration to use.
- file
Name String - The name of the generated file.
- key String
- A unique key for this multiplexed stream.
- segment
Settings JobTemplate Config Mux Stream Segment Settings - Segment settings for ts, fmp4 and vtt. Structure is documented below.
- container string
- The container format. The default is
mp4
. - elementary
Streams string[] - List of ElementaryStream.key values multiplexed in this stream.
- encryption
Id string - Identifier of the encryption configuration to use.
- file
Name string - The name of the generated file.
- key string
- A unique key for this multiplexed stream.
- segment
Settings JobTemplate Config Mux Stream Segment Settings - Segment settings for ts, fmp4 and vtt. Structure is documented below.
- container str
- The container format. The default is
mp4
. - elementary_
streams Sequence[str] - List of ElementaryStream.key values multiplexed in this stream.
- encryption_
id str - Identifier of the encryption configuration to use.
- file_
name str - The name of the generated file.
- key str
- A unique key for this multiplexed stream.
- segment_
settings JobTemplate Config Mux Stream Segment Settings - Segment settings for ts, fmp4 and vtt. Structure is documented below.
- container String
- The container format. The default is
mp4
. - elementary
Streams List<String> - List of ElementaryStream.key values multiplexed in this stream.
- encryption
Id String - Identifier of the encryption configuration to use.
- file
Name String - The name of the generated file.
- key String
- A unique key for this multiplexed stream.
- segment
Settings Property Map - Segment settings for ts, fmp4 and vtt. Structure is documented below.
JobTemplateConfigMuxStreamSegmentSettings, JobTemplateConfigMuxStreamSegmentSettingsArgs
- Segment
Duration string - Duration of the segments in seconds. The default is
6.0s
.
- Segment
Duration string - Duration of the segments in seconds. The default is
6.0s
.
- segment
Duration String - Duration of the segments in seconds. The default is
6.0s
.
- segment
Duration string - Duration of the segments in seconds. The default is
6.0s
.
- segment_
duration str - Duration of the segments in seconds. The default is
6.0s
.
- segment
Duration String - Duration of the segments in seconds. The default is
6.0s
.
JobTemplateConfigOutput, JobTemplateConfigOutputArgs
- Uri string
- URI for the output file(s). For example, gs://my-bucket/outputs/.
- Uri string
- URI for the output file(s). For example, gs://my-bucket/outputs/.
- uri String
- URI for the output file(s). For example, gs://my-bucket/outputs/.
- uri string
- URI for the output file(s). For example, gs://my-bucket/outputs/.
- uri str
- URI for the output file(s). For example, gs://my-bucket/outputs/.
- uri String
- URI for the output file(s). For example, gs://my-bucket/outputs/.
JobTemplateConfigOverlay, JobTemplateConfigOverlayArgs
- Animations
List<Job
Template Config Overlay Animation> - List of animations. The list should be chronological, without any time overlap. Structure is documented below.
- Image
Job
Template Config Overlay Image - Image overlay. Structure is documented below.
- Animations
[]Job
Template Config Overlay Animation - List of animations. The list should be chronological, without any time overlap. Structure is documented below.
- Image
Job
Template Config Overlay Image - Image overlay. Structure is documented below.
- animations
List<Job
Template Config Overlay Animation> - List of animations. The list should be chronological, without any time overlap. Structure is documented below.
- image
Job
Template Config Overlay Image - Image overlay. Structure is documented below.
- animations
Job
Template Config Overlay Animation[] - List of animations. The list should be chronological, without any time overlap. Structure is documented below.
- image
Job
Template Config Overlay Image - Image overlay. Structure is documented below.
- animations
Sequence[Job
Template Config Overlay Animation] - List of animations. The list should be chronological, without any time overlap. Structure is documented below.
- image
Job
Template Config Overlay Image - Image overlay. Structure is documented below.
- animations List<Property Map>
- List of animations. The list should be chronological, without any time overlap. Structure is documented below.
- image Property Map
- Image overlay. Structure is documented below.
JobTemplateConfigOverlayAnimation, JobTemplateConfigOverlayAnimationArgs
- Animation
Fade JobTemplate Config Overlay Animation Animation Fade - Display overlay object with fade animation. Structure is documented below.
- Animation
Fade JobTemplate Config Overlay Animation Animation Fade - Display overlay object with fade animation. Structure is documented below.
- animation
Fade JobTemplate Config Overlay Animation Animation Fade - Display overlay object with fade animation. Structure is documented below.
- animation
Fade JobTemplate Config Overlay Animation Animation Fade - Display overlay object with fade animation. Structure is documented below.
- animation_
fade JobTemplate Config Overlay Animation Animation Fade - Display overlay object with fade animation. Structure is documented below.
- animation
Fade Property Map - Display overlay object with fade animation. Structure is documented below.
JobTemplateConfigOverlayAnimationAnimationFade, JobTemplateConfigOverlayAnimationAnimationFadeArgs
- Fade
Type string - Required. Type of fade animation:
FADE_IN
orFADE_OUT
. The possible values are:FADE_TYPE_UNSPECIFIED
: The fade type is not specified.FADE_IN
: Fade the overlay object into view.FADE_OUT
: Fade the overlay object out of view. Possible values are:FADE_TYPE_UNSPECIFIED
,FADE_IN
,FADE_OUT
.
- End
Time stringOffset - The time to end the fade animation, in seconds.
- Start
Time stringOffset - The time to start the fade animation, in seconds.
- Xy
Job
Template Config Overlay Animation Animation Fade Xy - Normalized coordinates based on output video resolution. Structure is documented below.
- Fade
Type string - Required. Type of fade animation:
FADE_IN
orFADE_OUT
. The possible values are:FADE_TYPE_UNSPECIFIED
: The fade type is not specified.FADE_IN
: Fade the overlay object into view.FADE_OUT
: Fade the overlay object out of view. Possible values are:FADE_TYPE_UNSPECIFIED
,FADE_IN
,FADE_OUT
.
- End
Time stringOffset - The time to end the fade animation, in seconds.
- Start
Time stringOffset - The time to start the fade animation, in seconds.
- Xy
Job
Template Config Overlay Animation Animation Fade Xy - Normalized coordinates based on output video resolution. Structure is documented below.
- fade
Type String - Required. Type of fade animation:
FADE_IN
orFADE_OUT
. The possible values are:FADE_TYPE_UNSPECIFIED
: The fade type is not specified.FADE_IN
: Fade the overlay object into view.FADE_OUT
: Fade the overlay object out of view. Possible values are:FADE_TYPE_UNSPECIFIED
,FADE_IN
,FADE_OUT
.
- end
Time StringOffset - The time to end the fade animation, in seconds.
- start
Time StringOffset - The time to start the fade animation, in seconds.
- xy
Job
Template Config Overlay Animation Animation Fade Xy - Normalized coordinates based on output video resolution. Structure is documented below.
- fade
Type string - Required. Type of fade animation:
FADE_IN
orFADE_OUT
. The possible values are:FADE_TYPE_UNSPECIFIED
: The fade type is not specified.FADE_IN
: Fade the overlay object into view.FADE_OUT
: Fade the overlay object out of view. Possible values are:FADE_TYPE_UNSPECIFIED
,FADE_IN
,FADE_OUT
.
- end
Time stringOffset - The time to end the fade animation, in seconds.
- start
Time stringOffset - The time to start the fade animation, in seconds.
- xy
Job
Template Config Overlay Animation Animation Fade Xy - Normalized coordinates based on output video resolution. Structure is documented below.
- fade_
type str - Required. Type of fade animation:
FADE_IN
orFADE_OUT
. The possible values are:FADE_TYPE_UNSPECIFIED
: The fade type is not specified.FADE_IN
: Fade the overlay object into view.FADE_OUT
: Fade the overlay object out of view. Possible values are:FADE_TYPE_UNSPECIFIED
,FADE_IN
,FADE_OUT
.
- end_
time_ stroffset - The time to end the fade animation, in seconds.
- start_
time_ stroffset - The time to start the fade animation, in seconds.
- xy
Job
Template Config Overlay Animation Animation Fade Xy - Normalized coordinates based on output video resolution. Structure is documented below.
- fade
Type String - Required. Type of fade animation:
FADE_IN
orFADE_OUT
. The possible values are:FADE_TYPE_UNSPECIFIED
: The fade type is not specified.FADE_IN
: Fade the overlay object into view.FADE_OUT
: Fade the overlay object out of view. Possible values are:FADE_TYPE_UNSPECIFIED
,FADE_IN
,FADE_OUT
.
- end
Time StringOffset - The time to end the fade animation, in seconds.
- start
Time StringOffset - The time to start the fade animation, in seconds.
- xy Property Map
- Normalized coordinates based on output video resolution. Structure is documented below.
JobTemplateConfigOverlayAnimationAnimationFadeXy, JobTemplateConfigOverlayAnimationAnimationFadeXyArgs
JobTemplateConfigOverlayImage, JobTemplateConfigOverlayImageArgs
- Uri string
- URI of the image in Cloud Storage. For example, gs://bucket/inputs/image.png.
- Uri string
- URI of the image in Cloud Storage. For example, gs://bucket/inputs/image.png.
- uri String
- URI of the image in Cloud Storage. For example, gs://bucket/inputs/image.png.
- uri string
- URI of the image in Cloud Storage. For example, gs://bucket/inputs/image.png.
- uri str
- URI of the image in Cloud Storage. For example, gs://bucket/inputs/image.png.
- uri String
- URI of the image in Cloud Storage. For example, gs://bucket/inputs/image.png.
JobTemplateConfigPubsubDestination, JobTemplateConfigPubsubDestinationArgs
- Topic string
- The name of the Pub/Sub topic to publish job completion notification to. For example: projects/{project}/topics/{topic}.
- Topic string
- The name of the Pub/Sub topic to publish job completion notification to. For example: projects/{project}/topics/{topic}.
- topic String
- The name of the Pub/Sub topic to publish job completion notification to. For example: projects/{project}/topics/{topic}.
- topic string
- The name of the Pub/Sub topic to publish job completion notification to. For example: projects/{project}/topics/{topic}.
- topic str
- The name of the Pub/Sub topic to publish job completion notification to. For example: projects/{project}/topics/{topic}.
- topic String
- The name of the Pub/Sub topic to publish job completion notification to. For example: projects/{project}/topics/{topic}.
Import
JobTemplate can be imported using any of these accepted formats:
projects/{{project}}/locations/{{location}}/jobTemplates/{{job_template_id}}
{{project}}/{{location}}/{{job_template_id}}
{{location}}/{{job_template_id}}
When using the pulumi import
command, JobTemplate can be imported using one of the formats above. For example:
$ pulumi import gcp:transcoder/jobTemplate:JobTemplate default projects/{{project}}/locations/{{location}}/jobTemplates/{{job_template_id}}
$ pulumi import gcp:transcoder/jobTemplate:JobTemplate default {{project}}/{{location}}/{{job_template_id}}
$ pulumi import gcp:transcoder/jobTemplate:JobTemplate default {{location}}/{{job_template_id}}
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- Google Cloud (GCP) Classic pulumi/pulumi-gcp
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
google-beta
Terraform Provider.