建立及管理工作

本頁面說明如何建立及管理 Transcoder API 工作。

工作是使用 Transcoder API 管理作業的基本單位。將工作提交至 Transcoder API 時,請指定工作處理的地理位置。您可以列出區域中的所有工作。

如要進一步瞭解如何處理地理區域的工作和相關 Google Cloud 資源,請參閱「區域」。

設定 Google Cloud 專案和驗證

如果您尚未建立Google Cloud 專案和憑證,請參閱「事前準備」一節。

建立工作

你可以使用預設工作範本或自訂工作範本建立工作。如要瞭解如何建立工作範本,請參閱建立及管理工作範本。 除了使用範本之外,您也可以建立工作,並直接在要求中傳送工作設定。

Transcoder API 支援兩種工作模式:互動式和批次。以下章節說明如何在互動模式中啟動工作。如要在批次模式中啟動工作,您必須設定額外欄位 (詳情請參閱批次工作)。

根據預設設定建立工作

如要建立工作,請使用 projects.locations.jobs.create 方法。這項工作會將儲存在 Cloud Storage 中的媒體檔案 (物件) 轉碼。

REST

使用任何要求資料之前,請先替換以下項目:

  • PROJECT_IDIAM 設定中列出的 Google Cloud 專案 ID。
  • LOCATION:工作執行的位置。使用支援的地區
    顯示地區
    • us-central1
    • us-west1
    • us-west2
    • us-east1
    • us-east4
    • southamerica-east1
    • northamerica-northeast1
    • asia-east1
    • asia-northeast1
    • asia-northeast3
    • asia-south1
    • asia-southeast1
    • australia-southeast1
    • europe-west1
    • europe-west2
    • europe-west4
    • me-west1
    • me-central1
    • me-central2
  • STORAGE_BUCKET_NAME:您建立的 Cloud Storage bucket 名稱。
  • STORAGE_INPUT_VIDEO:Cloud Storage 值區中要轉碼的影片名稱,例如 my-vid.mp4。這個欄位應考量您在值區中建立的任何資料夾 (例如 input/my-vid.mp4)。
  • STORAGE_OUTPUT_FOLDER:您要儲存編碼影片輸出的 Cloud Storage 資料夾名稱。

如要傳送要求,請展開以下其中一個選項:

您應該會收到如下的 JSON 回應:

 {   "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID",   "config": {     "inputs": [       {         "key": "input0",         "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO"       }     ],     "editList": [       {         "key": "atom0",         "inputs": [           "input0"         ],         "startTimeOffset": "0s"       }     ],     "elementaryStreams": [       {         "videoStream": {           "h264": {             "widthPixels": 640,             "heightPixels": 360,             "frameRate": 30,             "bitrateBps": 550000,             "pixelFormat": "yuv420p",             "rateControlMode": "vbr",             "crfLevel": 21,             "gopDuration": "3s",             "vbvSizeBits": 550000,             "vbvFullnessBits": 495000,             "entropyCoder": "cabac",             "bFrameCount": 3,             "aqStrength": 1,             "profile": "high",             "preset": "veryfast"           }         },         "key": "video-stream0"       },       {         "videoStream": {           "h264": {             "widthPixels": 1280,             "heightPixels": 720,             "frameRate": 30,             "bitrateBps": 2500000,             "pixelFormat": "yuv420p",             "rateControlMode": "vbr",             "crfLevel": 21,             "gopDuration": "3s",             "vbvSizeBits": 2500000,             "vbvFullnessBits": 2250000,             "entropyCoder": "cabac",             "bFrameCount": 3,             "aqStrength": 1,             "profile": "high",             "preset": "veryfast"           }         },         "key": "video-stream1"       },       {         "audioStream": {           "codec": "aac",           "bitrateBps": 64000,           "channelCount": 2,           "channelLayout": [             "fl",             "fr"           ],           "sampleRateHertz": 48000         },         "key": "audio-stream0"       }     ],     "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"         ]       },       {         "key": "media-sd",         "fileName": "media-sd.ts",         "container": "ts",         "elementaryStreams": [           "video-stream0",           "audio-stream0"         ]       },       {         "key": "media-hd",         "fileName": "media-hd.ts",         "container": "ts",         "elementaryStreams": [           "video-stream1",           "audio-stream0"         ]       },       {         "key": "video-only-sd",         "fileName": "video-only-sd.m4s",         "container": "fmp4",         "elementaryStreams": [           "video-stream0"         ]       },       {         "key": "video-only-hd",         "fileName": "video-only-hd.m4s",         "container": "fmp4",         "elementaryStreams": [           "video-stream1"         ]       },       {         "key": "audio-only",         "fileName": "audio-only.m4s",         "container": "fmp4",         "elementaryStreams": [           "audio-stream0"         ]       }     ],     "manifests": [       {         "fileName": "manifest.m3u8",         "type": "HLS",         "muxStreams": [           "media-sd",           "media-hd"         ]       },       {         "fileName": "manifest.mpd",         "type": "DASH",         "muxStreams": [           "video-only-sd",           "video-only-hd",           "audio-only"         ]       }     ],     "output": {       "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/"     }   },   "state": "PENDING",   "createTime": CREATE_TIME,   "ttlAfterCompletionDays": 30 } 

gcloud

使用下列任何指令資料之前,請先替換以下項目:

  • LOCATION:工作執行的位置。使用支援的地區
    顯示地區
    • us-central1
    • us-west1
    • us-west2
    • us-east1
    • us-east4
    • southamerica-east1
    • northamerica-northeast1
    • asia-east1
    • asia-northeast1
    • asia-northeast3
    • asia-south1
    • asia-southeast1
    • australia-southeast1
    • europe-west1
    • europe-west2
    • europe-west4
    • me-west1
    • me-central1
    • me-central2
  • STORAGE_BUCKET_NAME:您建立的 Cloud Storage bucket 名稱。
  • STORAGE_INPUT_VIDEO:Cloud Storage 值區中要轉碼的影片名稱,例如 my-vid.mp4。這個欄位應考量您在值區中建立的任何資料夾 (例如 input/my-vid.mp4)。
  • STORAGE_OUTPUT_FOLDER:您要儲存編碼影片輸出的 Cloud Storage 資料夾名稱。

執行下列指令:

Linux、macOS 或 Cloud Shell

gcloud transcoder jobs create \   --input-uri="gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO" \   --location=LOCATION \   --output-uri="gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/" \   --template-id="preset/web-hd"

Windows (PowerShell)

gcloud transcoder jobs create `   --input-uri="gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO" `   --location=LOCATION `   --output-uri="gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/" `   --template-id="preset/web-hd"

Windows (cmd.exe)

gcloud transcoder jobs create ^   --input-uri="gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO" ^   --location=LOCATION ^   --output-uri="gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/" ^   --template-id="preset/web-hd"

您應該會收到類似以下的回應:

回應

 {   "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID",   "config": {     "inputs": [       {         "key": "input0",         "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO"       }     ],     "editList": [       {         "key": "atom0",         "inputs": [           "input0"         ],         "startTimeOffset": "0s"       }     ],     "elementaryStreams": [       {         "videoStream": {           "h264": {             "widthPixels": 640,             "heightPixels": 360,             "frameRate": 30,             "bitrateBps": 550000,             "pixelFormat": "yuv420p",             "rateControlMode": "vbr",             "crfLevel": 21,             "gopDuration": "3s",             "vbvSizeBits": 550000,             "vbvFullnessBits": 495000,             "entropyCoder": "cabac",             "bFrameCount": 3,             "aqStrength": 1,             "profile": "high",             "preset": "veryfast"           }         },         "key": "video-stream0"       },       {         "videoStream": {           "h264": {             "widthPixels": 1280,             "heightPixels": 720,             "frameRate": 30,             "bitrateBps": 2500000,             "pixelFormat": "yuv420p",             "rateControlMode": "vbr",             "crfLevel": 21,             "gopDuration": "3s",             "vbvSizeBits": 2500000,             "vbvFullnessBits": 2250000,             "entropyCoder": "cabac",             "bFrameCount": 3,             "aqStrength": 1,             "profile": "high",             "preset": "veryfast"           }         },         "key": "video-stream1"       },       {         "audioStream": {           "codec": "aac",           "bitrateBps": 64000,           "channelCount": 2,           "channelLayout": [             "fl",             "fr"           ],           "sampleRateHertz": 48000         },         "key": "audio-stream0"       }     ],     "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"         ]       },       {         "key": "media-sd",         "fileName": "media-sd.ts",         "container": "ts",         "elementaryStreams": [           "video-stream0",           "audio-stream0"         ]       },       {         "key": "media-hd",         "fileName": "media-hd.ts",         "container": "ts",         "elementaryStreams": [           "video-stream1",           "audio-stream0"         ]       },       {         "key": "video-only-sd",         "fileName": "video-only-sd.m4s",         "container": "fmp4",         "elementaryStreams": [           "video-stream0"         ]       },       {         "key": "video-only-hd",         "fileName": "video-only-hd.m4s",         "container": "fmp4",         "elementaryStreams": [           "video-stream1"         ]       },       {         "key": "audio-only",         "fileName": "audio-only.m4s",         "container": "fmp4",         "elementaryStreams": [           "audio-stream0"         ]       }     ],     "manifests": [       {         "fileName": "manifest.m3u8",         "type": "HLS",         "muxStreams": [           "media-sd",           "media-hd"         ]       },       {         "fileName": "manifest.mpd",         "type": "DASH",         "muxStreams": [           "video-only-sd",           "video-only-hd",           "audio-only"         ]       }     ],     "output": {       "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/"     }   },   "state": "PENDING",   "createTime": CREATE_TIME,   "ttlAfterCompletionDays": 30 } 

