Crear y administrar plantillas de trabajo

En esta página, se muestra cómo crear y administrar plantillas de trabajos de la API de Transcoder.

De forma predeterminada, la API de Transcoder aplica una plantilla predeterminada llamada preset/web-hd para propagar la configuración de un trabajo. Puedes especificar tus propias plantillas de trabajo personalizadas cuando crees trabajos de transcodificación. Una configuración de trabajo representa muchos de los parámetros de configuración que puedes personalizar cuando creas un trabajo.

Configura el proyecto de Google Cloud y la autenticación

Si no creaste un proyecto de Google Cloud ni credenciales, consulta Antes de comenzar.

Crea plantillas de trabajo

Puedes especificar una amplia variedad de parámetros de configuración en una plantilla de trabajo. Para obtener una introducción a algunos de los términos y conceptos de la configuración de trabajos, consulta la descripción general de la API de Transcoder.

Para crear una plantilla de trabajo, usa el método projects.locations.jobTemplates.create. En el siguiente ejemplo, se usa una configuración simple para crear archivos de salida .mp4 de definición estándar y alta definición. Para obtener más información sobre la configuración de un trabajo, consulta la referencia de JobConfig.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: El ID de tu proyecto de Google Cloud que aparece en Configuración de IAM.
  • LOCATION: Es la ubicación en la que se almacenará la plantilla de trabajo. Usa una de las regiones compatibles.
    Cómo mostrar ubicaciones
    • 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
  • TEMPLATE_ID: Es un identificador definido por el usuario para la nueva plantilla de trabajo que se creará. Este valor debe tener entre 4 y 63 caracteres, y los caracteres válidos están en la expresión regular [a-zA-Z][a-zA-Z0-9_-]*.

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobTemplates/TEMPLATE_ID",
  "config": {
    "inputs": [
      {
        "key": "input0"
      }
    ],
    "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": {}
  }
}

gcloud

  1. Crea un archivo request.json que defina los campos de la plantilla de trabajo. La siguiente es una plantilla de trabajo de ejemplo:
    {
      "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"
            ]
          }
        ]
      }
    }
  2. Realiza los siguientes reemplazos para el comando gcloud:
    • TEMPLATE_ID: Es un identificador definido por el usuario para la nueva plantilla de trabajo que se creará. Este valor debe tener entre 4 y 63 caracteres, y los caracteres válidos están en la expresión regular [a-zA-Z][a-zA-Z0-9_-]*.
    • LOCATION: Es la ubicación en la que se almacenará tu plantilla de trabajo. Usa una de las regiones compatibles.
      Cómo mostrar ubicaciones
      • 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
  3. Ejecuta el siguiente comando:
    gcloud transcoder templates create TEMPLATE_ID --file="request.json" --location=LOCATION
    Deberías ver una respuesta similar a la siguiente:
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobTemplates/TEMPLATE_ID",
      "config": {
        "inputs": [
          {
            "key": "input0"
          }
        ],
        "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": {}
      }
    }
    

C#

Antes de probar esta muestra, sigue las instrucciones de configuración de C# que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de C# de la API de Transcoder.

Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.


using Google.Api.Gax.ResourceNames;
using Google.Cloud.Video.Transcoder.V1;

