Código de muestra del SDK de AWS - Amazon Elastic Transcoder

Aviso de fin de soporte: el 13 de noviembre de 2025, AWS dejaremos de ofrecer soporte a Amazon Elastic Transcoder. Después del 13 de noviembre de 2025, ya no podrás acceder a la consola de Elastic Transcoder ni a los recursos de Elastic Transcoder.

Para obtener más información sobre la transición a AWS Elemental MediaConvert, visite esta entrada de blog.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Código de muestra del SDK de AWS

Esta sección contiene código de muestra que ilustra cómo utilizar los SDK de AWS para Java, Ruby, PHP y Python para realizar las siguientes operaciones:

  • Creación de una lista de reproducción de HLS en Amazon Elastic Transcoder

  • Creación de una tarea en Elastic Transcoder

  • Sondeo de una cola de Amazon Simple Queue Service (Amazon SQS)

  • Análisis de notificaciones de Amazon Simple Notification Service (Amazon SNS)

  • Administración de la notificación de Amazon SNS

Estas operaciones representan las mejores prácticas de Elastic Transcoder. El sondeo de una cola de Amazon SQS permite realizar un sondeo largo, que se escala de forma más eficaz que los sondeos periódicos, y la configuración de notificaciones de Amazon SNS permite a Elastic Transcoder entregar mensajes a la cola de Amazon SQS.

El código de ejemplo ilustra cómo transcodificar para HLS (HTTP Live Streaming) y cómo gestionar la notificación de Amazon SNS una vez que se ha eliminado de la cola de Amazon SQS.

Si utiliza un lenguaje para el que exista un SDK, recomendamos que utilice el SDK en lugar de intentar ir a través de las API. Verá que el uso de los SDK simplifica la autenticación, se integra fácilmente en su entorno de desarrollo y proporciona acceso sencillo a los comandos relacionados.

Introducción acerca del código de muestra SDK de AWS

HTTP Live Streaming (HLS)

Las salidas HTTP Live Streaming (HLS) se utilizan para entregar contenido con una velocidad de bits adaptativa a los reproductores compatibles con HLS. Algunos ejemplos de dispositivos compatibles con HLS son los dispositivos Android 4+, los dispositivos iOS, los reproductores multimedia de escritorio como QuickTime o VLC y los reproductores de navegador como jwplayer. La velocidad de bits adaptativa permite ajustar automáticamente la calidad del contenido entregado en función de la calidad de la conexión del cliente.

Notificaciones

Si sondea la API de ReadJob de Elastic Transcoder para realizar un seguimiento del estado de las tareas, tendrá que llamar continuamente a ReadJob en todas las tareas enviadas. Esta metodología no se puede escalar a medida que aumenta el número de tareas de transcodificación. Para resolver este problema, Elastic Transcoder puede publicar notificaciones en Amazon SNS, lo que proporciona un mecanismo basado en eventos para realizar un seguimiento del estado de las tareas.

Cada notificación de Elastic Transcoder se envía como un objeto JSON en el campo Message. Como las notificaciones se envían en formato JSON, debe evitar la notificación de Elastic Transcoder en la cadena de mensajes. Para obtener información sobre el formato y el contenido de las notificaciones de Elastic Transcoder, consulte la sección Notificaciones.

Cuando escriba un código personalizado para gestionar las notificaciones de estado de las tareas, siga estas prácticas recomendadas:

  • Los controladores deben ser idempotentes. Es posible que una notificación se entregue más de una vez.

  • Los controladores deben admitir las notificaciones fuera de servicio. Es posible que las notificaciones se entreguen fuera de servicio.

  • Los controladores deben poder procesar una notificación para cualquier tarea. No hay forma de garantizar que una notificación de una tarea en particular se entregue a un trabajador determinado.

  • Los controladores deben ser operaciones cortas. Todos los mensajes deben controlarse y eliminarse antes de que se agote el tiempo de espera de visibilidad. Si el tiempo de espera de visibilidad es de 15 segundos y Amazon SQS está configurado para devolver un máximo de 5 mensajes, cada mensaje debe controlarse y eliminarse de la cola en menos de 3 segundos. Si el tratamiento lleva más tiempo, se agotará el tiempo de espera de los mensajes sin procesar y se entregarán a otro empleado.

Para Java, Python y Ruby, le recomendamos que consuma las notificaciones sondeando una cola de Amazon SQS que esté suscrita a su tema de notificación. Dado que Amazon SQS utiliza un mecanismo de sondeo largo, el sondeo de la cola de Amazon SQS ofrece un método escalable para consumir las notificaciones de tareas. Amazon SQS también simplifica la disponibilidad y el escalado cuando los hosts fallan o en momentos de alta carga y, por lo general, no requiere una configuración de ACL especial.

En el caso de PHP que se ejecuta en Apache, le recomendamos que suscriba su punto de conexión directamente al tema de Amazon SNS. Esto requiere que su punto de conexión esté disponible públicamente, ya que Amazon SNS tendrá que poder enviarle notificaciones directamente.

Configuración del entorno

Para ejecutar el código de muestra, tiene que haber configurado un entorno de AWS. En esta sección se presenta el proceso de configuración y se muestra cómo crear los recursos de AWS que Elastic Transcoder necesita para trabajar de forma óptima.

Configuración del entorno de Java

Esta sección presenta la configuración del entorno de Java.

El código de muestra realiza dos grandes suposiciones:

  • Las muestras se redactan para trabajar con la versión de Java 1.6 o superior.

  • Las muestras se ejecutan con Eclipse con AWS Toolkit for Eclipse.

Configuración de AWS SDK para Java

Estas muestras presuponen que está utilizando AWS Toolkit for Eclipse. Necesita AWS SDK para Java y los siguientes archivos JAR del procesador Jackson JSON:

  • Jackson Core

  • Jackson Databind

  • Jackson Annotations

El procesador Jackson JSON gestiona las notificaciones de estado de la tarea.

