media/transcoder/api/Transcoder.Samples/CreateJobTemplate.cs (75 lines of code) (raw):
/*
* Copyright 2021 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// [START transcoder_create_job_template]
using Google.Api.Gax.ResourceNames;
using Google.Cloud.Video.Transcoder.V1;
public class CreateJobTemplateSample
{
public JobTemplate CreateJobTemplate(
string projectId, string location, string templateId)
{
// Create the client.
TranscoderServiceClient client = TranscoderServiceClient.Create();
// Build the parent location name.
LocationName parentLocation = new LocationName(projectId, location);
// Build the job template config.
VideoStream videoStream0 = new VideoStream
{
H264 = new VideoStream.Types.H264CodecSettings
{
BitrateBps = 550000,
FrameRate = 60,
HeightPixels = 360,
WidthPixels = 640
}
};
VideoStream videoStream1 = new VideoStream
{
H264 = new VideoStream.Types.H264CodecSettings
{
BitrateBps = 2500000,
FrameRate = 60,
HeightPixels = 720,
WidthPixels = 1280
}
};
AudioStream audioStream0 = new AudioStream
{
Codec = "aac",
BitrateBps = 64000
};
ElementaryStream elementaryStream0 = new ElementaryStream
{
Key = "video_stream0",
VideoStream = videoStream0
};
ElementaryStream elementaryStream1 = new ElementaryStream
{
Key = "video_stream1",
VideoStream = videoStream1
};
ElementaryStream elementaryStream2 = new ElementaryStream
{
Key = "audio_stream0",
AudioStream = audioStream0
};
MuxStream muxStream0 = new MuxStream
{
Key = "sd",
Container = "mp4",
ElementaryStreams = { "video_stream0", "audio_stream0" }
};
MuxStream muxStream1 = new MuxStream
{
Key = "hd",
Container = "mp4",
ElementaryStreams = { "video_stream1", "audio_stream0" }
};
JobConfig jobConfig = new JobConfig
{
ElementaryStreams = { elementaryStream0, elementaryStream1, elementaryStream2 },
MuxStreams = { muxStream0, muxStream1 }
};
JobTemplate newJobTemplate = new JobTemplate
{
Config = jobConfig
};
// Call the API.
JobTemplate jobTemplate = client.CreateJobTemplate(parentLocation, newJobTemplate, templateId);
return jobTemplate;
}
}
// [END transcoder_create_job_template]