public class CreateJobTemplateSample
{
    public JobTemplate CreateJobTemplate(
        string projectId, string location, string templateId)
    {
        // Create the client.
        TranscoderServiceClient client = TranscoderServiceClient.Create();

        // Build the parent location name.
        LocationName parentLocation = new LocationName(projectId, location);

        // Build the job template config.
        VideoStream videoStream0 = new VideoStream
        {
            H264 = new VideoStream.Types.H264CodecSettings
            {
                BitrateBps = 550000,
                FrameRate = 60,
                HeightPixels = 360,
                WidthPixels = 640
            }
        };

        VideoStream videoStream1 = new VideoStream
        {
            H264 = new VideoStream.Types.H264CodecSettings
            {
                BitrateBps = 2500000,
                FrameRate = 60,
                HeightPixels = 720,
                WidthPixels = 1280
            }
        };

        AudioStream audioStream0 = new AudioStream
        {
            Codec = "aac",
            BitrateBps = 64000
        };

        ElementaryStream elementaryStream0 = new ElementaryStream
        {
            Key = "video_stream0",
            VideoStream = videoStream0
        };

        ElementaryStream elementaryStream1 = new ElementaryStream
        {
            Key = "video_stream1",
            VideoStream = videoStream1
        };

        ElementaryStream elementaryStream2 = new ElementaryStream
        {
            Key = "audio_stream0",
            AudioStream = audioStream0
        };

        MuxStream muxStream0 = new MuxStream
        {
            Key = "sd",
            Container = "mp4",
            ElementaryStreams = { "video_stream0", "audio_stream0" }
        };

        MuxStream muxStream1 = new MuxStream
        {
            Key = "hd",
            Container = "mp4",
            ElementaryStreams = { "video_stream1", "audio_stream0" }
        };

        JobConfig jobConfig = new JobConfig
        {
            ElementaryStreams = { elementaryStream0, elementaryStream1, elementaryStream2 },
            MuxStreams = { muxStream0, muxStream1 }
        };

        JobTemplate newJobTemplate = new JobTemplate
        {
            Config = jobConfig
        };

        // Call the API.
        JobTemplate jobTemplate = client.CreateJobTemplate(parentLocation, newJobTemplate, templateId);
        return jobTemplate;
    }
}

Go

Antes de probar esta muestra, sigue las instrucciones de configuración de Go que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Go de la API de Transcoder.

Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import (
	"context"
	"fmt"
	"io"

	transcoder "cloud.google.com/go/video/transcoder/apiv1"
	"cloud.google.com/go/video/transcoder/apiv1/transcoderpb"
)

// createJobTemplate creates a template for a job. See
// https://cloud.google.com/transcoder/docs/how-to/job-templates#create_job_templates
// for more information.
func createJobTemplate(w io.Writer, projectID string, location string, templateID string) error {
	// projectID := "my-project-id"
	// location := "us-central1"
	// 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.CreateJobTemplateRequest{
		Parent:        fmt.Sprintf("projects/%s/locations/%s", projectID, location),
		JobTemplateId: templateID,
		JobTemplate: &transcoderpb.JobTemplate{
			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"},
					},
				},
			},
		},
	}

	response, err := client.CreateJobTemplate(ctx, req)
	if err != nil {
		return fmt.Errorf("CreateJobTemplate: %w", err)
	}

	fmt.Fprintf(w, "Job template: %v", response.GetName())
	return nil
}

Java

Antes de probar esta muestra, sigue las instrucciones de configuración de Java que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Java de la API de Transcoder.

Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.


import com.google.cloud.video.transcoder.v1.AudioStream;
import com.google.cloud.video.transcoder.v1.CreateJobTemplateRequest;
import com.google.cloud.video.transcoder.v1.ElementaryStream;
import com.google.cloud.video.transcoder.v1.JobConfig;
import com.google.cloud.video.transcoder.v1.JobTemplate;
import com.google.cloud.video.transcoder.v1.LocationName;
import com.google.cloud.video.transcoder.v1.MuxStream;
import com.google.cloud.video.transcoder.v1.TranscoderServiceClient;
import com.google.cloud.video.transcoder.v1.VideoStream;
import java.io.IOException;

public class CreateJobTemplate {

  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 templateId = "my-job-template";