De forma alternativa, si utiliza Maven para gestionar sus dependencias, puede agregar los siguientes fragmentos a su archivo pom.xml:

Propiedad de la versión:

<jackson-2-version>2.2.3</jackson-2-version>

Dependencias:

<dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk</artifactId> <version>LATEST</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>${jackson-2-version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>${jackson-2-version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${jackson-2-version}</version> </dependency>

Para obtener más información consulte la documentación de AWS SDK para Java.

Creación de buckets de entrada y salida de Amazon S3

  1. Abra la consola de Amazon S3.

  2. En la consola, haga clic en Crear bucket.

  3. En el campo Asignar un nombre al bucket, escriba el nombre que desee para el bucket de entrada.

  4. En la consola de Amazon S3, haga clic otra vez en Crear bucket.

  5. En el campo Asignar un nombre al bucket, escriba el nombre que desee para el bucket de salida.

Creación de un tema de Amazon SNS para recibir notificaciones del estado de una tarea

  1. Abra la consola de Amazon SNS.

  2. En la consola, haga clic en Crear y añadir y seleccione Crear tema nuevo.

  3. En el campo Nombre del tema, introduzca ets-sample-topic y, a continuación, haga clic en Crear tema.

  4. Registre el ARN de ets-sample-topic.

Creación de una cola de Amazon SQS para sondear las notificaciones del estado de una tarea

  1. Abra la consola de Amazon SQS.

  2. En la consola, elija Crear cola nueva.

  3. En el campo Nombre de la cola, introduzca ets-sample-queue y, a continuación, haga clic en Crear cola.

  4. Registre la URL de la cola de Amazon SQS.

Suscripción de una cola de Amazon SQS a un tema de Amazon SNS

  1. Abra la consola de Amazon SQS.

  2. En la consola, seleccione ets-sample-queue en la lista de colas.

  3. En Acciones de cola, seleccione Suscribir cola a tema de Amazon SNS.

  4. En Elija un tema, seleccione ets-sample-topic y, a continuación, haga clic en Suscribirse.

Debería ver una confirmación de que la lista de espera se ha suscrito correctamente a su tema.

Creación de una canalización de Elastic Transcoder

  1. Abra la consola de Amazon Elastic Transcoder.

  2. En la consola, elija Crear una canalización nueva.

  3. En el campo Nombre, escriba ets-sample-pipeline.

  4. En el campo Bucket de entrada, escriba el nombre del bucket de entrada.

  5. Deje Rol de IAM como Console Default Role.

  6. En Configurar el bucket de Amazon S3 para listas de reproducción y archivos transcodificados, escriba el nombre del bucket de salida.

  7. Aún en Configurar el bucket de Amazon S3 para listas de reproducción y archivos transcodificados, seleccione la clase de almacenamiento estándar.

  8. Expanda el menú desplegable Notificaciones.

  9. Para los cuatro tipos de eventos, seleccione Usar un tema de SNS existente y, en Seleccionar un tema, elija ets-sample-topic.

  10. Haga clic en Create Pipeline (Crear canalización).

  11. Registre el ID de canalización de Elastic Transcoder.

Creación de una distribución de Amazon CloudFront para entregar contenido de manera escalable

  1. Abra la consola de Amazon CloudFront.

  2. En el panel de navegación de la consola, expanda Contenido privado y, a continuación, haga clic en Identidad de acceso de origen.

  3. Seleccione Crear identidad de acceso de origen.

  4. Haga clic en Create (Crear).

  5. Registre el ID de usuario canónico de Amazon S3 que se genera al crear su identidad de acceso de origen.

  6. En el panel de navegación, elija Distribución.

  7. Haga clic en Create Distribution (Crear distribución).

  8. Seleccione Web y, a continuación, haga clic en Continuar.

  9. En Configuración de origen, introduzca su bucket de salida de Amazon S3 como Nombre de dominio de origen.

  10. En el campo ID de origen, introduzca S3-transcoder-sample-output.

  11. En Restringir acceso al bucket, elija .

  12. Haga clic en Crear distribución y registre el nombre de dominio de la distribución.

Modificación de la política de bucket de Amazon S3

  1. Abra la consola de Amazon S3.

  2. Junto al bucket de salida, haga clic en el icono de la lupa para que aparezcan las propiedades del bucket.

  3. Expanda Permisos y haga clic en Añadir política de bucket.

  4. Introduzca la siguiente declaración de política y sustituya CloudFront-OAI-S3-canonical-user-ID con your recorded Amazon S3 canonical user ID y s3-output-bucket-name con the name of your output bucket.

  5. Haga clic en Guardar.

{ "Version":"2012-10-17", "Id":"PolicyForCloudFrontPrivateContent", "Statement":[{ "Sid":" Granting CloudFront OAI access to private content", "Effect":"Allow", "Principal":{ "CanonicalUser":"<CloudFront-oai-s3-canonical-user-id>" }, "Action":"s3:GetObject", "Resource":"arn:aws:s3:::<s3-output-bucket-name>/*" }] }

Vaya a Muestras de Java.

Configuración del entorno de Ruby

Esta sección presenta la configuración del entorno de Ruby.

El código de muestra realiza una gran suposición:

  • Las muestras se redactan para ser compatibles con Ruby versión 1.9.

Configuración de AWS SDK para Ruby

El AWS SDK para Ruby está disponible aquí. Puede instalarlo fácilmente mediante gemas de Ruby con el siguiente comando:

gem install aws-sdk

Para obtener más información consulte la documentación de AWS SDK para Ruby.

Creación de buckets de entrada y salida de Amazon S3

  1. Abra la consola de Amazon S3.

  2. En la consola, haga clic en Crear bucket.

  3. En el campo Asignar un nombre al bucket, escriba el nombre que desee para el bucket de entrada.

  4. En la consola de Amazon S3, haga clic otra vez en Crear bucket.

  5. En el campo Asignar un nombre al bucket, escriba el nombre que desee para el bucket de salida.

Creación de un tema de Amazon SNS para recibir notificaciones del estado de una tarea

  1. Abra la consola de Amazon SNS.

  2. En la consola, haga clic en Crear y añadir y seleccione Crear tema nuevo.

  3. En el campo Nombre del tema, introduzca ets-sample-topic y, a continuación, haga clic en Crear tema.

  4. Registre el ARN de ets-sample-topic.

Creación de una cola de Amazon SQS para sondear las notificaciones del estado de una tarea

  1. Abra la consola de Amazon SQS.

  2. En la consola, elija Crear cola nueva.

  3. En el campo Nombre de la cola, introduzca ets-sample-queue y, a continuación, haga clic en Crear cola.

  4. Registre la URL de la cola de Amazon SQS.

Suscripción de una cola de Amazon SQS a un tema de Amazon SNS

  1. Abra la consola de Amazon SQS.

  2. En la consola, seleccione ets-sample-queue en la lista de colas.

  3. En Acciones de cola, seleccione Suscribir cola a tema de Amazon SNS.

  4. En Elija un tema, seleccione ets-sample-topic y, a continuación, haga clic en Suscribirse.

Debería ver una confirmación de que la lista de espera se ha suscrito correctamente a su tema.

Creación de una canalización de Elastic Transcoder

  1. Abra la consola de Amazon Elastic Transcoder.

  2. En la consola, elija Crear una canalización nueva.

  3. En el campo Nombre, escriba ets-sample-pipeline.

  4. En el campo Bucket de entrada, escriba el nombre del bucket de entrada.

  5. Deje Rol de IAM como Console Default Role.

  6. En Configurar el bucket de Amazon S3 para listas de reproducción y archivos transcodificados, escriba el nombre del bucket de salida.

  7. Aún en Configurar el bucket de Amazon S3 para listas de reproducción y archivos transcodificados, seleccione la clase de almacenamiento estándar.

  8. Expanda el menú desplegable Notificaciones.

  9. Para los cuatro tipos de eventos, seleccione Usar un tema de SNS existente y, en Seleccionar un tema, elija ets-sample-topic.

  10. Haga clic en Create Pipeline (Crear canalización).

  11. Registre el ID de canalización de Elastic Transcoder.

Creación de una distribución de Amazon CloudFront para entregar contenido de manera escalable

  1. Abra la consola de Amazon CloudFront.

  2. En el panel de navegación de la consola, expanda Contenido privado y, a continuación, haga clic en Identidad de acceso de origen.

  3. Seleccione Crear identidad de acceso de origen.

  4. Haga clic en Create (Crear).

  5. Registre el ID de usuario canónico de Amazon S3 que se genera al crear su identidad de acceso de origen.

  6. En el panel de navegación, elija Distribución.

  7. Haga clic en Create Distribution (Crear distribución).

  8. Seleccione Web y, a continuación, haga clic en Continuar.

  9. En Configuración de origen, introduzca su bucket de salida de Amazon S3 como Nombre de dominio de origen.

  10. En el campo ID de origen, introduzca S3-transcoder-sample-output.

  11. En Restringir acceso al bucket, elija .

  12. Haga clic en Crear distribución y registre el nombre de dominio de la distribución.

Modificación de la política de bucket de Amazon S3

  1. Abra la consola de Amazon S3.

  2. Junto al bucket de salida, haga clic en el icono de la lupa para que aparezcan las propiedades del bucket.

  3. Expanda Permisos y haga clic en Añadir política de bucket.

  4. Introduzca la siguiente declaración de política y sustituya CloudFront-OAI-S3-canonical-user-ID con your recorded Amazon S3 canonical user ID y s3-output-bucket-name con the name of your output bucket.

  5. Haga clic en Guardar.

{ "Version":"2012-10-17", "Id":"PolicyForCloudFrontPrivateContent", "Statement":[{ "Sid":" Granting CloudFront OAI access to private content", "Effect":"Allow", "Principal":{ "CanonicalUser":"<CloudFront-oai-s3-canonical-user-id>" }, "Action":"s3:GetObject", "Resource":"arn:aws:s3:::<s3-output-bucket-name>/*" }] }

Vaya a Muestras de Ruby.

Configuración del entorno de PHP

Esta sección presenta la configuración del entorno de PHP.

El código de muestra realiza tres grandes suposiciones:

  • Las muestras de PHP se ejecutan dentro de un servidor de Apache.

  • El servidor de Apache debe poder tomar la entrada desde Internet para recibir notificaciones de Amazon SNS.

  • Las muestras se redactan para trabajar con la versión de PHP 5.4 o superior.

Instalación del código de muestra

Para utilizar el código de muestra de PHP, primero debe descargarlo e instalarlo.

nota

En HlsJobCreationSample.php y JobStatusNotificationsSample.php, debe actualizar la ruta a su autoload.php. Si utiliza la instalación phar, puede utilizar la ruta al archivo aws.phar que ha descargado, que incluye todas las dependencias necesarias.

Configuración de AWS SDK para PHP

Puede encontrar el AWS SDK para PHP aquí. En este tutorial, le recomendamos la instalación phar; sin embargo, los proyectos a largo plazo se gestionan mejor mediante Composer.

Para obtener más información, consulte la documentación de AWS SDK para PHP.

Creación de buckets de entrada y salida de Amazon S3

  1. Abra la consola de Amazon S3.

  2. En la consola, haga clic en Crear bucket.

  3. En el campo Asignar un nombre al bucket, escriba el nombre que desee para el bucket de entrada.

  4. En la consola de Amazon S3, haga clic otra vez en Crear bucket.

  5. En el campo Asignar un nombre al bucket, escriba el nombre que desee para el bucket de salida.

Creación de un tema de Amazon SNS para recibir notificaciones del estado de una tarea

  1. Abra la consola de Amazon SNS.

  2. En la consola, haga clic en Crear y añadir y seleccione Crear tema nuevo.

  3. En el campo Nombre del tema, introduzca ets-sample-topic y, a continuación, haga clic en Crear tema.

  4. Registre el ARN de ets-sample-topic.

Suscripción de su servidor a Amazon SNS

  1. Compruebe que se ha instalado el código de muestra de PHP.

  2. Abra la consola de Amazon SNS.

  3. En AdditionalActions, haga clic en Create Subscription.

  4. Seleccione HTTP o HTTPS en función de la configuración del servidor.

  5. En Endpoint, introduzca el punto de conexión del servidor. La ruta del punto de conexión debería apuntar a JobStatusNotificationsSampleNotificationHandler.php.

  6. Haga clic en Subscribe (Suscribir). Esto envía una solicitud de suscripción a su punto de conexión de PHP.

El código de muestra de PHP gestiona de manera automática la solicitud de suscripción y confirma una suscripción. La solicitud de suscripción y la respuesta se escriben en /tmp/subscribe_requests.txt.

Creación de una canalización de Elastic Transcoder

  1. Abra la consola de Amazon Elastic Transcoder.

  2. En la consola, elija Crear una canalización nueva.

  3. En el campo Nombre, escriba ets-sample-pipeline.

  4. En el campo Bucket de entrada, escriba el nombre del bucket de entrada.

  5. Deje Rol de IAM como Console Default Role.

  6. En Configurar el bucket de Amazon S3 para listas de reproducción y archivos transcodificados, escriba el nombre del bucket de salida.

  7. Aún en Configurar el bucket de Amazon S3 para listas de reproducción y archivos transcodificados, seleccione la clase de almacenamiento estándar.

  8. Expanda el menú desplegable Notificaciones.

  9. Para los cuatro tipos de eventos, seleccione Usar un tema de SNS existente y, en Seleccionar un tema, elija ets-sample-topic.

  10. Haga clic en Create Pipeline (Crear canalización).

  11. Registre el ID de canalización de Elastic Transcoder.

Creación de una distribución de Amazon CloudFront para entregar contenido de manera escalable

  1. Abra la consola de Amazon CloudFront.

  2. En el panel de navegación de la consola, expanda Contenido privado y, a continuación, haga clic en Identidad de acceso de origen.

  3. Seleccione Crear identidad de acceso de origen.

  4. Haga clic en Create (Crear).

  5. Registre el ID de usuario canónico de Amazon S3 que se genera al crear su identidad de acceso de origen.

  6. En el panel de navegación, elija Distribución.

  7. Haga clic en Create Distribution (Crear distribución).

  8. Seleccione Web y, a continuación, haga clic en Continuar.

  9. En Configuración de origen, introduzca su bucket de salida de Amazon S3 como Nombre de dominio de origen.

  10. En el campo ID de origen, introduzca S3-transcoder-sample-output.

  11. En Restringir acceso al bucket, elija .

  12. Haga clic en Crear distribución y registre el nombre de dominio de la distribución.

Modificación de la política de bucket de Amazon S3

  1. Abra la consola de Amazon S3.

  2. Junto al bucket de salida, haga clic en el icono de la lupa para que aparezcan las propiedades del bucket.

  3. Expanda Permisos y haga clic en Añadir política de bucket.

  4. Introduzca la siguiente declaración de política y sustituya CloudFront-OAI-S3-canonical-user-ID con your recorded Amazon S3 canonical user ID y s3-output-bucket-name con the name of your output bucket.

  5. Haga clic en Guardar.

{ "Version":"2012-10-17", "Id":"PolicyForCloudFrontPrivateContent", "Statement":[{ "Sid":" Granting CloudFront OAI access to private content", "Effect":"Allow", "Principal":{ "CanonicalUser":"<CloudFront-oai-s3-canonical-user-id>" }, "Action":"s3:GetObject", "Resource":"arn:aws:s3:::<s3-output-bucket-name>/*" }] }

Vaya a Muestras de PHP.

Configuración del entorno de Python

Esta sección presenta la configuración del entorno de Python.

Realiza una gran suposición:

  • Las muestras se redactan para ser compatibles con Python versión 2.7.

Configuración de AWS SDK para Python

Puede encontrar el AWS SDK para Python aquí. También puede instalarlo fácilmente mediante PIP con el siguiente comando:

pip-2.7 install boto

Para obtener más información consulte la documentación de AWS SDK para Python.

Creación de buckets de entrada y salida de Amazon S3

  1. Abra la consola de Amazon S3.

  2. En la consola, haga clic en Crear bucket.

  3. En el campo Asignar un nombre al bucket, escriba el nombre que desee para el bucket de entrada.

  4. En la consola de Amazon S3, haga clic otra vez en Crear bucket.

  5. En el campo Asignar un nombre al bucket, escriba el nombre que desee para el bucket de salida.

Creación de un tema de Amazon SNS para recibir notificaciones del estado de una tarea

  1. Abra la consola de Amazon SNS.

  2. En la consola, haga clic en Crear y añadir y seleccione Crear tema nuevo.

  3. En el campo Nombre del tema, introduzca ets-sample-topic y, a continuación, haga clic en Crear tema.

  4. Registre el ARN de ets-sample-topic.

Creación de una cola de Amazon SQS para sondear las notificaciones del estado de una tarea

  1. Abra la consola de Amazon SQS.

  2. En la consola, elija Crear cola nueva.

  3. En el campo Nombre de la cola, introduzca ets-sample-queue y, a continuación, haga clic en Crear cola.

  4. Registre la URL de la cola de Amazon SQS.

Suscripción de una cola de Amazon SQS a un tema de Amazon SNS

  1. Abra la consola de Amazon SQS.

  2. En la consola, seleccione ets-sample-queue en la lista de colas.

  3. En Acciones de cola, seleccione Suscribir cola a tema de Amazon SNS.

  4. En Elija un tema, seleccione ets-sample-topic y, a continuación, haga clic en Suscribirse.

Debería ver una confirmación de que la lista de espera se ha suscrito correctamente a su tema.

Creación de una canalización de Elastic Transcoder

  1. Abra la consola de Amazon Elastic Transcoder.

  2. En la consola, elija Crear una canalización nueva.

  3. En el campo Nombre, escriba ets-sample-pipeline.

  4. En el campo Bucket de entrada, escriba el nombre del bucket de entrada.

  5. Deje Rol de IAM como Console Default Role.

  6. En Configurar el bucket de Amazon S3 para listas de reproducción y archivos transcodificados, escriba el nombre del bucket de salida.

  7. Aún en Configurar el bucket de Amazon S3 para listas de reproducción y archivos transcodificados, seleccione la clase de almacenamiento estándar.

  8. Expanda el menú desplegable Notificaciones.

  9. Para los cuatro tipos de eventos, seleccione Usar un tema de SNS existente y, en Seleccionar un tema, elija ets-sample-topic.

  10. Haga clic en Create Pipeline (Crear canalización).

  11. Registre el ID de canalización de Elastic Transcoder.

Creación de una distribución de Amazon CloudFront para entregar contenido de manera escalable

  1. Abra la consola de Amazon CloudFront.

  2. En el panel de navegación de la consola, expanda Contenido privado y, a continuación, haga clic en Identidad de acceso de origen.

  3. Seleccione Crear identidad de acceso de origen.

  4. Haga clic en Create (Crear).

  5. Registre el ID de usuario canónico de Amazon S3 que se genera al crear su identidad de acceso de origen.

  6. En el panel de navegación, elija Distribución.

  7. Haga clic en Create Distribution (Crear distribución).

  8. Seleccione Web y, a continuación, haga clic en Continuar.

  9. En Configuración de origen, introduzca su bucket de salida de Amazon S3 como Nombre de dominio de origen.

  10. En el campo ID de origen, introduzca S3-transcoder-sample-output.

  11. En Restringir acceso al bucket, elija .

  12. Haga clic en Crear distribución y registre el nombre de dominio de la distribución.

Modificación de la política de bucket de Amazon S3

  1. Abra la consola de Amazon S3.

  2. Junto al bucket de salida, haga clic en el icono de la lupa para que aparezcan las propiedades del bucket.

  3. Expanda Permisos y haga clic en Añadir política de bucket.

  4. Introduzca la siguiente declaración de política y sustituya CloudFront-OAI-S3-canonical-user-ID con your recorded Amazon S3 canonical user ID y s3-output-bucket-name con the name of your output bucket.

  5. Haga clic en Guardar.

{ "Version":"2012-10-17", "Id":"PolicyForCloudFrontPrivateContent", "Statement":[{ "Sid":" Granting CloudFront OAI access to private content", "Effect":"Allow", "Principal":{ "CanonicalUser":"<CloudFront-oai-s3-canonical-user-id>" }, "Action":"s3:GetObject", "Resource":"arn:aws:s3:::<s3-output-bucket-name>/*" }] }

Vaya a Muestras de Python.

Muestras de Java

Todas las muestras de Java realizan dos suposiciones:

  • Las muestras se redactan para trabajar con la versión de Java 1.6 o superior.

  • Las muestras se ejecutan con Eclipse con AWS Toolkit for Eclipse.

Muestras de HLS

En este ejemplo se muestra cómo crear una tarea de HLS y un archivo de lista de reproducción de HLS que se pueden utilizar para reproducir un flujo de velocidad de bits adaptable.

Puede descargar el código de muestra aquí.

Componentes del código de muestra

El código de muestra de Java incluye:

  • La clase HlsJobCreationSample

Tareas

Para ejecutar la muestra, siga estos pasos:

  1. Siga estas instrucciones para configurar su entorno: Configuración del entorno de Java

  2. Descargue el código de muestra.

  3. En Eclipse, abra com/amazonaws/services/elastictranscoder/samples/HlsJobCreationSample.java.

  4. Sustituya PIPELINE_ID e INPUT_KEY por los valores adecuados.

  5. Ejecute las muestras en Eclipse.

Muestras de notificaciones

Ejemplo de sintaxis de notificaciones

{ "Type" : "Notification", "MessageId" : "341527b6-9081-5f3d-b933-6c8472c3be40", "TopicArn" : "arn:aws:sns:us-east-1:123456789012:ets-sample-topic", "Subject" : "Amazon Elastic Transcoder has scheduled job 1387847681009 -abcdef for transcoding.", "Message" : "{\n \"state\" : \"PROGRESSING\",\n \"version\" : \"2012-09-25\",\n \"jobId\" : \"1387847681009-abcdef\", \n \"pipelineId\" : \"1387847629327-fedcba\",\n \"input\" : {\n \"key\" : \"input/example/key.mp4\",\n \"frameRate\" : \"auto\",\n \"resolution\" : \"auto\",\n \"aspectRatio\" : \"auto\",\n \"interlaced\" : \"auto\",\n \"container\" : \"auto\"\n },\n \"outputKeyPrefix\" : \"elastic-transcoder-samples/\",\n \"outputs\" : [ {\n \"id\" : \"1\",\n \"presetId\" : \"1351620000001-000020\",\n \"key\" : \"output/example/key.mp4\",\n \"thumbnailPattern\" : \"\",\n \"rotate\" : \"auto\",\n \"status\" : \"Progressing\"\n } ]\n}", "Timestamp" : "2013-12-24T01:14:42.493Z", "SignatureVersion" : "1", "Signature" : "ElSqJW3ZksCPViYGTayI/p+LjdF2HB42iJlIJRJ+jWzWwygXdiJXvZXl94qhd/tLln1lxPqijjivb5RWu7n5yzdZwbod6lpLwyZ2TfWM6dZt57OzsG3GbdTxgqwVsztVSyWCYhcV8f+CrT3IQrfrU3Me/SRYVUqrSUXXsu4Ls7A2q9mosG7v0Sn+3Z1rAa9+Rf6QmkfAg05UX0sLyA+I2hFqTu5oAGDK4Cm6FHuIwV+oYJXNBbGWuS7tD6mRNwrYvPBlUvBLXx9m3CbqSXv5Yoj39vglv+1djtaLA3GpwX+B1hHx8QT373lgmmsmGDRWhSQretpOTWDYb81PV2K0bg==", "SigningCertURL" : "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-e372f8ca30337fdb084e8ac449342c77.pem", "UnsubscribeURL" : "https://sns.us-east-1.amazonaws.com/?Action= Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:123456789012:ets- sample-topic:b3ec47e5-e1f0-401f-a0a5-98c7fe405c2b" }

Puede descargar el código de muestra aquí.

Componentes del código de muestra

El código de muestra de Java incluye:

  • La clase Notification: para consumir notificaciones de Java, utilice la biblioteca de Jackson JSON para deserializar las notificaciones de estado de tareas en POJO. La clase Notification modela el mensaje que recibimos de la cola de Amazon SQS.

  • La clase JobStatusNotification: la clase JobStatusNotification modela una notificación de Elastic Transcoder.

  • La clase SqsQueueNotificationWorker: la clase SqsQueueNotificationWorker puede iniciarse en un subproceso separado para sondear Amazon SQS y gestionar las notificaciones de estado de la tarea. Esta clase recibe mensajes, llama a todos los controladores registrados para cada notificación recibida y elimina el mensaje de la cola.

  • La interfaz JobStatusNotificationHandler: la interfaz JobStatusNotificationHandler puede aplicarse para permitir la gestión personalizada de notificaciones.

  • La clase JobStatusNotificationsSample: la clase JobStatusNotificationsSample crea una tarea y espera hasta que se ha completado. Cuando la tarea entra en estado terminal, el proceso de trabajo de la cola se cierra y la aplicación sale.

Tareas

Para ejecutar la muestra, siga estos pasos:

  1. Siga estas instrucciones para configurar su entorno: Configuración del entorno de Java.

  2. Descargue el código de muestra.

  3. Descomprima el código de muestra en el directorio de origen del proyecto de JAVA.

  4. Abra com/amazonaws/services/elastictranscoder/samples/JobStatusNotificationsSample.java en Eclipse.

  5. Sustituya PIPELINE_ID, SQS_QUEUE_URL y INPUT_KEY por los valores adecuados.

  6. Ejecute la muestra en Eclipse.

Muestras de Ruby

Todas las muestras de Ruby realizan una gran suposición:

  • Las muestras se redactan para ser compatibles con Ruby versión 1.9.

Muestras de HLS

En este ejemplo se muestra cómo crear una tarea de HLS y un archivo de lista de reproducción de HLS que se pueden utilizar para reproducir un flujo de velocidad de bits adaptable.

Puede descargar el código de muestra aquí.

Componentes del código de muestra

El código de muestra de Ruby incluye:

  • El archivo HlsJobCreationSample.rb

Tareas

Para ejecutar la muestra, siga estos pasos:

  1. Siga estas instrucciones para configurar su entorno: Configuración del entorno de Ruby

  2. Descargue el código de muestra.

  3. Descomprima el código de muestra en el directorio de origen del proyecto de Ruby.

  4. Edite HlsJobCreationSample.rb y sustituya pipeline_id e input_key por los valores adecuados.

  5. Desde un terminal, vaya al directorio donde ha descomprimido el código de muestra y ejecute:

$ruby HlsJobCreationSample.rb

Muestras de notificaciones

Ejemplo de sintaxis de notificaciones

{ "Type" : "Notification", "MessageId" : "341527b6-9081-5f3d-b933-6c8472c3be40", "TopicArn" : "arn:aws:sns:us-east-1:123456789012:ets-sample-topic", "Subject" : "Amazon Elastic Transcoder has scheduled job 1387847681009 -abcdef for transcoding.", "Message" : "{\n \"state\" : \"PROGRESSING\",\n \"version\" : \"2012-09-25\",\n \"jobId\" : \"1387847681009-abcdef\", \n \"pipelineId\" : \"1387847629327-fedcba\",\n \"input\" : {\n \"key\" : \"input/example/key.mp4\",\n \"frameRate\" : \"auto\",\n \"resolution\" : \"auto\",\n \"aspectRatio\" : \"auto\",\n \"interlaced\" : \"auto\",\n \"container\" : \"auto\"\n },\n \"outputKeyPrefix\" : \"elastic-transcoder-samples/\",\n \"outputs\" : [ {\n \"id\" : \"1\",\n \"presetId\" : \"1351620000001-000020\",\n \"key\" : \"output/example/key.mp4\",\n \"thumbnailPattern\" : \"\",\n \"rotate\" : \"auto\",\n \"status\" : \"Progressing\"\n } ]\n}", "Timestamp" : "2013-12-24T01:14:42.493Z", "SignatureVersion" : "1", "Signature" : "ElSqJW3ZksCPViYGTayI/p+LjdF2HB42iJlIJRJ+jWzWwygXdiJXvZXl94qhd/tLln1lxPqijjivb5RWu7n5yzdZwbod6lpLwyZ2TfWM6dZt57OzsG3GbdTxgqwVsztVSyWCYhcV8f+CrT3IQrfrU3Me/SRYVUqrSUXXsu4Ls7A2q9mosG7v0Sn+3Z1rAa9+Rf6QmkfAg05UX0sLyA+I2hFqTu5oAGDK4Cm6FHuIwV+oYJXNBbGWuS7tD6mRNwrYvPBlUvBLXx9m3CbqSXv5Yoj39vglv+1djtaLA3GpwX+B1hHx8QT373lgmmsmGDRWhSQretpOTWDYb81PV2K0bg==", "SigningCertURL" : "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-e372f8ca30337fdb084e8ac449342c77.pem", "UnsubscribeURL" : "https://sns.us-east-1.amazonaws.com/?Action= Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:123456789012:ets- sample-topic:b3ec47e5-e1f0-401f-a0a5-98c7fe405c2b" }

Puede descargar el código de muestra aquí.

Componentes del código de muestra

El código de muestra de Ruby incluye:

  • La clase SqsQueueNotificationWorker: la clase SqsQueueNotificationWorker sondea Amazon SQS en busca de notificaciones, llama a todos los controladores registrados para cada notificación y elimina el mensaje de la cola. Tenga en cuenta que el proceso de trabajo se ejecuta en un subproceso separado. Si la implementación de Ruby utilizó subprocesos "verdes", entonces solo se ejecuta un subproceso a la vez (no es así para los procesamientos múltiples).

  • El script JobStatusNotificationsSample.rb: este script crea una tarea de Elastic Transcoder, inicia un proceso de trabajo de Amazon SQS y espera hasta que se complete la tarea. El controlador que se proporciona indica al proceso de trabajo de Amazon SQS que se detenga una vez que se ha completado el procesamiento de la tarea creada. La gestión de las notificaciones se realiza mediante la recuperación del método add_handlers y proporcionando un Proc o lambda como controlador que toma un argumento único. Para cada notificación recibida, se llama a todos los controladores registrados con la notificación proporcionada como argumento de entrada al controlador.

Tareas

Para ejecutar la muestra, siga estos pasos:

  1. Siga estas instrucciones para configurar su entorno: Configuración del entorno de Ruby

  2. Descargue el código de muestra.

  3. Descomprima el código de muestra en el directorio de origen del proyecto de Ruby.

  4. Edite JobStatusNotificationsSample.rb y sustituya pipeline_id, sqs_queue_url e input_key por los valores adecuados.

  5. Desde un terminal, vaya al directorio donde ha descomprimido el código de muestra y ejecute:

$ruby JobStatusNotificationsSample.rb

Muestras de PHP

Todas las muestras de PHP realizan tres grandes suposiciones:

  • Las muestras de PHP se ejecutan dentro de un servidor de Apache.

  • El servidor de Apache debe poder tomar la entrada desde Internet para recibir notificaciones de Amazon SNS.

  • Las muestras se redactan para trabajar con la versión de PHP 5.4 o superior.

Muestras de HLS

En este ejemplo se muestra cómo crear una tarea de HLS y un archivo de lista de reproducción de HLS que se pueden utilizar para reproducir un flujo de velocidad de bits adaptable.

Puede descargar el código de muestra aquí.

Componentes del código de muestra

El código de muestra de PHP incluye:

  • El archivo HlsJobCreationSample.php

Tareas

Para ejecutar la muestra, siga estos pasos:

  1. Siga estas instrucciones para configurar su entorno: Configuración del entorno de PHP

  2. Descargue el código de muestra.

  3. En el navegador, cargue la página http://<your-endpoint>/transcoder-samples/HlsJobCreationSample.php.

  4. Rellene el ID de la canalización y la clave de entrada, y envíe el formulario para crear una tarea.

Muestras de notificaciones

Ejemplo de sintaxis de notificaciones

{ "Type" : "Notification", "MessageId" : "341527b6-9081-5f3d-b933-6c8472c3be40", "TopicArn" : "arn:aws:sns:us-east-1:123456789012:ets-sample-topic", "Subject" : "Amazon Elastic Transcoder has scheduled job 1387847681009 -abcdef for transcoding.", "Message" : "{\n \"state\" : \"PROGRESSING\",\n \"version\" : \"2012-09-25\",\n \"jobId\" : \"1387847681009-abcdef\", \n \"pipelineId\" : \"1387847629327-fedcba\",\n \"input\" : {\n \"key\" : \"input/example/key.mp4\",\n \"frameRate\" : \"auto\",\n \"resolution\" : \"auto\",\n \"aspectRatio\" : \"auto\",\n \"interlaced\" : \"auto\",\n \"container\" : \"auto\"\n },\n \"outputKeyPrefix\" : \"elastic-transcoder-samples/\",\n \"outputs\" : [ {\n \"id\" : \"1\",\n \"presetId\" : \"1351620000001-000020\",\n \"key\" : \"output/example/key.mp4\",\n \"thumbnailPattern\" : \"\",\n \"rotate\" : \"auto\",\n \"status\" : \"Progressing\"\n } ]\n}", "Timestamp" : "2013-12-24T01:14:42.493Z", "SignatureVersion" : "1", "Signature" : "ElSqJW3ZksCPViYGTayI/p+LjdF2HB42iJlIJRJ+jWzWwygXdiJXvZXl94qhd/tLln1lxPqijjivb5RWu7n5yzdZwbod6lpLwyZ2TfWM6dZt57OzsG3GbdTxgqwVsztVSyWCYhcV8f+CrT3IQrfrU3Me/SRYVUqrSUXXsu4Ls7A2q9mosG7v0Sn+3Z1rAa9+Rf6QmkfAg05UX0sLyA+I2hFqTu5oAGDK4Cm6FHuIwV+oYJXNBbGWuS7tD6mRNwrYvPBlUvBLXx9m3CbqSXv5Yoj39vglv+1djtaLA3GpwX+B1hHx8QT373lgmmsmGDRWhSQretpOTWDYb81PV2K0bg==", "SigningCertURL" : "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-e372f8ca30337fdb084e8ac449342c77.pem", "UnsubscribeURL" : "https://sns.us-east-1.amazonaws.com/?Action= Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:123456789012:ets- sample-topic:b3ec47e5-e1f0-401f-a0a5-98c7fe405c2b" }

Puede descargar el código de muestra aquí.

Componentes del código de muestra

El código de muestra de PHP incluye:

  • El archivo JobStatusNotificationsSampleNotificationHandler.php: cuando se efectúa una notificación mediante una solicitud POST en su servidor, el controlador de la notificación escribe el estado en un archivo bajo /tmp/<job-id>.

  • El archivo JobStatusNotificationsSample.php: una vez que el controlador de notificaciones escribe el estado en un archivo bajo /tmp/<job-id>, JobStatusNotificationsSample.php carga el archivo de estado /tmp/<job-id> especificado por el identificador de la cadena de consulta que se le ha dado.

Tareas

Para ejecutar la muestra, siga estos pasos:

  1. Siga estas instrucciones para configurar su entorno: Configuración del entorno de PHP

  2. Descargue el código de muestra.

  3. Descomprima el código de muestra en el directorio de origen del proyecto de PHP.

  4. En el navegador, cargue la página http://<your-endpoint>/transcoder-samples/JobStatusNotificationsSample.php.

  5. Rellene el ID de la canalización y la clave de entrada que desea transcondificar y pulse el botón Create Job.

Muestras de Python

Todas las muestras de Python realizan una gran suposición:

  • Las muestras se redactan para ser compatibles con Python versión 2.7.

Muestras de HLS

En este ejemplo se muestra cómo crear una tarea de HLS y un archivo de lista de reproducción de HLS que se pueden utilizar para reproducir un flujo de velocidad de bits adaptable.

Puede descargar el código de muestra aquí.

Componentes del código de muestra

El código de muestra de Phyton incluye:

  • El archivo HlsJobCreationSample.py

Tareas

Para ejecutar la muestra, siga estos pasos:

  1. Siga estas instrucciones para configurar su entorno: Configuración del entorno de Python

  2. Descargue el código de muestra.

  3. Descomprima el código de muestra.

  4. Edite HlsJobCreationSample.py y sustituya pipeline_id e input_key por los valores adecuados.

  5. Desde un terminal, vaya al directorio donde ha descomprimido el código de muestra y ejecute:

$python HlsJobCreationSample.py

Muestras de notificaciones

Ejemplo de sintaxis de notificaciones

{ "Type" : "Notification", "MessageId" : "341527b6-9081-5f3d-b933-6c8472c3be40", "TopicArn" : "arn:aws:sns:us-east-1:123456789012:ets-sample-topic", "Subject" : "Amazon Elastic Transcoder has scheduled job 1387847681009 -abcdef for transcoding.", "Message" : "{\n \"state\" : \"PROGRESSING\",\n \"version\" : \"2012-09-25\",\n \"jobId\" : \"1387847681009-abcdef\", \n \"pipelineId\" : \"1387847629327-fedcba\",\n \"input\" : {\n \"key\" : \"input/example/key.mp4\",\n \"frameRate\" : \"auto\",\n \"resolution\" : \"auto\",\n \"aspectRatio\" : \"auto\",\n \"interlaced\" : \"auto\",\n \"container\" : \"auto\"\n },\n \"outputKeyPrefix\" : \"elastic-transcoder-samples/\",\n \"outputs\" : [ {\n \"id\" : \"1\",\n \"presetId\" : \"1351620000001-000020\",\n \"key\" : \"output/example/key.mp4\",\n \"thumbnailPattern\" : \"\",\n \"rotate\" : \"auto\",\n \"status\" : \"Progressing\"\n } ]\n}", "Timestamp" : "2013-12-24T01:14:42.493Z", "SignatureVersion" : "1", "Signature" : "ElSqJW3ZksCPViYGTayI/p+LjdF2HB42iJlIJRJ+jWzWwygXdiJXvZXl94qhd/tLln1lxPqijjivb5RWu7n5yzdZwbod6lpLwyZ2TfWM6dZt57OzsG3GbdTxgqwVsztVSyWCYhcV8f+CrT3IQrfrU3Me/SRYVUqrSUXXsu4Ls7A2q9mosG7v0Sn+3Z1rAa9+Rf6QmkfAg05UX0sLyA+I2hFqTu5oAGDK4Cm6FHuIwV+oYJXNBbGWuS7tD6mRNwrYvPBlUvBLXx9m3CbqSXv5Yoj39vglv+1djtaLA3GpwX+B1hHx8QT373lgmmsmGDRWhSQretpOTWDYb81PV2K0bg==", "SigningCertURL" : "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-e372f8ca30337fdb084e8ac449342c77.pem", "UnsubscribeURL" : "https://sns.us-east-1.amazonaws.com/?Action= Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:123456789012:ets- sample-topic:b3ec47e5-e1f0-401f-a0a5-98c7fe405c2b" }

Puede descargar el código de muestra aquí.

Componentes del código de muestra

El código de muestra de Phyton incluye:

  • La clase SqsQueueNotificationWorker.py: la clase SqsQueueNotificationWorker sondea Amazon SQS y gestiona las notificaciones en un proceso independiente. Esto permite un multiprocesamiento verdadero en Python. Esta clase recibe mensajes, llama a todos los controladores registrados para cada notificación recibida y elimina el mensaje de la cola. Esta clase también incluye la definición de la clase JobStatusNotificationHandler, que se proporciona para ofrecer una plataforma para la gestión de notificaciones de Elastic Transcoder. Esta clase puede ampliarse y el método de gestión sobrescribirse para proporcionar una gestión de tareas personalizada. Tenga en cuenta que esto no sigue los estándares de Python relativos al "duck typing" pero proporciona una definición formal de controladores a los efectos de esta muestra.

  • El script JobStatusNotificationSample.py: el script JobStatusNotificationSample.py crea una tarea en Elastic Transcoder y espera a que se complete. Una vez completada la tarea, detiene el proceso de sondeo de la cola y sale. La sincronización entre procesos mediante el objeto de valores de procesamiento múltiple es necesaria porque el controlador se ejecuta en un proceso separado de la cola que sondea.

Tareas

Para ejecutar la muestra, siga estos pasos:

  1. Siga estas instrucciones para configurar su entorno: Configuración del entorno de Python

  2. Descargue el código de muestra.

  3. Descomprima el código de muestra a la carpeta local.

  4. Edite JobStatusNotificationsSample.py y sustituya pipeline_id, sqs_queue_url e input_key por los valores adecuados.

  5. Desde un terminal, vaya al directorio donde ha descomprimido el código de muestra y ejecute:

$python JobStatusNotificationsSample.py