C#

在試用這個範例之前,請先按照C#使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API C# API 參考說明文件

如要向 Transcoder 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

在試用這個範例之前,請先按照Go使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Go API 參考說明文件

如要向 Transcoder 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) 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: %w", 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: %w", err) 	}  	fmt.Fprintf(w, "Job: %v", response.GetName()) 	return nil } 

Java

在試用這個範例之前,請先按照Java使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Java API 參考說明文件

如要向 Transcoder 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/";     // See https://cloud.google.com/transcoder/docs/concepts/overview#job_template     // for information on this preset.     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()) {        CreateJobRequest 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

在試用這個範例之前,請先按照Node.js使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Node.js API 參考說明文件

如要向 Transcoder 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

在試用這個範例之前,請先按照PHP使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API PHP API 參考說明文件

如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

use Google\Cloud\Video\Transcoder\V1\Client\TranscoderServiceClient; use Google\Cloud\Video\Transcoder\V1\CreateJobRequest; 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);     $request = (new CreateJobRequest())         ->setParent($formattedParent)         ->setJob($job);      $response = $transcoderServiceClient->createJob($request);      // Print job name.     printf('Job: %s' . PHP_EOL, $response->getName()); }

Python

在試用這個範例之前,請先按照Python使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Python API 參考說明文件

如要向 Transcoder 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: str,     location: str,     input_uri: str,     output_uri: str,     preset: str, ) -> transcoder_v1.types.resources.Job:     """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').      Returns:         The job resource.     """      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

在試用這個範例之前,請先按照Ruby使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Ruby API 參考說明文件

如要向 Transcoder 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}"

根據工作範本建立工作

如果您在某個位置建立至少一個工作範本,在該位置傳送要求來建立 Transcoder API 工作時,可以指定工作範本。

如要建立工作,請使用 projects.locations.jobs.create 方法。

REST

使用任何要求資料之前,請先替換以下項目:

  • PROJECT_IDIAM 設定中列出的 Google Cloud 專案 ID。
  • LOCATION:工作執行的位置。使用支援的地區
    顯示地區
    • us-central1
    • us-west1
    • us-west2
    • us-east1
    • us-east4
    • southamerica-east1
    • northamerica-northeast1
    • asia-east1
    • asia-northeast1
    • asia-northeast3
    • asia-south1
    • asia-southeast1
    • australia-southeast1
    • europe-west1
    • europe-west2
    • europe-west4
    • me-west1
    • me-central1
    • me-central2
  • STORAGE_BUCKET_NAME:您建立的 Cloud Storage bucket 名稱。
  • STORAGE_INPUT_VIDEO:Cloud Storage 值區中要轉碼的影片名稱,例如 my-vid.mp4。這個欄位應考量您在 bucket 中建立的任何資料夾 (例如 input/my-vid.mp4)。
  • STORAGE_OUTPUT_FOLDER:您要儲存編碼影片輸出的 Cloud Storage 資料夾名稱。
  • TEMPLATE_ID:您建立的工作範本 ID。 如果您未指定自訂工作範本,Transcoder API 會使用preset/web-hd工作範本。

如要傳送要求,請展開以下其中一個選項:

您應該會收到如下的 JSON 回應:

 {   "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID",   "config": {     "inputs": [       {         "key": "input0",         "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO"       }     ],     "editList": [       {         "key": "atom0",         "inputs": [           "input0"         ],         "startTimeOffset": "0s"       }     ],     "elementaryStreams": [       {         "videoStream": {           "h264": {             "widthPixels": 640,             "heightPixels": 360,             "frameRate": 60,             "bitrateBps": 550000,             "pixelFormat": "yuv420p",             "rateControlMode": "vbr",             "crfLevel": 21,             "gopDuration": "3s",             "vbvSizeBits": 550000,             "vbvFullnessBits": 495000,             "entropyCoder": "cabac",             "profile": "high",             "preset": "veryfast"           }         },         "key": "video-stream0"       },       {         "videoStream": {           "h264": {             "widthPixels": 1280,             "heightPixels": 720,             "frameRate": 60,             "bitrateBps": 2500000,             "pixelFormat": "yuv420p",             "rateControlMode": "vbr",             "crfLevel": 21,             "gopDuration": "3s",             "vbvSizeBits": 2500000,             "vbvFullnessBits": 2250000,             "entropyCoder": "cabac",             "profile": "high",             "preset": "veryfast"           }         },         "key": "video-stream1"       },       {         "audioStream": {           "codec": "aac",           "bitrateBps": 64000,           "channelCount": 2,           "channelLayout": [             "fl",             "fr"           ],           "sampleRateHertz": 48000         },         "key": "audio-stream0"       }     ],     "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"         ]       }     ],     "output": {       "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/"     }   },   "state": "PENDING",   "createTime": CREATE_TIME,   "ttlAfterCompletionDays": 30 } 