    createJobTemplate(projectId, location, templateId);
  }

  // Creates a job template.
  public static void createJobTemplate(String projectId, String location, 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()) {

      VideoStream videoStream0 =
          VideoStream.newBuilder()
              .setH264(
                  VideoStream.H264CodecSettings.newBuilder()
                      .setBitrateBps(550000)
                      .setFrameRate(60)
                      .setHeightPixels(360)
                      .setWidthPixels(640))
              .build();

      VideoStream videoStream1 =
          VideoStream.newBuilder()
              .setH264(
                  VideoStream.H264CodecSettings.newBuilder()
                      .setBitrateBps(2500000)
                      .setFrameRate(60)
                      .setHeightPixels(720)
                      .setWidthPixels(1280))
              .build();

      AudioStream audioStream0 =
          AudioStream.newBuilder().setCodec("aac").setBitrateBps(64000).build();

      JobConfig config =
          JobConfig.newBuilder()
              .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();

      CreateJobTemplateRequest createJobTemplateRequest =
          CreateJobTemplateRequest.newBuilder()
              .setParent(LocationName.of(projectId, location).toString())
              .setJobTemplateId(templateId)
              .setJobTemplate(JobTemplate.newBuilder().setConfig(config).build())
              .build();

      // Send the job template creation request and process the response.
      JobTemplate jobTemplate = transcoderServiceClient.createJobTemplate(createJobTemplateRequest);
      System.out.println("Job template: " + jobTemplate.getName());
    }
  }
}

Node.js

Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Node.js de la API de Transcoder.

Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// projectId = 'my-project-id';
// location = 'us-central1';
// 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 createJobTemplate() {
  // Construct request
  const request = {
    parent: transcoderServiceClient.locationPath(projectId, location),
    jobTemplateId: templateId,
    jobTemplate: {
      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 [jobTemplate] =
    await transcoderServiceClient.createJobTemplate(request);
  console.log(`Job template: ${jobTemplate.name}`);
}

createJobTemplate();

PHP

Antes de probar esta muestra, sigue las instrucciones de configuración de PHP que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de PHP de la API de Transcoder.

Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

use Google\Cloud\Video\Transcoder\V1\AudioStream;
use Google\Cloud\Video\Transcoder\V1\Client\TranscoderServiceClient;
use Google\Cloud\Video\Transcoder\V1\CreateJobTemplateRequest;
use Google\Cloud\Video\Transcoder\V1\ElementaryStream;
use Google\Cloud\Video\Transcoder\V1\JobConfig;
use Google\Cloud\Video\Transcoder\V1\JobTemplate;
use Google\Cloud\Video\Transcoder\V1\MuxStream;
use Google\Cloud\Video\Transcoder\V1\VideoStream;

/**
 * Creates a job template.
 *
 * @param string $projectId The ID of your Google Cloud Platform project.
 * @param string $location The location of the job template.
 * @param string $templateId The user-defined template ID.
 */
function create_job_template($projectId, $location, $templateId)
{
    // Instantiate a client.
    $transcoderServiceClient = new TranscoderServiceClient();

    $formattedParent = $transcoderServiceClient->locationName($projectId, $location);

    $jobTemplate = (new JobTemplate())->setConfig(
        (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'])
        ])
    );
    $request = (new CreateJobTemplateRequest())
        ->setParent($formattedParent)
        ->setJobTemplate($jobTemplate)
        ->setJobTemplateId($templateId);

    $response = $transcoderServiceClient->createJobTemplate($request);

    // Print job template name.
    printf('Job template: %s' . PHP_EOL, $response->getName());
}

Python

Antes de probar esta muestra, sigue las instrucciones de configuración de Python que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Python de la API de Transcoder.

Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.


import argparse

from google.cloud.video import transcoder_v1
from google.cloud.video.transcoder_v1.services.transcoder_service import (
    TranscoderServiceClient,
)


def create_job_template(
    project_id: str,
    location: str,
    template_id: str,
) -> transcoder_v1.types.resources.JobTemplate:
    """Creates a job template.

    Args:
        project_id: The GCP project ID.
        location: The location to store this template in.
        template_id: The user-defined template ID.

    Returns:
        The job template resource.
    """

    client = TranscoderServiceClient()

    parent = f"projects/{project_id}/locations/{location}"

    job_template = transcoder_v1.types.JobTemplate()
    job_template.name = (
        f"projects/{project_id}/locations/{location}/jobTemplates/{template_id}"
    )
    job_template.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_template(
        parent=parent, job_template=job_template, job_template_id=template_id
    )
    print(f"Job template: {response.name}")
    return response

