使用预设创建转码作业。预设与作业模板类似,但包含系统定义的默认值,而不是用户定义的默认值。
深入探索
如需查看包含此代码示例的详细文档,请参阅以下内容:
代码示例
C#
在尝试此示例之前,请按照使用客户端库的 Transcoder API 快速入门中的 C# 设置说明进行操作。 如需了解详情,请参阅 Transcoder API C# API 参考文档。
using Google.Api.Gax.ResourceNames;
using Google.Cloud.Video.Transcoder.V1;
public class CreateJobFromPresetSample
{
public Job CreateJobFromPreset(
string projectId, string location, string inputUri, string outputUri, string preset)
{
// Create the client.
TranscoderServiceClient client = TranscoderServiceClient.Create();
// Build the parent location name.
LocationName parent = new LocationName(projectId, location);
// Build the job.
Job newJob = new Job
{
InputUri = inputUri,
OutputUri = outputUri,
TemplateId = preset
};
// Call the API.
Job job = client.CreateJob(parent, newJob);
// Return the result.
return job;
}
}
Go
在尝试此示例之前,请按照使用客户端库的 Transcoder API 快速入门中的 Go 设置说明进行操作。 如需了解详情,请参阅 Transcoder API Go API 参考文档。
import (
"context"
"fmt"
"io"
transcoder "cloud.google.com/go/video/transcoder/apiv1"
"cloud.google.com/go/video/transcoder/apiv1/transcoderpb"
)
// createJobFromPreset creates a job based on a given preset template. See
// https://cloud.google.com/transcoder/docs/how-to/jobs#create_jobs_presets
// for more information.
func createJobFromPreset(w io.Writer, projectID string, location string, inputURI string, outputURI string, preset string) error {
// projectID := "my-project-id"
// location := "us-central1"
// inputURI := "gs://my-bucket/my-video-file"
// outputURI := "gs://my-bucket/my-output-folder/"
// preset := "preset/web-hd"
ctx := context.Background()
client, err := transcoder.NewClient(ctx)
if err != nil {
return fmt.Errorf("NewClient: %v", err)
}
defer client.Close()
req := &transcoderpb.CreateJobRequest{
Parent: fmt.Sprintf("projects/%s/locations/%s", projectID, location),
Job: &transcoderpb.Job{
InputUri: inputURI,
OutputUri: outputURI,
JobConfig: &transcoderpb.Job_TemplateId{
TemplateId: preset,
},
},
}
// Creates the job, Jobs take a variable amount of time to run.
// You can query for the job state.
response, err := client.CreateJob(ctx, req)
if err != nil {
return fmt.Errorf("createJobFromPreset: %v", err)
}
fmt.Fprintf(w, "Job: %v", response.GetName())
return nil
}
Java
在尝试此示例之前,请按照使用客户端库的 Transcoder API 快速入门中的 Java 设置说明进行操作。 如需了解详情,请参阅 Transcoder API Java API 参考文档。
import com.google.cloud.video.transcoder.v1.CreateJobRequest;
import com.google.cloud.video.transcoder.v1.Job;
import com.google.cloud.video.transcoder.v1.LocationName;
import com.google.cloud.video.transcoder.v1.TranscoderServiceClient;
import java.io.IOException;
public class CreateJobFromPreset {
public static void main(String[] args) throws Exception {
// TODO(developer): Replace these variables before running the sample.
String projectId = "my-project-id";
String location = "us-central1";
String inputUri = "gs://my-bucket/my-video-file";
String outputUri = "gs://my-bucket/my-output-folder/";
String preset = "preset/web-hd";
createJobFromPreset(projectId, location, inputUri, outputUri, preset);
}
// Creates a job from a preset.
public static void createJobFromPreset(
String projectId, String location, String inputUri, String outputUri, String preset)
throws IOException {
// Initialize client that will be used to send requests. This client only needs to be created
// once, and can be reused for multiple requests.
try (TranscoderServiceClient transcoderServiceClient = TranscoderServiceClient.create()) {
var createJobRequest =
CreateJobRequest.newBuilder()
.setJob(
Job.newBuilder()
.setInputUri(inputUri)
.setOutputUri(outputUri)
.setTemplateId(preset)
.build())
.setParent(LocationName.of(projectId, location).toString())
.build();
// Send the job creation request and process the response.
Job job = transcoderServiceClient.createJob(createJobRequest);
System.out.println("Job: " + job.getName());
}
}
}
Node.js
在尝试此示例之前,请按照使用客户端库的 Transcoder API 快速入门中的 Node.js 设置说明进行操作。 如需了解详情,请参阅 Transcoder API Node.js API 参考文档。
/**
* TODO(developer): Uncomment these variables before running the sample.
*/
// projectId = 'my-project-id';
// location = 'us-central1';
// inputUri = 'gs://my-bucket/my-video-file';
// outputUri = 'gs://my-bucket/my-output-folder/';
// preset = 'preset/web-hd';
// Imports the Transcoder library
const {TranscoderServiceClient} =
require('@google-cloud/video-transcoder').v1;
// Instantiates a client
const transcoderServiceClient = new TranscoderServiceClient();
async function createJobFromPreset() {
// Construct request
const request = {
parent: transcoderServiceClient.locationPath(projectId, location),
job: {
inputUri: inputUri,
outputUri: outputUri,
templateId: preset,
},
};
// Run request
const [response] = await transcoderServiceClient.createJob(request);
console.log(`Job: ${response.name}`);
}
createJobFromPreset();
PHP
在尝试此示例之前,请按照使用客户端库的 Transcoder API 快速入门中的 PHP 设置说明进行操作。 如需了解详情,请参阅 Transcoder API PHP API 参考文档。
use Google\Cloud\Video\Transcoder\V1\TranscoderServiceClient;
use Google\Cloud\Video\Transcoder\V1\Job;
/**
* Creates a job based on a job preset.
*
* @param string $projectId The ID of your Google Cloud Platform project.
* @param string $location The location of the job.
* @param string $inputUri Uri of the video in the Cloud Storage bucket.
* @param string $outputUri Uri of the video output folder in the Cloud Storage bucket.
* @param string $preset The preset template (for example, "preset/web-hd").
*/
function create_job_from_preset($projectId, $location, $inputUri, $outputUri, $preset)
{
// Instantiate a client.
$transcoderServiceClient = new TranscoderServiceClient();
$formattedParent = $transcoderServiceClient->locationName($projectId, $location);
$job = new Job();
$job->setInputUri($inputUri);
$job->setOutputUri($outputUri);
$job->setTemplateId($preset);
$response = $transcoderServiceClient->createJob($formattedParent, $job);
// Print job name.
printf('Job: %s' . PHP_EOL, $response->getName());
}
Python
在尝试此示例之前,请按照使用客户端库的 Transcoder API 快速入门中的 Python 设置说明进行操作。 如需了解详情,请参阅 Transcoder API Python API 参考文档。
import argparse
from google.cloud.video import transcoder_v1
from google.cloud.video.transcoder_v1.services.transcoder_service import (
TranscoderServiceClient,
)
def create_job_from_preset(project_id, location, input_uri, output_uri, preset):
"""Creates a job based on a job preset.
Args:
project_id: The GCP project ID.
location: The location to start the job in.
input_uri: Uri of the video in the Cloud Storage bucket.
output_uri: Uri of the video output folder in the Cloud Storage bucket.
preset: The preset template (for example, 'preset/web-hd')."""
client = TranscoderServiceClient()
parent = f"projects/{project_id}/locations/{location}"
job = transcoder_v1.types.Job()
job.input_uri = input_uri
job.output_uri = output_uri
job.template_id = preset
response = client.create_job(parent=parent, job=job)
print(f"Job: {response.name}")
return response
Ruby
在尝试此示例之前,请按照使用客户端库的 Transcoder API 快速入门中的 Ruby 设置说明进行操作。 如需了解详情,请参阅 Transcoder API Ruby API 参考文档。
# project_id = "YOUR-GOOGLE-CLOUD-PROJECT" # (e.g. "my-project")
# location = "YOUR-JOB-LOCATION" # (e.g. "us-central1")
# input_uri = "YOUR-GCS-INPUT-VIDEO" # (e.g. "gs://my-bucket/my-video-file")
# output_uri = "YOUR-GCS-OUTPUT-FOLDER/" # (e.g. "gs://my-bucket/my-output-folder/")
# preset = "YOUR-JOB-PRESET" # (e.g. "preset/web-hd")
# Require the Transcoder client library.
require "google/cloud/video/transcoder"
# Create a Transcoder client.
client = Google::Cloud::Video::Transcoder.transcoder_service
# Build the resource name of the parent.
parent = client.location_path project: project_id, location: location
# Set the job fields.
new_job = {
input_uri: input_uri,
output_uri: output_uri,
template_id: preset
}
job = client.create_job parent: parent, job: new_job
# Print the job name.
puts "Job: #{job.name}"
后续步骤
如需搜索和过滤其他 Google Cloud 产品的代码示例,请参阅 Google Cloud 示例浏览器。