gcloud

  1. gcloud 指令進行下列替換:
  • STORAGE_BUCKET_NAME:您建立的 Cloud Storage bucket 名稱。
  • STORAGE_INPUT_VIDEO:Cloud Storage 值區中要轉碼的影片名稱,例如 my-vid.mp4。這個欄位應將您在 bucket 中建立的任何資料夾納入考量 (例如 input/my-vid.mp4)。
  • LOCATION:工作執行的位置。使用支援的地區
    顯示地區
    • us-central1
    • us-west1
    • us-west2
    • us-east1
    • us-east4
    • southamerica-east1
    • northamerica-northeast1
    • asia-east1
    • asia-northeast1
    • asia-northeast3
    • asia-south1
    • asia-southeast1
    • australia-southeast1
    • europe-west1
    • europe-west2
    • europe-west4
    • me-west1
    • me-central1
    • me-central2
  • STORAGE_OUTPUT_FOLDER:您要儲存編碼影片輸出的 Cloud Storage 資料夾名稱。
  • TEMPLATE_ID:您建立的工作範本 ID。如果您未指定自訂工作範本,Transcoder API 會使用 preset/web-hd 工作範本。
  • 請執行下列指令:
    gcloud transcoder jobs create \   --input-uri="gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO" \   --location=LOCATION \   --output-uri="gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/" \   --template-id="TEMPLATE_ID"
    畫面會顯示類似以下的回應:
     {   "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID",   "config": {     "inputs": [       {         "key": "input0",         "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO"       }     ],     "editList": [       {         "key": "atom0",         "inputs": [           "input0"         ],         "startTimeOffset": "0s"       }     ],     "elementaryStreams": [       {         "videoStream": {           "h264": {             "widthPixels": 640,             "heightPixels": 360,             "frameRate": 60,             "bitrateBps": 550000,             "pixelFormat": "yuv420p",             "rateControlMode": "vbr",             "crfLevel": 21,             "gopDuration": "3s",             "vbvSizeBits": 550000,             "vbvFullnessBits": 495000,             "entropyCoder": "cabac",             "profile": "high",             "preset": "veryfast"           }         },         "key": "video-stream0"       },       {         "videoStream": {           "h264": {             "widthPixels": 1280,             "heightPixels": 720,             "frameRate": 60,             "bitrateBps": 2500000,             "pixelFormat": "yuv420p",             "rateControlMode": "vbr",             "crfLevel": 21,             "gopDuration": "3s",             "vbvSizeBits": 2500000,             "vbvFullnessBits": 2250000,             "entropyCoder": "cabac",             "profile": "high",             "preset": "veryfast"           }         },         "key": "video-stream1"       },       {         "audioStream": {           "codec": "aac",           "bitrateBps": 64000,           "channelCount": 2,           "channelLayout": [             "fl",             "fr"           ],           "sampleRateHertz": 48000         },         "key": "audio-stream0"       }     ],     "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"         ]       }     ],     "output": {       "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/"     }   },   "state": "PENDING",   "createTime": CREATE_TIME,   "ttlAfterCompletionDays": 30 } 
  • C#

    在試用這個範例之前,請先按照C#使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API C# API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

     using Google.Api.Gax.ResourceNames; using Google.Cloud.Video.Transcoder.V1;  public class CreateJobFromTemplateSample {     public Job CreateJobFromTemplate(         string projectId, string location, string inputUri, string outputUri, string templateId)     {         // 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 = templateId         };          // Call the API.         Job job = client.CreateJob(parent, newJob);          // Return the result.         return job;     } }

    Go

    在試用這個範例之前,請先按照Go使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Go API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

    import ( 	"context" 	"fmt" 	"io"  	transcoder "cloud.google.com/go/video/transcoder/apiv1" 	"cloud.google.com/go/video/transcoder/apiv1/transcoderpb" )  // createJobFromTemplate creates a job from a template. See // https://cloud.google.com/transcoder/docs/how-to/jobs#create_jobs_templates // for more information. func createJobFromTemplate(w io.Writer, projectID string, location string, inputURI string, outputURI string, templateID string) error { 	// projectID := "my-project-id" 	// location := "us-central1" 	// inputURI := "gs://my-bucket/my-video-file" 	// outputURI := "gs://my-bucket/my-output-folder/" 	// templateID := "my-job-template" 	ctx := context.Background() 	client, err := transcoder.NewClient(ctx) 	if err != nil { 		return fmt.Errorf("NewClient: %w", 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: templateID, 			}, 		}, 	} 	// 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("createJobFromTemplate: %w", err) 	}  	fmt.Fprintf(w, "Job: %v", response.GetName()) 	return nil } 

    Java

    在試用這個範例之前,請先按照Java使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Java API 參考說明文件

    如要向 Transcoder 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 CreateJobFromTemplate {    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 templateId = "my-job-template";      createJobFromTemplate(projectId, location, inputUri, outputUri, templateId);   }    // Creates a job from a job template.   public static void createJobFromTemplate(       String projectId, String location, String inputUri, String outputUri, String templateId)       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()) {        CreateJobRequest createJobRequest =           CreateJobRequest.newBuilder()               .setJob(                   Job.newBuilder()                       .setInputUri(inputUri)                       .setOutputUri(outputUri)                       .setTemplateId(templateId)                       .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

    在試用這個範例之前,請先按照Node.js使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Node.js API 參考說明文件

    如要向 Transcoder 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/'; // templateId = 'my-job-template';  // Imports the Transcoder library const {TranscoderServiceClient} =   require('@google-cloud/video-transcoder').v1;  // Instantiates a client const transcoderServiceClient = new TranscoderServiceClient();  async function createJobFromTemplate() {   // Construct request   const request = {     parent: transcoderServiceClient.locationPath(projectId, location),     job: {       inputUri: inputUri,       outputUri: outputUri,       templateId: templateId,     },   };    // Run request   const [response] = await transcoderServiceClient.createJob(request);   console.log(`Job: ${response.name}`); }  createJobFromTemplate();

    PHP

    在試用這個範例之前,請先按照PHP使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API PHP API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

    use Google\Cloud\Video\Transcoder\V1\Client\TranscoderServiceClient; use Google\Cloud\Video\Transcoder\V1\CreateJobRequest; use Google\Cloud\Video\Transcoder\V1\Job;  /**  * Creates a job based on a job template.  *  * @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 $templateId The job template ID.  */ function create_job_from_template($projectId, $location, $inputUri, $outputUri, $templateId) {     // Instantiate a client.     $transcoderServiceClient = new TranscoderServiceClient();      $formattedParent = $transcoderServiceClient->locationName($projectId, $location);     $job = new Job();     $job->setInputUri($inputUri);     $job->setOutputUri($outputUri);     $job->setTemplateId($templateId);     $request = (new CreateJobRequest())         ->setParent($formattedParent)         ->setJob($job);      $response = $transcoderServiceClient->createJob($request);      // Print job name.     printf('Job: %s' . PHP_EOL, $response->getName()); }

    Python

    在試用這個範例之前,請先按照Python使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Python API 參考說明文件

    如要向 Transcoder 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_template(     project_id: str,     location: str,     input_uri: str,     output_uri: str,     template_id: str, ) -> transcoder_v1.types.resources.Job:     """Creates a job based on a job template.      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.         template_id: The user-defined template ID.      Returns:         The job resource.     """      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 = template_id      response = client.create_job(parent=parent, job=job)     print(f"Job: {response.name}")     return response  

    Ruby

    在試用這個範例之前,請先按照Ruby使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Ruby API 參考說明文件

    如要向 Transcoder 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/") # template_id = "YOUR-JOB-TEMPLATE"  # (e.g. "my-job-template")  # 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: template_id }  job = client.create_job parent: parent, job: new_job  # Print the job name. puts "Job: #{job.name}"

    這項回應與使用預設範本建立工作時傳回的回應類似。

    使用臨時設定建立工作

    您可以在建立工作的要求中,傳送工作的臨時設定。

    如要建立工作,請使用 projects.locations.jobs.create 方法。

    REST

    使用任何要求資料之前,請先替換以下項目:

    • PROJECT_IDIAM 設定中列出的 Google Cloud 專案 ID。
    • LOCATION:工作執行的位置。使用支援的地區
      顯示地區
      • us-central1
      • us-west1
      • us-west2
      • us-east1
      • us-east4
      • southamerica-east1
      • northamerica-northeast1
      • asia-east1
      • asia-northeast1
      • asia-northeast3
      • asia-south1
      • asia-southeast1
      • australia-southeast1
      • europe-west1
      • europe-west2
      • europe-west4
      • me-west1
      • me-central1
      • me-central2
    • STORAGE_BUCKET_NAME:您建立的 Cloud Storage bucket 名稱。
    • STORAGE_INPUT_VIDEO:Cloud Storage 值區中要轉碼的影片名稱,例如 my-vid.mp4。這個欄位應考量您在 bucket 中建立的任何資料夾 (例如 input/my-vid.mp4)。
    • STORAGE_OUTPUT_FOLDER:您要儲存編碼影片輸出的 Cloud Storage 資料夾名稱。

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

     {   "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID",   "config": {     "inputs": [       {         "key": "input0",         "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO"       }     ],     "editList": [       {         "key": "atom0",         "inputs": [           "input0"         ],         "startTimeOffset": "0s"       }     ],     "elementaryStreams": [       {         "videoStream": {           "h264": {             "widthPixels": 640,             "heightPixels": 360,             "frameRate": 60,             "bitrateBps": 550000,             "pixelFormat": "yuv420p",             "rateControlMode": "vbr",             "crfLevel": 21,             "gopDuration": "3s",             "vbvSizeBits": 550000,             "vbvFullnessBits": 495000,             "entropyCoder": "cabac",             "profile": "high",             "preset": "veryfast"           }         },         "key": "video-stream0"       },       {         "videoStream": {           "h264": {             "widthPixels": 1280,             "heightPixels": 720,             "frameRate": 60,             "bitrateBps": 2500000,             "pixelFormat": "yuv420p",             "rateControlMode": "vbr",             "crfLevel": 21,             "gopDuration": "3s",             "vbvSizeBits": 2500000,             "vbvFullnessBits": 2250000,             "entropyCoder": "cabac",             "profile": "high",             "preset": "veryfast"           }         },         "key": "video-stream1"       },       {         "audioStream": {           "codec": "aac",           "bitrateBps": 64000,           "channelCount": 2,           "channelLayout": [             "fl",             "fr"           ],           "sampleRateHertz": 48000         },         "key": "audio-stream0"       }     ],     "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"         ]       }     ],     "output": {       "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/"     }   },   "state": "PENDING",   "createTime": CREATE_TIME,   "ttlAfterCompletionDays": 30 } 

    gcloud

    使用下列任何指令資料之前,請先替換以下項目:

    • LOCATION:工作執行的位置。使用支援的地區
      顯示地區
      • us-central1
      • us-west1
      • us-west2
      • us-east1
      • us-east4
      • southamerica-east1
      • northamerica-northeast1
      • asia-east1
      • asia-northeast1
      • asia-northeast3
      • asia-south1
      • asia-southeast1
      • australia-southeast1
      • europe-west1
      • europe-west2
      • europe-west4
      • me-west1
      • me-central1
      • me-central2
    • STORAGE_BUCKET_NAME:您建立的 Cloud Storage bucket 名稱。
    • STORAGE_INPUT_VIDEO:Cloud Storage 值區中要轉碼的影片名稱,例如 my-vid.mp4。這個欄位應考量您在 bucket 中建立的任何資料夾 (例如 input/my-vid.mp4)。
    • STORAGE_OUTPUT_FOLDER:您要儲存編碼影片輸出的 Cloud Storage 資料夾名稱。

    將下列內容儲存到名為 request.json 的檔案:

    {   "config": {     "elementaryStreams": [       {         "key": "video-stream0",         "videoStream": {           "h264": {             "heightPixels": 360,             "widthPixels": 640,             "bitrateBps": 550000,             "frameRate": 60           }         }       },       {         "key": "video-stream1",         "videoStream": {           "h264": {             "heightPixels": 720,             "widthPixels": 1280,             "bitrateBps": 2500000,             "frameRate": 60           }         }       },       {         "key": "audio-stream0",         "audioStream": {           "codec": "aac",           "bitrateBps": 64000         }       }     ],     "muxStreams": [       {         "key": "sd",         "container": "mp4",         "elementaryStreams": [           "video-stream0",           "audio-stream0"         ]       },       {         "key": "hd",         "container": "mp4",         "elementaryStreams": [           "video-stream1",           "audio-stream0"         ]       }     ]   } }

    執行下列指令:

    Linux、macOS 或 Cloud Shell

    gcloud transcoder jobs create \   --input-uri="gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO" \   --location=LOCATION \   --output-uri="gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/" \   --file="request.json"

    Windows (PowerShell)

    gcloud transcoder jobs create `   --input-uri="gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO" `   --location=LOCATION `   --output-uri="gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/" `   --file="request.json"

    Windows (cmd.exe)

    gcloud transcoder jobs create ^   --input-uri="gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO" ^   --location=LOCATION ^   --output-uri="gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/" ^   --file="request.json"

    您應該會收到類似以下的回應:

    回應

     {   "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID",   "config": {     "inputs": [       {         "key": "input0",         "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO"       }     ],     "editList": [       {         "key": "atom0",         "inputs": [           "input0"         ],         "startTimeOffset": "0s"       }     ],     "elementaryStreams": [       {         "videoStream": {           "h264": {             "widthPixels": 640,             "heightPixels": 360,             "frameRate": 60,             "bitrateBps": 550000,             "pixelFormat": "yuv420p",             "rateControlMode": "vbr",             "crfLevel": 21,             "gopDuration": "3s",             "vbvSizeBits": 550000,             "vbvFullnessBits": 495000,             "entropyCoder": "cabac",             "profile": "high",             "preset": "veryfast"           }         },         "key": "video-stream0"       },       {         "videoStream": {           "h264": {             "widthPixels": 1280,             "heightPixels": 720,             "frameRate": 60,             "bitrateBps": 2500000,             "pixelFormat": "yuv420p",             "rateControlMode": "vbr",             "crfLevel": 21,             "gopDuration": "3s",             "vbvSizeBits": 2500000,             "vbvFullnessBits": 2250000,             "entropyCoder": "cabac",             "profile": "high",             "preset": "veryfast"           }         },         "key": "video-stream1"       },       {         "audioStream": {           "codec": "aac",           "bitrateBps": 64000,           "channelCount": 2,           "channelLayout": [             "fl",             "fr"           ],           "sampleRateHertz": 48000         },         "key": "audio-stream0"       }     ],     "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"         ]       }     ],     "output": {       "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/"     }   },   "state": "PENDING",   "createTime": CREATE_TIME,   "ttlAfterCompletionDays": 30 } 

    C#

    在試用這個範例之前,請先按照C#使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API C# API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

     using Google.Api.Gax.ResourceNames; using Google.Cloud.Video.Transcoder.V1;  public class CreateJobFromAdHocSample {     public Job CreateJobFromAdHoc(         string projectId, string location, string inputUri, string outputUri)     {         // Create the client.         TranscoderServiceClient client = TranscoderServiceClient.Create();          // Build the parent location name.         LocationName parent = new LocationName(projectId, location);          // Build the job 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" }          };          Input input = new Input         {             Key = "input0",             Uri = inputUri         };          Output output = new Output         {             Uri = outputUri         };          JobConfig jobConfig = new JobConfig         {             Inputs = { input },             Output = output,             ElementaryStreams = { elementaryStream0, elementaryStream1, elementaryStream2 },             MuxStreams = { muxStream0, muxStream1 }         };          // Build the job.         Job newJob = new Job         {             Config = jobConfig,             InputUri = inputUri,             OutputUri = outputUri         };          // Call the API.         Job job = client.CreateJob(parent, newJob);          // Return the result.         return job;     } }

    Go

    在試用這個範例之前,請先按照Go使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Go API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

    import ( 	"context" 	"fmt" 	"io"  	transcoder "cloud.google.com/go/video/transcoder/apiv1" 	"cloud.google.com/go/video/transcoder/apiv1/transcoderpb" )  // createJobFromAdHoc creates a job based on a given configuration. See // https://cloud.google.com/transcoder/docs/how-to/jobs#create_jobs_ad_hoc // for more information. func createJobFromAdHoc(w io.Writer, projectID string, location string, inputURI string, outputURI string) error { 	// projectID := "my-project-id" 	// location := "us-central1" 	// inputURI := "gs://my-bucket/my-video-file" 	// outputURI := "gs://my-bucket/my-output-folder/" 	ctx := context.Background() 	client, err := transcoder.NewClient(ctx) 	if err != nil { 		return fmt.Errorf("NewClient: %w", 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_Config{ 				Config: &transcoderpb.JobConfig{ 					ElementaryStreams: []*transcoderpb.ElementaryStream{ 						{ 							Key: "video_stream0", 							ElementaryStream: &transcoderpb.ElementaryStream_VideoStream{ 								VideoStream: &transcoderpb.VideoStream{ 									CodecSettings: &transcoderpb.VideoStream_H264{ 										H264: &transcoderpb.VideoStream_H264CodecSettings{ 											BitrateBps:   550000, 											FrameRate:    60, 											HeightPixels: 360, 											WidthPixels:  640, 										}, 									}, 								}, 							}, 						}, 						{ 							Key: "video_stream1", 							ElementaryStream: &transcoderpb.ElementaryStream_VideoStream{ 								VideoStream: &transcoderpb.VideoStream{ 									CodecSettings: &transcoderpb.VideoStream_H264{ 										H264: &transcoderpb.VideoStream_H264CodecSettings{ 											BitrateBps:   2500000, 											FrameRate:    60, 											HeightPixels: 720, 											WidthPixels:  1280, 										}, 									}, 								}, 							}, 						}, 						{ 							Key: "audio_stream0", 							ElementaryStream: &transcoderpb.ElementaryStream_AudioStream{ 								AudioStream: &transcoderpb.AudioStream{ 									Codec:      "aac", 									BitrateBps: 64000, 								}, 							}, 						}, 					}, 					MuxStreams: []*transcoderpb.MuxStream{ 						{ 							Key:               "sd", 							Container:         "mp4", 							ElementaryStreams: []string{"video_stream0", "audio_stream0"}, 						}, 						{ 							Key:               "hd", 							Container:         "mp4", 							ElementaryStreams: []string{"video_stream1", "audio_stream0"}, 						}, 					}, 				}, 			}, 		}, 	} 	// 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("createJobFromAdHoc: %w", err) 	}  	fmt.Fprintf(w, "Job: %v", response.GetName()) 	return nil } 

    Java

    在試用這個範例之前,請先按照Java使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Java API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

     import com.google.cloud.video.transcoder.v1.AudioStream; import com.google.cloud.video.transcoder.v1.CreateJobRequest; import com.google.cloud.video.transcoder.v1.ElementaryStream; import com.google.cloud.video.transcoder.v1.Input; import com.google.cloud.video.transcoder.v1.Job; import com.google.cloud.video.transcoder.v1.JobConfig; import com.google.cloud.video.transcoder.v1.LocationName; import com.google.cloud.video.transcoder.v1.MuxStream; import com.google.cloud.video.transcoder.v1.Output; import com.google.cloud.video.transcoder.v1.TranscoderServiceClient; import com.google.cloud.video.transcoder.v1.VideoStream; import com.google.cloud.video.transcoder.v1.VideoStream.H264CodecSettings; import java.io.IOException;  public class CreateJobFromAdHoc {    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/";      createJobFromAdHoc(projectId, location, inputUri, outputUri);   }    // Creates a job from an ad-hoc configuration.   public static void createJobFromAdHoc(       String projectId, String location, String inputUri, String outputUri) 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()) {        VideoStream videoStream0 =           VideoStream.newBuilder()               .setH264(                   H264CodecSettings.newBuilder()                       .setBitrateBps(550000)                       .setFrameRate(60)                       .setHeightPixels(360)                       .setWidthPixels(640))               .build();        VideoStream videoStream1 =           VideoStream.newBuilder()               .setH264(                   H264CodecSettings.newBuilder()                       .setBitrateBps(2500000)                       .setFrameRate(60)                       .setHeightPixels(720)                       .setWidthPixels(1280))               .build();        AudioStream audioStream0 =           AudioStream.newBuilder().setCodec("aac").setBitrateBps(64000).build();        JobConfig config =           JobConfig.newBuilder()               .addInputs(Input.newBuilder().setKey("input0").setUri(inputUri))               .setOutput(Output.newBuilder().setUri(outputUri))               .addElementaryStreams(                   ElementaryStream.newBuilder()                       .setKey("video_stream0")                       .setVideoStream(videoStream0))               .addElementaryStreams(                   ElementaryStream.newBuilder()                       .setKey("video_stream1")                       .setVideoStream(videoStream1))               .addElementaryStreams(                   ElementaryStream.newBuilder()                       .setKey("audio_stream0")                       .setAudioStream(audioStream0))               .addMuxStreams(                   MuxStream.newBuilder()                       .setKey("sd")                       .setContainer("mp4")                       .addElementaryStreams("video_stream0")                       .addElementaryStreams("audio_stream0")                       .build())               .addMuxStreams(                   MuxStream.newBuilder()                       .setKey("hd")                       .setContainer("mp4")                       .addElementaryStreams("video_stream1")                       .addElementaryStreams("audio_stream0")                       .build())               .build();        CreateJobRequest createJobRequest =           CreateJobRequest.newBuilder()               .setJob(                   Job.newBuilder()                       .setInputUri(inputUri)                       .setOutputUri(outputUri)                       .setConfig(config)                       .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

    在試用這個範例之前,請先按照Node.js使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Node.js API 參考說明文件

    如要向 Transcoder 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/';  // Imports the Transcoder library const {TranscoderServiceClient} =   require('@google-cloud/video-transcoder').v1;  // Instantiates a client const transcoderServiceClient = new TranscoderServiceClient();  async function createJobFromAdHoc() {   // Construct request   const request = {     parent: transcoderServiceClient.locationPath(projectId, location),     job: {       inputUri: inputUri,       outputUri: outputUri,       config: {         elementaryStreams: [           {             key: 'video-stream0',             videoStream: {               h264: {                 heightPixels: 360,                 widthPixels: 640,                 bitrateBps: 550000,                 frameRate: 60,               },             },           },           {             key: 'video-stream1',             videoStream: {               h264: {                 heightPixels: 720,                 widthPixels: 1280,                 bitrateBps: 2500000,                 frameRate: 60,               },             },           },           {             key: 'audio-stream0',             audioStream: {               codec: 'aac',               bitrateBps: 64000,             },           },         ],         muxStreams: [           {             key: 'sd',             container: 'mp4',             elementaryStreams: ['video-stream0', 'audio-stream0'],           },           {             key: 'hd',             container: 'mp4',             elementaryStreams: ['video-stream1', 'audio-stream0'],           },         ],       },     },   };    // Run request   const [response] = await transcoderServiceClient.createJob(request);   console.log(`Job: ${response.name}`); }  createJobFromAdHoc();

    PHP

    在試用這個範例之前,請先按照PHP使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API PHP API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

    use Google\Cloud\Video\Transcoder\V1\AudioStream; use Google\Cloud\Video\Transcoder\V1\Client\TranscoderServiceClient; use Google\Cloud\Video\Transcoder\V1\CreateJobRequest; use Google\Cloud\Video\Transcoder\V1\ElementaryStream; use Google\Cloud\Video\Transcoder\V1\Job; use Google\Cloud\Video\Transcoder\V1\JobConfig; use Google\Cloud\Video\Transcoder\V1\MuxStream; use Google\Cloud\Video\Transcoder\V1\VideoStream;  /**  * Creates a job based on an ad-hoc job configuration.  *  * @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.  */ function create_job_from_ad_hoc($projectId, $location, $inputUri, $outputUri) {     // Instantiate a client.     $transcoderServiceClient = new TranscoderServiceClient();      $formattedParent = $transcoderServiceClient->locationName($projectId, $location);     $jobConfig =         (new JobConfig())->setElementaryStreams([             (new ElementaryStream())                 ->setKey('video-stream0')                 ->setVideoStream(                     (new VideoStream())                         ->setH264(                             (new VideoStream\H264CodecSettings())                                 ->setBitrateBps(550000)                                 ->setFrameRate(60)                                 ->setHeightPixels(360)                                 ->setWidthPixels(640)                         )                 ),             (new ElementaryStream())                 ->setKey('video-stream1')                 ->setVideoStream(                     (new VideoStream())                         ->setH264(                             (new VideoStream\H264CodecSettings())                                 ->setBitrateBps(2500000)                                 ->setFrameRate(60)                                 ->setHeightPixels(720)                                 ->setWidthPixels(1280)                         )                 ),             (new ElementaryStream())                 ->setKey('audio-stream0')                 ->setAudioStream(                     (new AudioStream())                         ->setCodec('aac')                         ->setBitrateBps(64000)                 )             ])->setMuxStreams([                 (new MuxStream())                     ->setKey('sd')                     ->setContainer('mp4')                     ->setElementaryStreams(['video-stream0', 'audio-stream0']),                 (new MuxStream())                     ->setKey('hd')                     ->setContainer('mp4')                     ->setElementaryStreams(['video-stream1', 'audio-stream0'])         ]);      $job = (new Job())         ->setInputUri($inputUri)         ->setOutputUri($outputUri)         ->setConfig($jobConfig);     $request = (new CreateJobRequest())         ->setParent($formattedParent)         ->setJob($job);      $response = $transcoderServiceClient->createJob($request);      // Print job name.     printf('Job: %s' . PHP_EOL, $response->getName()); }

    Python

    在試用這個範例之前,請先按照Python使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Python API 參考說明文件

    如要向 Transcoder 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_ad_hoc(     project_id: str,     location: str,     input_uri: str,     output_uri: str, ) -> transcoder_v1.types.resources.Job:     """Creates a job based on an ad-hoc job configuration.      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.      Returns:         The job resource.     """      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.config = transcoder_v1.types.JobConfig(         elementary_streams=[             transcoder_v1.types.ElementaryStream(                 key="video-stream0",                 video_stream=transcoder_v1.types.VideoStream(                     h264=transcoder_v1.types.VideoStream.H264CodecSettings(                         height_pixels=360,                         width_pixels=640,                         bitrate_bps=550000,                         frame_rate=60,                     ),                 ),             ),             transcoder_v1.types.ElementaryStream(                 key="video-stream1",                 video_stream=transcoder_v1.types.VideoStream(                     h264=transcoder_v1.types.VideoStream.H264CodecSettings(                         height_pixels=720,                         width_pixels=1280,                         bitrate_bps=2500000,                         frame_rate=60,                     ),                 ),             ),             transcoder_v1.types.ElementaryStream(                 key="audio-stream0",                 audio_stream=transcoder_v1.types.AudioStream(                     codec="aac", bitrate_bps=64000                 ),             ),         ],         mux_streams=[             transcoder_v1.types.MuxStream(                 key="sd",                 container="mp4",                 elementary_streams=["video-stream0", "audio-stream0"],             ),             transcoder_v1.types.MuxStream(                 key="hd",                 container="mp4",                 elementary_streams=["video-stream1", "audio-stream0"],             ),         ],     )     response = client.create_job(parent=parent, job=job)     print(f"Job: {response.name}")     return response  

    Ruby

    在試用這個範例之前,請先按照Ruby使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Ruby API 參考說明文件

    如要向 Transcoder 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/")  # 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  # Build the job config. new_job = {   input_uri: input_uri,   output_uri: output_uri,   config: {     elementary_streams: [       {         key: "video-stream0",         video_stream: {           h264: {             height_pixels: 360,             width_pixels: 640,             bitrate_bps: 550_000,             frame_rate: 60           }         }       },       {         key: "video-stream1",         video_stream: {           h264: {             height_pixels: 720,             width_pixels: 1280,             bitrate_bps: 2_500_000,             frame_rate: 60           }         }       },       {         key: "audio-stream0",         audio_stream: {           codec: "aac",           bitrate_bps: 64_000         }       }     ],     mux_streams: [       {         key: "sd",         container: "mp4",         elementary_streams: [           "video-stream0",           "audio-stream0"         ]       },       {         key: "hd",         container: "mp4",         elementary_streams: [           "video-stream1",           "audio-stream0"         ]       }     ]   } }  job = client.create_job parent: parent, job: new_job  # Print the job name. puts "Job: #{job.name}"

    取得工作詳細資料

    如要查看工作的詳細資料或狀態,請使用 projects.locations.jobs.get 方法。

    REST

    使用任何要求資料之前,請先替換以下項目:

  • JOB_ID:您建立的工作 ID。
  • PROJECT_ID:您的 Google Cloud 專案 ID。
  • LOCATION:工作地點。使用支援的地區
    顯示地區
    • us-central1
    • us-west1
    • us-west2
    • us-east1
    • us-east4
    • southamerica-east1
    • northamerica-northeast1
    • asia-east1
    • asia-northeast1
    • asia-northeast3
    • asia-south1
    • asia-southeast1
    • australia-southeast1
    • europe-west1
    • europe-west2
    • europe-west4
    • me-west1
    • me-central1
    • me-central2
  • 如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

     {   "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID",   "config": {     "inputs": [       {         "key": "input0",         "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO"       }     ],     "editList": [       {         "key": "atom0",         "inputs": [           "input0"         ],         "startTimeOffset": "0s"       }     ],     "elementaryStreams": [       {         "videoStream": {           "h264": {             "widthPixels": 640,             "heightPixels": 360,             "frameRate": 60,             "bitrateBps": 550000,             "pixelFormat": "yuv420p",             "rateControlMode": "vbr",             "crfLevel": 21,             "gopDuration": "3s",             "vbvSizeBits": 550000,             "vbvFullnessBits": 495000,             "entropyCoder": "cabac",             "profile": "high",             "preset": "veryfast"           }         },         "key": "video-stream0"       },       {         "videoStream": {           "h264": {             "widthPixels": 1280,             "heightPixels": 720,             "frameRate": 60,             "bitrateBps": 2500000,             "pixelFormat": "yuv420p",             "rateControlMode": "vbr",             "crfLevel": 21,             "gopDuration": "3s",             "vbvSizeBits": 2500000,             "vbvFullnessBits": 2250000,             "entropyCoder": "cabac",             "profile": "high",             "preset": "veryfast"           }         },         "key": "video-stream1"       },       {         "audioStream": {           "codec": "aac",           "bitrateBps": 64000,           "channelCount": 2,           "channelLayout": [             "fl",             "fr"           ],           "sampleRateHertz": 48000         },         "key": "audio-stream0"       }     ],     "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"         ]       }     ],     "output": {       "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/"     }   },   "state": "PENDING",   "createTime": CREATE_TIME,   "ttlAfterCompletionDays": 30 } 

    gcloud

    1. gcloud 指令進行下列替換:
    • JOB_ID:您建立的工作 ID。
    • LOCATION:工作地點。使用支援的地區
      顯示地區
      • us-central1
      • us-west1
      • us-west2
      • us-east1
      • us-east4
      • southamerica-east1
      • northamerica-northeast1
      • asia-east1
      • asia-northeast1
      • asia-northeast3
      • asia-south1
      • asia-southeast1
      • australia-southeast1
      • europe-west1
      • europe-west2
      • europe-west4
      • me-west1
      • me-central1
      • me-central2
  • 執行下列指令:
    gcloud transcoder jobs describe JOB_ID --location=LOCATION
    畫面會顯示類似以下的回應:
     {   "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID",   "config": {     "inputs": [       {         "key": "input0",         "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO"       }     ],     "editList": [       {         "key": "atom0",         "inputs": [           "input0"         ],         "startTimeOffset": "0s"       }     ],     "elementaryStreams": [       {         "videoStream": {           "h264": {             "widthPixels": 640,             "heightPixels": 360,             "frameRate": 60,             "bitrateBps": 550000,             "pixelFormat": "yuv420p",             "rateControlMode": "vbr",             "crfLevel": 21,             "gopDuration": "3s",             "vbvSizeBits": 550000,             "vbvFullnessBits": 495000,             "entropyCoder": "cabac",             "profile": "high",             "preset": "veryfast"           }         },         "key": "video-stream0"       },       {         "videoStream": {           "h264": {             "widthPixels": 1280,             "heightPixels": 720,             "frameRate": 60,             "bitrateBps": 2500000,             "pixelFormat": "yuv420p",             "rateControlMode": "vbr",             "crfLevel": 21,             "gopDuration": "3s",             "vbvSizeBits": 2500000,             "vbvFullnessBits": 2250000,             "entropyCoder": "cabac",             "profile": "high",             "preset": "veryfast"           }         },         "key": "video-stream1"       },       {         "audioStream": {           "codec": "aac",           "bitrateBps": 64000,           "channelCount": 2,           "channelLayout": [             "fl",             "fr"           ],           "sampleRateHertz": 48000         },         "key": "audio-stream0"       }     ],     "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"         ]       }     ],     "output": {       "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/"     }   },   "state": "PENDING",   "createTime": CREATE_TIME,   "ttlAfterCompletionDays": 30 } 
  • C#

    在試用這個範例之前,請先按照C#使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API C# API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

     using Google.Cloud.Video.Transcoder.V1;  public class GetJobSample {     public Job GetJob(string projectId, string location, string jobId)     {         // Create the client.         TranscoderServiceClient client = TranscoderServiceClient.Create();          // Build the job name.         JobName jobName = JobName.FromProjectLocationJob(projectId, location, jobId);          // Call the API.         Job job = client.GetJob(jobName);          // Return the result.         return job;     } }

    Go

    在試用這個範例之前,請先按照Go使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Go API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

    import ( 	"context" 	"fmt" 	"io"  	transcoder "cloud.google.com/go/video/transcoder/apiv1" 	"cloud.google.com/go/video/transcoder/apiv1/transcoderpb" )  // getJob gets a previously-created job. See https://cloud.google.com/transcoder/docs/how-to/jobs#check_job_status // for more information. func getJob(w io.Writer, projectID string, location string, jobID string) error { 	// projectID := "my-project-id" 	// location := "us-central1" 	// jobID := "my-job-id" 	ctx := context.Background() 	client, err := transcoder.NewClient(ctx) 	if err != nil { 		return fmt.Errorf("NewClient: %w", err) 	} 	defer client.Close()  	req := &transcoderpb.GetJobRequest{ 		Name: fmt.Sprintf("projects/%s/locations/%s/jobs/%s", projectID, location, jobID), 	}  	response, err := client.GetJob(ctx, req) 	if err != nil { 		return fmt.Errorf("GetJob: %w", err) 	}  	fmt.Fprintf(w, "Job: %v", response) 	return nil } 

    Java

    在試用這個範例之前,請先按照Java使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Java API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

     import com.google.cloud.video.transcoder.v1.GetJobRequest; import com.google.cloud.video.transcoder.v1.Job; import com.google.cloud.video.transcoder.v1.JobName; import com.google.cloud.video.transcoder.v1.TranscoderServiceClient; import java.io.IOException;  public class GetJob {    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 jobId = "my-job-id";      getJob(projectId, location, jobId);   }    // Gets a job.   public static void getJob(String projectId, String location, String jobId) 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()) {       JobName jobName =           JobName.newBuilder().setProject(projectId).setLocation(location).setJob(jobId).build();       GetJobRequest getJobRequest = GetJobRequest.newBuilder().setName(jobName.toString()).build();        // Send the get job request and process the response.       Job job = transcoderServiceClient.getJob(getJobRequest);       System.out.println("Job: " + job.getName());     }   } }

    Node.js

    在試用這個範例之前,請先按照Node.js使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Node.js API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

    /**  * TODO(developer): Uncomment these variables before running the sample.  */ // projectId = 'my-project-id'; // location = 'us-central1'; // jobId = 'my-job-id';  // Imports the Transcoder library const {TranscoderServiceClient} =   require('@google-cloud/video-transcoder').v1;  // Instantiates a client const transcoderServiceClient = new TranscoderServiceClient();  async function getJob() {   // Construct request   const request = {     name: transcoderServiceClient.jobPath(projectId, location, jobId),   };   const [response] = await transcoderServiceClient.getJob(request);   console.log(`Job: ${response.name}`); }  getJob();

    PHP

    在試用這個範例之前,請先按照PHP使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API PHP API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

    use Google\Cloud\Video\Transcoder\V1\Client\TranscoderServiceClient; use Google\Cloud\Video\Transcoder\V1\GetJobRequest;  /**  * Gets a Transcoder job.  *  * @param string $projectId The ID of your Google Cloud Platform project.  * @param string $location The location of the job.  * @param string $jobId The job ID.  */ function get_job($projectId, $location, $jobId) {     // Instantiate a client.     $transcoderServiceClient = new TranscoderServiceClient();      $formattedName = $transcoderServiceClient->jobName($projectId, $location, $jobId);     $request = (new GetJobRequest())         ->setName($formattedName);     $job = $transcoderServiceClient->getJob($request);      // Print job name.     printf('Job: %s' . PHP_EOL, $job->getName()); }

    Python

    在試用這個範例之前,請先按照Python使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Python API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

     import argparse  from google.cloud.video import transcoder_v1 from google.cloud.video.transcoder_v1.services.transcoder_service import (     TranscoderServiceClient, )   def get_job(     project_id: str,     location: str,     job_id: str, ) -> transcoder_v1.types.resources.Job:     """Gets a job.      Args:         project_id: The GCP project ID.         location: The location this job is in.         job_id: The job ID.      Returns:         The job resource.     """      client = TranscoderServiceClient()      name = f"projects/{project_id}/locations/{location}/jobs/{job_id}"     response = client.get_job(name=name)     print(f"Job: {response.name}")     return response  

    Ruby

    在試用這個範例之前,請先按照Ruby使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Ruby API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

    # project_id = "YOUR-GOOGLE-CLOUD-PROJECT"  # (e.g. "my-project") # location   = "YOUR-JOB-LOCATION"  # (e.g. "us-central1") # job_id     = "YOUR-JOB-ID"  # (e.g. "c82c295b-3f5a-47df-8562-938a89d40fd0")  # 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 job. name = client.job_path project: project_id, location: location, job: job_id  # Get the job. job = client.get_job name: name  # Print the job name. puts "Job: #{job.name}"

    回應與建立工作時傳回的回應類似。

    列出工作

    如要查看你在某個地點建立的所有職缺,請使用 projects.locations.jobs.list 方法。

    REST

    使用任何要求資料之前,請先替換以下項目:

  • PROJECT_ID:您的 Google Cloud 專案 ID。
  • LOCATION:工作地點。使用支援的地區
    顯示地區
    • us-central1
    • us-west1
    • us-west2
    • us-east1
    • us-east4
    • southamerica-east1
    • northamerica-northeast1
    • asia-east1
    • asia-northeast1
    • asia-northeast3
    • asia-south1
    • asia-southeast1
    • australia-southeast1
    • europe-west1
    • europe-west2
    • europe-west4
    • me-west1
    • me-central1
    • me-central2
  • 如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

     {   "jobs": [     {       "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/MY_JOB",       "config": {         ....        },       "state": "PENDING",       "createTime": CREATE_TIME,       "ttlAfterCompletionDays": 30     },     {       "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/MY_OTHER_JOB",       "config": {         ....        },       "state": "SUCCEEDED",       "createTime": CREATE_TIME,       "startTime": START_TIME,       "endTime": END_TIME,       "ttlAfterCompletionDays": 30     }   ] } 

    gcloud

    1. gcloud 指令進行下列替換:
    • LOCATION:職缺地點。使用支援的地區
      顯示地區
      • us-central1
      • us-west1
      • us-west2
      • us-east1
      • us-east4
      • southamerica-east1
      • northamerica-northeast1
      • asia-east1
      • asia-northeast1
      • asia-northeast3
      • asia-south1
      • asia-southeast1
      • australia-southeast1
      • europe-west1
      • europe-west2
      • europe-west4
      • me-west1
      • me-central1
      • me-central2
  • 執行下列指令:
    gcloud transcoder jobs list --location=LOCATION
    畫面會顯示類似以下的回應:
     NAME                                                    STATE      FAILURE_REASON projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID  SUCCEEDED projects/PROJECT_NUMBER/locations/LOCATION/jobs/abc123  SUCCEEDED 
  • C#

    在試用這個範例之前,請先按照C#使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API C# API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

     using Google.Cloud.Video.Transcoder.V1; using Google.Api.Gax.ResourceNames; using Google.Api.Gax; using System.Linq; using System.Collections.Generic;  public class ListJobsSample {     public IList<Job> ListJobs(string projectId, string location)     {         // Create the client.         TranscoderServiceClient client = TranscoderServiceClient.Create();          // Build the parent location name.         LocationName parentLocation = new LocationName(projectId, location);          // Call the API.         PagedEnumerable<ListJobsResponse, Job> response = client.ListJobs(parentLocation);          // The returned sequence will lazily perform RPCs as it's being iterated over.         return response.ToList();     } }

    Go

    在試用這個範例之前,請先按照Go使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Go API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

    import ( 	"context" 	"fmt" 	"io"  	"google.golang.org/api/iterator"  	transcoder "cloud.google.com/go/video/transcoder/apiv1" 	"cloud.google.com/go/video/transcoder/apiv1/transcoderpb" )  // listJobs lists all jobs for a given location. See // https://cloud.google.com/transcoder/docs/how-to/jobs#list_jobs for more // information. func listJobs(w io.Writer, projectID string, location string) error { 	// projectID := "my-project-id" 	// location := "us-central1" 	ctx := context.Background() 	client, err := transcoder.NewClient(ctx) 	if err != nil { 		return fmt.Errorf("NewClient: %w", err) 	} 	defer client.Close()  	req := &transcoderpb.ListJobsRequest{ 		Parent: fmt.Sprintf("projects/%s/locations/%s", projectID, location), 	}  	it := client.ListJobs(ctx, req) 	fmt.Fprintln(w, "Jobs:")  	for { 		response, err := it.Next() 		if err == iterator.Done { 			break 		} 		if err != nil { 			return fmt.Errorf("ListJobs: %w", err) 		} 		fmt.Fprintln(w, response.GetName()) 	} 	return nil } 

    Java

    在試用這個範例之前,請先按照Java使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Java API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

     import com.google.cloud.video.transcoder.v1.Job; import com.google.cloud.video.transcoder.v1.ListJobsRequest; import com.google.cloud.video.transcoder.v1.LocationName; import com.google.cloud.video.transcoder.v1.TranscoderServiceClient; import java.io.IOException;  public class ListJobs {    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";      listJobs(projectId, location);   }    // Lists the jobs for a given location.   public static void listJobs(String projectId, String location) 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()) {        ListJobsRequest listJobsRequest =           ListJobsRequest.newBuilder()               .setParent(LocationName.of(projectId, location).toString())               .build();        // Send the list jobs request and process the response.       TranscoderServiceClient.ListJobsPagedResponse response =           transcoderServiceClient.listJobs(listJobsRequest);       System.out.println("Jobs:");        for (Job job : response.iterateAll()) {         System.out.println(job.getName());       }     }   } }

    Node.js

    在試用這個範例之前,請先按照Node.js使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Node.js API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

    /**  * TODO(developer): Uncomment these variables before running the sample.  */ // projectId = 'my-project-id'; // location = 'us-central1';  // Imports the Transcoder library const {TranscoderServiceClient} =   require('@google-cloud/video-transcoder').v1;  // Instantiates a client const transcoderServiceClient = new TranscoderServiceClient();  async function listJobs() {   const iterable = await transcoderServiceClient.listJobsAsync({     parent: transcoderServiceClient.locationPath(projectId, location),   });   console.info('Jobs:');   for await (const response of iterable) {     console.log(response.name);   } }  listJobs();

    PHP

    在試用這個範例之前,請先按照PHP使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API PHP API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

    use Google\Cloud\Video\Transcoder\V1\Client\TranscoderServiceClient; use Google\Cloud\Video\Transcoder\V1\ListJobsRequest;  /**  * Lists all Transcoder jobs in a location.  *  * @param string $projectId The ID of your Google Cloud Platform project.  * @param string $location The location of the jobs.  */ function list_jobs($projectId, $location) {     // Instantiate a client.     $transcoderServiceClient = new TranscoderServiceClient();      $formattedParent = $transcoderServiceClient->locationName($projectId, $location);     $request = (new ListJobsRequest())         ->setParent($formattedParent);     $response = $transcoderServiceClient->listJobs($request);      // Print job list.     $jobs = $response->iterateAllElements();     print('Jobs:' . PHP_EOL);     foreach ($jobs as $job) {         printf('%s' . PHP_EOL, $job->getName());     } }

    Python

    在試用這個範例之前,請先按照Python使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Python API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

     import argparse  from google.cloud.video.transcoder_v1.services.transcoder_service import (     pagers,     TranscoderServiceClient, )   def list_jobs(     project_id: str,     location: str, ) -> pagers.ListJobsPager:     """Lists all jobs in a location.      Args:         project_id: The GCP project ID.         location: The location of the jobs.      Returns:         An iterable object containing job resources.     """      client = TranscoderServiceClient()      parent = f"projects/{project_id}/locations/{location}"     response = client.list_jobs(parent=parent)     print("Jobs:")     for job in response.jobs:         print({job.name})      return response  

    Ruby

    在試用這個範例之前,請先按照Ruby使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Ruby API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

    # project_id = "YOUR-GOOGLE-CLOUD-PROJECT"  # (e.g. "my-project") # location   = "YOUR-JOB-LOCATION"  # (e.g. "us-central1")  # 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  # Get the list of jobs. response = client.list_jobs parent: parent  puts "Jobs:" # Print out all jobs. response.each do |job|   puts job.name end

    其他結果

    列出工作回應時可能會包含 nextPageToken,您可以使用這個值擷取其他結果:

     {   "jobs": [     ...   ],   "nextPageToken": "NEXT_PAGE_TOKEN" } 

    在下列 curl 範例中,您可以傳送另一項要求,並納入 NEXT_PAGE_TOKEN 的值,列出其他工作,如下所示:

     curl -X GET \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ https://transcoder.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?pageToken=NEXT_PAGE_TOKEN 

    如要進一步瞭解如何使用這個權杖,請參閱相關的用戶端程式庫

    篩選結果

    您可以篩選 list jobs 方法的結果。舉例來說,執行下列 curl 指令即可列出所有有效工作:

     curl -X GET \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ 'https://transcoder.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?filter=-state="FAILED"+AND+-state="SUCCEEDED"' 

    這項指令會使用否定運算子,列出尚未失敗「且」尚未成功的工作。產生的清單包含正在執行或待處理的工作 (如需工作狀態的相關資訊,請參閱 ProcessingState)。

    以下是一些篩選器範例:

    • ?filter=state="FAILED"+OR+state="SUCCEEDED":列出已完成的工作
    • ?filter=createTime+>+"2021-06-09T19:25:21.007649960Z":列出在特定時間戳記之後建立的工作
    • ?filter=inputUri="gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO": 列出具有特定輸入 URI 的工作
    • ?filter=config.output.uri="gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/": 列出具有特定輸出 URI 的工作

    詳情請參閱 AIP-160 - 篩選

    刪除工作

    如要刪除工作,請使用 projects.locations.jobs.delete 方法。

    REST

    使用任何要求資料之前,請先替換以下項目:

  • JOB_ID:您建立的工作 ID。
  • PROJECT_ID:您的 Google Cloud 專案 ID。
  • LOCATION:工作地點。使用支援的地區
    顯示地區
    • us-central1
    • us-west1
    • us-west2
    • us-east1
    • us-east4
    • southamerica-east1
    • northamerica-northeast1
    • asia-east1
    • asia-northeast1
    • asia-northeast3
    • asia-south1
    • asia-southeast1
    • australia-southeast1
    • europe-west1
    • europe-west2
    • europe-west4
    • me-west1
    • me-central1
    • me-central2
  • 如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

     {} 

    gcloud

    1. gcloud 指令進行下列替換:
    • JOB_ID:您建立的工作 ID。
    • LOCATION:工作地點。使用支援的地區
      顯示地區
      • us-central1
      • us-west1
      • us-west2
      • us-east1
      • us-east4
      • southamerica-east1
      • northamerica-northeast1
      • asia-east1
      • asia-northeast1
      • asia-northeast3
      • asia-south1
      • asia-southeast1
      • australia-southeast1
      • europe-west1
      • europe-west2
      • europe-west4
      • me-west1
      • me-central1
      • me-central2
  • 執行下列指令:
    gcloud transcoder jobs delete JOB_ID --location=LOCATION
    畫面會顯示類似以下的回應:
    Deleted job [projects/PROJECT_ID/locations/LOCATION/jobs/JOB_ID]. 
  • C#

    在試用這個範例之前,請先按照C#使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API C# API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

     using Google.Cloud.Video.Transcoder.V1;  public class DeleteJobSample {     public void DeleteJob(string projectId, string location, string jobId)     {         // Create the client.         TranscoderServiceClient client = TranscoderServiceClient.Create();          // Build the job name.         JobName jobName = JobName.FromProjectLocationJob(projectId, location, jobId);          // Call the API.         client.DeleteJob(jobName);     } }

    Go

    在試用這個範例之前,請先按照Go使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Go API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

    import ( 	"context" 	"fmt" 	"io"  	transcoder "cloud.google.com/go/video/transcoder/apiv1" 	"cloud.google.com/go/video/transcoder/apiv1/transcoderpb" )  // deleteJob deletes a previously-created job. See // https://cloud.google.com/transcoder/docs/how-to/jobs#delete_jobs for more // information. func deleteJob(w io.Writer, projectID string, location string, jobID string) error { 	// projectID := "my-project-id" 	// location := "us-central1" 	// jobID := "my-job-id" 	ctx := context.Background() 	client, err := transcoder.NewClient(ctx) 	if err != nil { 		return fmt.Errorf("NewClient: %w", err) 	} 	defer client.Close()  	req := &transcoderpb.DeleteJobRequest{ 		Name: fmt.Sprintf("projects/%s/locations/%s/jobs/%s", projectID, location, jobID), 	}  	err = client.DeleteJob(ctx, req) 	if err != nil { 		return fmt.Errorf("DeleteJob: %w", err) 	}  	fmt.Fprintf(w, "Deleted job") 	return nil } 

    Java

    在試用這個範例之前,請先按照Java使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Java API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

     import com.google.cloud.video.transcoder.v1.DeleteJobRequest; import com.google.cloud.video.transcoder.v1.JobName; import com.google.cloud.video.transcoder.v1.TranscoderServiceClient; import java.io.IOException;  public class DeleteJob {    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 jobId = "my-job-id";      deleteJob(projectId, location, jobId);   }    // Deletes a job.   public static void deleteJob(String projectId, String location, String jobId) 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()) {       JobName jobName =           JobName.newBuilder().setProject(projectId).setLocation(location).setJob(jobId).build();       DeleteJobRequest deleteJobRequest = DeleteJobRequest.newBuilder().setName(jobName.toString())           .build();        // Send the delete job request and process the response.       transcoderServiceClient.deleteJob(deleteJobRequest);       System.out.println("Deleted job");     }   } }

    Node.js

    在試用這個範例之前,請先按照Node.js使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Node.js API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

    /**  * TODO(developer): Uncomment these variables before running the sample.  */ // projectId = 'my-project-id'; // location = 'us-central1'; // jobId = 'my-job-id';  // Imports the Transcoder library const {TranscoderServiceClient} =   require('@google-cloud/video-transcoder').v1;  // Instantiates a client const transcoderServiceClient = new TranscoderServiceClient();  async function deleteJob() {   // Construct request   const request = {     name: transcoderServiceClient.jobPath(projectId, location, jobId),   };   await transcoderServiceClient.deleteJob(request);   console.log('Deleted job'); }  deleteJob();

    PHP

    在試用這個範例之前,請先按照PHP使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API PHP API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

    use Google\Cloud\Video\Transcoder\V1\Client\TranscoderServiceClient; use Google\Cloud\Video\Transcoder\V1\DeleteJobRequest;  /**  * Deletes a Transcoder job.  *  * @param string $projectId The ID of your Google Cloud Platform project.  * @param string $location The location of the job.  * @param string $jobId The job ID.  */ function delete_job($projectId, $location, $jobId) {     // Instantiate a client.     $transcoderServiceClient = new TranscoderServiceClient();      $formattedName = $transcoderServiceClient->jobName($projectId, $location, $jobId);     $request = (new DeleteJobRequest())         ->setName($formattedName);     $transcoderServiceClient->deleteJob($request);      print('Deleted job' . PHP_EOL); }

    Python

    在試用這個範例之前,請先按照Python使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Python API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

     import argparse  from google.cloud.video.transcoder_v1.services.transcoder_service import (     TranscoderServiceClient, )   def delete_job(     project_id: str,     location: str,     job_id: str, ) -> None:     """Gets a job.      Args:         project_id: The GCP project ID.         location: The location this job is in.         job_id: The job ID."""      client = TranscoderServiceClient()      name = f"projects/{project_id}/locations/{location}/jobs/{job_id}"     response = client.delete_job(name=name)     print("Deleted job")     return response  

    Ruby

    在試用這個範例之前,請先按照Ruby使用用戶端程式庫的 Transcoder API 快速入門中的設定說明操作。詳情請參閱 Transcoder API Ruby API 參考說明文件

    如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

    # project_id = "YOUR-GOOGLE-CLOUD-PROJECT"  # (e.g. "my-project") # location   = "YOUR-JOB-LOCATION"  # (e.g. "us-central1") # job_id     = "YOUR-JOB-ID"  # (e.g. "c82c295b-3f5a-47df-8562-938a89d40fd0")  # 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 job. name = client.job_path project: project_id, location: location, job: job_id  # Delete the job. client.delete_job name: name  # Print a success message. puts "Deleted job"

    後續步驟

    瞭解如何建立及管理工作範本