Ruby

Antes de probar esta muestra, sigue las instrucciones de configuración de Ruby que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Ruby de la API de Transcoder.

Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

# project_id  = "YOUR-GOOGLE-CLOUD-PROJECT"  # (e.g. "my-project")
# location    = "YOUR-JOB-TEMPLATE-LOCATION"  # (e.g. "us-central1")
# 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

# Build the job template.
new_job_template = {
  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_template = client.create_job_template parent: parent, job_template: new_job_template, job_template_id: template_id

# Print the job template name.
puts "Job template: #{job_template.name}"

Cómo obtener detalles de la plantilla de trabajo

Para obtener los detalles de una plantilla de trabajo, usa el método projects.locations.jobTemplates.get.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • TEMPLATE_ID: Es el ID de la plantilla de trabajo que creaste.
  • PROJECT_ID es el ID del proyecto de Google Cloud.
  • LOCATION: Es la ubicación de tu plantilla de trabajo. Usa una de las regiones compatibles.
    Cómo mostrar ubicaciones
    • 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
  • Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobTemplates/TEMPLATE_ID",
      "config": {
        "inputs": [
          {
            "key": "input0"
          }
        ],
        "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": {}
      }
    }
    

    gcloud

    1. Realiza los siguientes reemplazos para el comando gcloud:
      • TEMPLATE_ID: Es el ID de la plantilla de trabajo que creaste.
      • LOCATION: Es la ubicación de tu plantilla de trabajo. Usa una de las regiones compatibles.
        Cómo mostrar ubicaciones
        • 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
    2. Ejecuta el siguiente comando:
      gcloud transcoder templates describe TEMPLATE_ID --location=LOCATION
      Deberías ver una respuesta similar a la siguiente:
      {
        "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobTemplates/TEMPLATE_ID",
        "config": {
          "inputs": [
            {
              "key": "input0"
            }
          ],
          "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": {}
        }
      }
      

    C#

    Antes de probar esta muestra, sigue las instrucciones de configuración de C# que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de C# de la API de Transcoder.

    Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

    
    using Google.Cloud.Video.Transcoder.V1;
    
    public class GetJobTemplateSample
    {
        public JobTemplate GetJobTemplate(string projectId, string location, string templateId)
        {
            // Create the client.
            TranscoderServiceClient client = TranscoderServiceClient.Create();
    
            // Build the job template name.
            JobTemplateName name = JobTemplateName.FromProjectLocationJobTemplate(projectId, location, templateId);
    
            // Call the API.
            JobTemplate jobTemplate = client.GetJobTemplate(name);
    
            // Return the result.
            return jobTemplate;
        }
    }

    Go

    Antes de probar esta muestra, sigue las instrucciones de configuración de Go que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Go de la API de Transcoder.

    Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

    import (
    	"context"
    	"fmt"
    	"io"
    
    	transcoder "cloud.google.com/go/video/transcoder/apiv1"
    	"cloud.google.com/go/video/transcoder/apiv1/transcoderpb"
    )
    
    // getJobTemplate gets a previously-created job template. See
    // https://cloud.google.com/transcoder/docs/how-to/job-templates#get_job_template
    // for more information.
    func getJobTemplate(w io.Writer, projectID string, location string, templateID string) error {
    	// projectID := "my-project-id"
    	// location := "us-central1"
    	// 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.GetJobTemplateRequest{
    		Name: fmt.Sprintf("projects/%s/locations/%s/jobTemplates/%s", projectID, location, templateID),
    	}
    
    	response, err := client.GetJobTemplate(ctx, req)
    	if err != nil {
    		return fmt.Errorf("GetJobTemplate: %w", err)
    	}
    
    	fmt.Fprintf(w, "Job template: %v", response.GetName())
    	return nil
    }
    

    Java

    Antes de probar esta muestra, sigue las instrucciones de configuración de Java que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Java de la API de Transcoder.

    Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

    
    import com.google.cloud.video.transcoder.v1.GetJobTemplateRequest;
    import com.google.cloud.video.transcoder.v1.JobTemplate;
    import com.google.cloud.video.transcoder.v1.JobTemplateName;
    import com.google.cloud.video.transcoder.v1.TranscoderServiceClient;
    import java.io.IOException;
    
    public class GetJobTemplate {
    
      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 templateId = "my-job-template";
    
        getJobTemplate(projectId, location, templateId);
      }
    
      // Gets a job template.
      public static void getJobTemplate(String projectId, String location, 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()) {
          JobTemplateName jobTemplateName =
              JobTemplateName.newBuilder()
                  .setProject(projectId)
                  .setLocation(location)
                  .setJobTemplate(templateId)
                  .build();
          GetJobTemplateRequest getJobTemplateRequest =
              GetJobTemplateRequest.newBuilder().setName(jobTemplateName.toString()).build();
    
          // Send the get job template request and process the response.
          JobTemplate jobTemplate = transcoderServiceClient.getJobTemplate(getJobTemplateRequest);
          System.out.println("Job template: " + jobTemplate.getName());
        }
      }
    }

    Node.js

    Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Node.js de la API de Transcoder.

    Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

    /**
     * TODO(developer): Uncomment these variables before running the sample.
     */
    // projectId = 'my-project-id';
    // location = 'us-central1';
    // 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 getJobTemplate() {
      // Construct request
      const request = {
        name: transcoderServiceClient.jobTemplatePath(
          projectId,
          location,
          templateId
        ),
      };
      const [jobTemplate] = await transcoderServiceClient.getJobTemplate(request);
      console.log(`Job template: ${jobTemplate.name}`);
    }
    
    getJobTemplate();

    PHP

    Antes de probar esta muestra, sigue las instrucciones de configuración de PHP que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de PHP de la API de Transcoder.

    Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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

    Python

    Antes de probar esta muestra, sigue las instrucciones de configuración de Python que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Python de la API de Transcoder.

    Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

    
    import argparse
    
    from google.cloud.video import transcoder_v1
    from google.cloud.video.transcoder_v1.services.transcoder_service import (
        TranscoderServiceClient,
    )
    
    
    def get_job_template(
        project_id: str,
        location: str,
        template_id: str,
    ) -> transcoder_v1.types.resources.JobTemplate:
        """Gets a job template.
    
        Args:
            project_id: The GCP project ID.
            location: The location of the template.
            template_id: The user-defined template ID.
    
        Returns:
            The job template resource.
        """
    
        client = TranscoderServiceClient()
    
        name = f"projects/{project_id}/locations/{location}/jobTemplates/{template_id}"
        response = client.get_job_template(name=name)
        print(f"Job template: {response.name}")
        return response
    
    

    Ruby

    Antes de probar esta muestra, sigue las instrucciones de configuración de Ruby que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Ruby de la API de Transcoder.

    Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

    # project_id  = "YOUR-GOOGLE-CLOUD-PROJECT"  # (e.g. "my-project")
    # location    = "YOUR-JOB-TEMPLATE-LOCATION"  # (e.g. "us-central1")
    # 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 job template.
    name = client.job_template_path project: project_id, location: location, job_template: template_id
    
    # Get the job template.
    job_template = client.get_job_template name: name
    
    # Print the job template name.
    puts "Job template: #{job_template.name}"

    Plantillas de trabajo de fichas

    Si deseas revisar todas las plantillas de trabajo que creaste en una ubicación, usa el método projects.locations.jobTemplates.list.

    REST

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID es el ID del proyecto de Google Cloud.
  • LOCATION: Es la ubicación de tu plantilla de trabajo. Usa una de las regiones compatibles.
    Cómo mostrar ubicaciones
    • 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
  • Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

    {
      "jobTemplates": [
        {
          "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobTemplates/TEMPLATE_ID",
          "config": {
             ...
          }
        },
        {
          "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobTemplates/my-other-template",
          "config": {
             ...
          }
        }
      ]
    }
    

    gcloud

    1. Realiza los siguientes reemplazos para el comando gcloud:
      • LOCATION: Es la ubicación de tus plantillas de trabajo. Usa una de las regiones compatibles.
        Cómo mostrar ubicaciones
        • 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
    2. Ejecuta el siguiente comando:
      gcloud transcoder templates list --location=LOCATION
      Deberías ver una respuesta similar a la siguiente:
      NAME
      projects/PROJECT_NUMBER/locations/LOCATION/jobTemplates/TEMPLATE_ID
      projects/PROJECT_NUMBER/locations/LOCATION/jobTemplates/my-other-template
      

    C#

    Antes de probar esta muestra, sigue las instrucciones de configuración de C# que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de C# de la API de Transcoder.

    Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

    
    using Google.Cloud.Video.Transcoder.V1;
    using Google.Api.Gax.ResourceNames;
    using Google.Api.Gax;
    using System.Linq;
    using System.Collections.Generic;
    
    public class ListJobTemplatesSample
    {
        public IList<JobTemplate> ListJobTemplates(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<ListJobTemplatesResponse, JobTemplate> response = client.ListJobTemplates(parentLocation);
    
            // The returned sequence will lazily perform RPCs as it's being iterated over.
            return response.ToList();
        }
    }

    Go

    Antes de probar esta muestra, sigue las instrucciones de configuración de Go que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Go de la API de Transcoder.

    Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

    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"
    )
    
    // listJobTemplates gets all previously-created job templates for a given
    // location. See
    // https://cloud.google.com/transcoder/docs/how-to/job-templates#list_job_template
    // for more information.
    func listJobTemplates(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.ListJobTemplatesRequest{
    		Parent: fmt.Sprintf("projects/%s/locations/%s", projectID, location),
    	}
    
    	it := client.ListJobTemplates(ctx, req)
    	fmt.Fprintln(w, "Job templates:")
    	for {
    		response, err := it.Next()
    		if err == iterator.Done {
    			break
    		}
    		if err != nil {
    			return fmt.Errorf("ListJobTemplates: %w", err)
    		}
    		fmt.Fprintln(w, response.GetName())
    	}
    
    	return nil
    }
    

    Java

    Antes de probar esta muestra, sigue las instrucciones de configuración de Java que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Java de la API de Transcoder.

    Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

    
    import com.google.cloud.video.transcoder.v1.JobTemplate;
    import com.google.cloud.video.transcoder.v1.ListJobTemplatesRequest;
    import com.google.cloud.video.transcoder.v1.LocationName;
    import com.google.cloud.video.transcoder.v1.TranscoderServiceClient;
    import java.io.IOException;
    
    public class ListJobTemplates {
    
      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";
    
        listJobTemplates(projectId, location);
      }
    
      // Lists the job templates for a given location.
      public static void listJobTemplates(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()) {
    
          ListJobTemplatesRequest listJobTemplatesRequest =
              ListJobTemplatesRequest.newBuilder()
                  .setParent(LocationName.of(projectId, location).toString())
                  .build();
    
          // Send the list job templates request and process the response.
          TranscoderServiceClient.ListJobTemplatesPagedResponse response =
              transcoderServiceClient.listJobTemplates(listJobTemplatesRequest);
          System.out.println("Job templates:");
    
          for (JobTemplate jobTemplate : response.iterateAll()) {
            System.out.println(jobTemplate.getName());
          }
        }
      }
    }

    Node.js

    Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Node.js de la API de Transcoder.

    Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

    /**
     * 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 listJobTemplates() {
      const iterable = await transcoderServiceClient.listJobTemplatesAsync({
        parent: transcoderServiceClient.locationPath(projectId, location),
      });
      console.info('Job templates:');
      for await (const response of iterable) {
        console.log(response.name);
      }
    }
    
    listJobTemplates();

    PHP

    Antes de probar esta muestra, sigue las instrucciones de configuración de PHP que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de PHP de la API de Transcoder.

    Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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

    Python

    Antes de probar esta muestra, sigue las instrucciones de configuración de Python que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Python de la API de Transcoder.

    Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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

    Ruby

    Antes de probar esta muestra, sigue las instrucciones de configuración de Ruby que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Ruby de la API de Transcoder.

    Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

    # project_id  = "YOUR-GOOGLE-CLOUD-PROJECT"  # (e.g. "my-project")
    # location    = "YOUR-JOB-TEMPLATE-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 job templates.
    response = client.list_job_templates parent: parent
    
    puts "Job templates:"
    # Print out all job templates.
    response.each do |job_template|
      puts job_template.name
    end

    Esta respuesta puede incluir un nextPageToken, que puedes usar para recuperar resultados adicionales:

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

    En el siguiente ejemplo de curl, puedes enviar otra solicitud y, también, incluir el valor de NEXT_PAGE_TOKEN para enumerar plantillas de trabajo adicionales, de manera similar a como se muestra a continuación:

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

    Consulta la biblioteca cliente relevante para obtener más información sobre cómo usar este token.

    Cómo borrar plantillas de trabajo

    Para borrar un documento, usa el método projects.locations.jobTemplates.delete.

    REST

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • TEMPLATE_ID: Es el ID de la plantilla de trabajo que creaste.
  • PROJECT_ID es el ID del proyecto de Google Cloud.
  • LOCATION: Es la ubicación de tu plantilla de trabajo. Usa una de las regiones compatibles.
    Cómo mostrar ubicaciones
    • 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
  • Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

    {}
    

    gcloud

    1. Realiza los siguientes reemplazos para el comando gcloud:
      • TEMPLATE_ID: Es el ID de la plantilla de trabajo que creaste.
      • LOCATION: Es la ubicación de tu plantilla de trabajo. Usa una de las regiones compatibles.
        Cómo mostrar ubicaciones
        • 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
    2. Ejecuta el siguiente comando:
      gcloud transcoder templates delete TEMPLATE_ID --location=LOCATION
      Deberías ver una respuesta similar a la siguiente:
      Deleted template [projects/PROJECT_ID/locations/LOCATION/jobTemplates/TEMPLATE_ID].
      

    C#

    Antes de probar esta muestra, sigue las instrucciones de configuración de C# que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de C# de la API de Transcoder.

    Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

    
    using Google.Cloud.Video.Transcoder.V1;
    
    public class DeleteJobTemplateSample
    {
        public void DeleteJobTemplate(string projectId, string location, string templateId)
        {
            // Create the client.
            TranscoderServiceClient client = TranscoderServiceClient.Create();
    
            // Build the job template name.
            JobTemplateName name = JobTemplateName.FromProjectLocationJobTemplate(projectId, location, templateId);
    
            // Call the API.
            client.DeleteJobTemplate(name);
        }
    }

    Go

    Antes de probar esta muestra, sigue las instrucciones de configuración de Go que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Go de la API de Transcoder.

    Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

    import (
    	"context"
    	"fmt"
    	"io"
    
    	transcoder "cloud.google.com/go/video/transcoder/apiv1"
    	"cloud.google.com/go/video/transcoder/apiv1/transcoderpb"
    )
    
    // deleteJobTemplate deletes a previously-created template for a job. See
    // https://cloud.google.com/transcoder/docs/how-to/job-templates#delete_job_template
    // for more information.
    func deleteJobTemplate(w io.Writer, projectID string, location string, templateID string) error {
    	// projectID := "my-project-id"
    	// location := "us-central1"
    	// 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.DeleteJobTemplateRequest{
    		Name: fmt.Sprintf("projects/%s/locations/%s/jobTemplates/%s", projectID, location, templateID),
    	}
    
    	err = client.DeleteJobTemplate(ctx, req)
    	if err != nil {
    		return fmt.Errorf("DeleteJobTemplate: %w", err)
    	}
    
    	fmt.Fprintf(w, "Deleted job template")
    	return nil
    }
    

    Java

    Antes de probar esta muestra, sigue las instrucciones de configuración de Java que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Java de la API de Transcoder.

    Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

    
    import com.google.cloud.video.transcoder.v1.DeleteJobTemplateRequest;
    import com.google.cloud.video.transcoder.v1.JobTemplateName;
    import com.google.cloud.video.transcoder.v1.TranscoderServiceClient;
    import java.io.IOException;
    
    public class DeleteJobTemplate {
    
      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 templateId = "my-job-template";
    
        deleteJobTemplate(projectId, location, templateId);
      }
    
      // Deletes a job template.
      public static void deleteJobTemplate(String projectId, String location, 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()) {
          JobTemplateName jobTemplateName =
              JobTemplateName.newBuilder()
                  .setProject(projectId)
                  .setLocation(location)
                  .setJobTemplate(templateId)
                  .build();
          DeleteJobTemplateRequest deleteJobTemplateRequest =
              DeleteJobTemplateRequest.newBuilder().setName(jobTemplateName.toString()).build();
    
          // Send the delete job template request and process the response.
          transcoderServiceClient.deleteJobTemplate(deleteJobTemplateRequest);
          System.out.println("Deleted job template");
        }
      }
    }

    Node.js

    Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Node.js de la API de Transcoder.

    Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

    /**
     * TODO(developer): Uncomment these variables before running the sample.
     */
    // projectId = 'my-project-id';
    // location = 'us-central1';
    // 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 deleteJobTemplate() {
      // Construct request
      const request = {
        name: transcoderServiceClient.jobTemplatePath(
          projectId,
          location,
          templateId
        ),
      };
      await transcoderServiceClient.deleteJobTemplate(request);
      console.log('Deleted job template');
    }
    
    deleteJobTemplate();

    PHP

    Antes de probar esta muestra, sigue las instrucciones de configuración de PHP que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de PHP de la API de Transcoder.

    Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

    use Google\Cloud\Video\Transcoder\V1\Client\TranscoderServiceClient;
    use Google\Cloud\Video\Transcoder\V1\DeleteJobTemplateRequest;
    
    /**
     * Deletes a Transcoder job template.
     *
     * @param string $projectId The ID of your Google Cloud Platform project.
     * @param string $location The location of the job template.
     * @param string $templateId The user-defined template ID.
     */
    function delete_job_template($projectId, $location, $templateId)
    {
        // Instantiate a client.
        $transcoderServiceClient = new TranscoderServiceClient();
    
        $formattedName = $transcoderServiceClient->jobTemplateName($projectId, $location, $templateId);
        $request = (new DeleteJobTemplateRequest())
            ->setName($formattedName);
        $transcoderServiceClient->deleteJobTemplate($request);
    
        print('Deleted job template' . PHP_EOL);
    }

    Python

    Antes de probar esta muestra, sigue las instrucciones de configuración de Python que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Python de la API de Transcoder.

    Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

    
    import argparse
    
    from google.cloud.video.transcoder_v1.services.transcoder_service import (
        TranscoderServiceClient,
    )
    
    
    def delete_job_template(
        project_id: str,
        location: str,
        template_id: str,
    ) -> None:
        """Deletes a job template.
    
        Args:
            project_id: The GCP project ID.
            location: The location of the template.
            template_id: The user-defined template ID."""
    
        client = TranscoderServiceClient()
    
        name = f"projects/{project_id}/locations/{location}/jobTemplates/{template_id}"
        response = client.delete_job_template(name=name)
        print("Deleted job template")
        return response
    
    

    Ruby

    Antes de probar esta muestra, sigue las instrucciones de configuración de Ruby que se encuentran en la Guía de inicio rápido de la API de Transcoder para usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Ruby de la API de Transcoder.

    Para autenticarte en la API de Transcoder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

    # project_id = "YOUR-GOOGLE-CLOUD-PROJECT"  # (e.g. "my-project")
    # location    = "YOUR-JOB-TEMPLATE-LOCATION"  # (e.g. "us-central1")
    # 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 job template.
    name = client.job_template_path project: project_id, location: location, job_template: template_id
    
    # Delete the job template.
    client.delete_job_template name: name
    
    # Print a success message.
    puts "Deleted job template"

    ¿Qué sigue?

    Obtén más información para crear y administrar trabajos.