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.
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.
Temas
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.
Temas
Configuración del entorno de Java
Esta sección presenta la configuración del entorno de Java.
Temas
- Configuración de AWS SDK para Java
- Creación de buckets de entrada y salida de Amazon S3
- Creación de un tema de Amazon SNS para recibir notificaciones del estado de una tarea
- Creación de una cola de Amazon SQS para sondear las notificaciones del estado de una tarea
- Suscripción de una cola de Amazon SQS a un tema de Amazon SNS
- Creación de una canalización de Elastic Transcoder
- Creación de una distribución de Amazon CloudFront para entregar contenido de manera escalable
- Modificación de la política de bucket de Amazon S3
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
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
Abra la consola de Amazon S3
. En la consola, haga clic en Crear bucket.
En el campo Asignar un nombre al bucket, escriba el nombre que desee para el bucket de entrada.
En la consola de Amazon S3, haga clic otra vez en Crear bucket.
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
Abra la consola de Amazon SNS
. En la consola, haga clic en Crear y añadir y seleccione Crear tema nuevo.
En el campo Nombre del tema, introduzca
ets-sample-topic
y, a continuación, haga clic en Crear tema.Registre el ARN de
ets-sample-topic
.
Creación de una cola de Amazon SQS para sondear las notificaciones del estado de una tarea
Abra la consola de Amazon SQS
. En la consola, elija Crear cola nueva.
En el campo Nombre de la cola, introduzca
ets-sample-queue
y, a continuación, haga clic en Crear cola.Registre la URL de la cola de Amazon SQS.
Suscripción de una cola de Amazon SQS a un tema de Amazon SNS
Abra la consola de Amazon SQS
. En la consola, seleccione ets-sample-queue en la lista de colas.
En Acciones de cola, seleccione Suscribir cola a tema de Amazon SNS.
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
Abra la consola de Amazon Elastic Transcoder
. En la consola, elija Crear una canalización nueva.
En el campo Nombre, escriba
ets-sample-pipeline
.En el campo Bucket de entrada, escriba el nombre del bucket de entrada.
Deje Rol de IAM como
Console Default Role
.En Configurar el bucket de Amazon S3 para listas de reproducción y archivos transcodificados, escriba el nombre del bucket de salida.
Aún en Configurar el bucket de Amazon S3 para listas de reproducción y archivos transcodificados, seleccione la clase de almacenamiento estándar.
Expanda el menú desplegable Notificaciones.
Para los cuatro tipos de eventos, seleccione Usar un tema de SNS existente y, en Seleccionar un tema, elija
ets-sample-topic
.Haga clic en Create Pipeline (Crear canalización).
Registre el ID de canalización de Elastic Transcoder.
Creación de una distribución de Amazon CloudFront para entregar contenido de manera escalable
Abra la consola de Amazon CloudFront
. En el panel de navegación de la consola, expanda Contenido privado y, a continuación, haga clic en Identidad de acceso de origen.
Seleccione Crear identidad de acceso de origen.
Haga clic en Create (Crear).
Registre el ID de usuario canónico de Amazon S3 que se genera al crear su identidad de acceso de origen.
En el panel de navegación, elija Distribución.
Haga clic en Create Distribution (Crear distribución).
Seleccione Web y, a continuación, haga clic en Continuar.
En Configuración de origen, introduzca su bucket de salida de Amazon S3 como Nombre de dominio de origen.
En el campo ID de origen, introduzca
S3-transcoder-sample-output
.En Restringir acceso al bucket, elija Sí.
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
Abra la consola de Amazon S3
. Junto al bucket de salida, haga clic en el icono de la lupa para que aparezcan las propiedades del bucket.
Expanda Permisos y haga clic en Añadir política de bucket.
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 conthe name of your output bucket
.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.
Temas
- Configuración de AWS SDK para Ruby
- Creación de buckets de entrada y salida de Amazon S3
- Creación de un tema de Amazon SNS para recibir notificaciones del estado de una tarea
- Creación de una cola de Amazon SQS para sondear las notificaciones del estado de una tarea
- Suscripción de una cola de Amazon SQS a un tema de Amazon SNS
- Creación de una canalización de Elastic Transcoder
- Creación de una distribución de Amazon CloudFront para entregar contenido de manera escalable
- Modificación de la política de bucket de Amazon S3
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í
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
Abra la consola de Amazon S3
. En la consola, haga clic en Crear bucket.
En el campo Asignar un nombre al bucket, escriba el nombre que desee para el bucket de entrada.
En la consola de Amazon S3, haga clic otra vez en Crear bucket.
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
Abra la consola de Amazon SNS
. En la consola, haga clic en Crear y añadir y seleccione Crear tema nuevo.
En el campo Nombre del tema, introduzca
ets-sample-topic
y, a continuación, haga clic en Crear tema.Registre el ARN de
ets-sample-topic
.
Creación de una cola de Amazon SQS para sondear las notificaciones del estado de una tarea
Abra la consola de Amazon SQS
. En la consola, elija Crear cola nueva.
En el campo Nombre de la cola, introduzca
ets-sample-queue
y, a continuación, haga clic en Crear cola.Registre la URL de la cola de Amazon SQS.
Suscripción de una cola de Amazon SQS a un tema de Amazon SNS
Abra la consola de Amazon SQS
. En la consola, seleccione ets-sample-queue en la lista de colas.
En Acciones de cola, seleccione Suscribir cola a tema de Amazon SNS.
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
Abra la consola de Amazon Elastic Transcoder
. En la consola, elija Crear una canalización nueva.
En el campo Nombre, escriba
ets-sample-pipeline
.En el campo Bucket de entrada, escriba el nombre del bucket de entrada.
Deje Rol de IAM como
Console Default Role
.En Configurar el bucket de Amazon S3 para listas de reproducción y archivos transcodificados, escriba el nombre del bucket de salida.
Aún en Configurar el bucket de Amazon S3 para listas de reproducción y archivos transcodificados, seleccione la clase de almacenamiento estándar.
Expanda el menú desplegable Notificaciones.
Para los cuatro tipos de eventos, seleccione Usar un tema de SNS existente y, en Seleccionar un tema, elija
ets-sample-topic
.Haga clic en Create Pipeline (Crear canalización).
Registre el ID de canalización de Elastic Transcoder.
Creación de una distribución de Amazon CloudFront para entregar contenido de manera escalable
Abra la consola de Amazon CloudFront
. En el panel de navegación de la consola, expanda Contenido privado y, a continuación, haga clic en Identidad de acceso de origen.
Seleccione Crear identidad de acceso de origen.
Haga clic en Create (Crear).
Registre el ID de usuario canónico de Amazon S3 que se genera al crear su identidad de acceso de origen.
En el panel de navegación, elija Distribución.
Haga clic en Create Distribution (Crear distribución).
Seleccione Web y, a continuación, haga clic en Continuar.
En Configuración de origen, introduzca su bucket de salida de Amazon S3 como Nombre de dominio de origen.
En el campo ID de origen, introduzca
S3-transcoder-sample-output
.En Restringir acceso al bucket, elija Sí.
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
Abra la consola de Amazon S3
. Junto al bucket de salida, haga clic en el icono de la lupa para que aparezcan las propiedades del bucket.
Expanda Permisos y haga clic en Añadir política de bucket.
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 conthe name of your output bucket
.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.
Temas
- Instalación del código de muestra
- Configuración de AWS SDK para PHP
- Creación de buckets de entrada y salida de Amazon S3
- Creación de un tema de Amazon SNS para recibir notificaciones del estado de una tarea
- Suscripción de su servidor a Amazon SNS
- Creación de una canalización de Elastic Transcoder
- Creación de una distribución de Amazon CloudFront para entregar contenido de manera escalable
- Modificación de la política de bucket de Amazon S3
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.
Descargue el código de muestra:
Descomprima el código de muestra.
Coloque el código bajo RaízDocumento del servidor de Apache.
Quite el archivo.zip del código de muestra descargado.
Actualice la ruta a la instalación de AWS SDK.
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í
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
Abra la consola de Amazon S3
. En la consola, haga clic en Crear bucket.
En el campo Asignar un nombre al bucket, escriba el nombre que desee para el bucket de entrada.
En la consola de Amazon S3, haga clic otra vez en Crear bucket.
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
Abra la consola de Amazon SNS
. En la consola, haga clic en Crear y añadir y seleccione Crear tema nuevo.
En el campo Nombre del tema, introduzca
ets-sample-topic
y, a continuación, haga clic en Crear tema.Registre el ARN de
ets-sample-topic
.
Suscripción de su servidor a Amazon SNS
Compruebe que se ha instalado el código de muestra de PHP.
Abra la consola de Amazon SNS
. En AdditionalActions, haga clic en Create Subscription.
Seleccione HTTP o HTTPS en función de la configuración del servidor.
En Endpoint, introduzca el punto de conexión del servidor. La ruta del punto de conexión debería apuntar a
JobStatusNotificationsSampleNotificationHandler.php
.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
Abra la consola de Amazon Elastic Transcoder
. En la consola, elija Crear una canalización nueva.
En el campo Nombre, escriba
ets-sample-pipeline
.En el campo Bucket de entrada, escriba el nombre del bucket de entrada.
Deje Rol de IAM como
Console Default Role
.En Configurar el bucket de Amazon S3 para listas de reproducción y archivos transcodificados, escriba el nombre del bucket de salida.
Aún en Configurar el bucket de Amazon S3 para listas de reproducción y archivos transcodificados, seleccione la clase de almacenamiento estándar.
Expanda el menú desplegable Notificaciones.
Para los cuatro tipos de eventos, seleccione Usar un tema de SNS existente y, en Seleccionar un tema, elija
ets-sample-topic
.Haga clic en Create Pipeline (Crear canalización).
Registre el ID de canalización de Elastic Transcoder.
Creación de una distribución de Amazon CloudFront para entregar contenido de manera escalable
Abra la consola de Amazon CloudFront
. En el panel de navegación de la consola, expanda Contenido privado y, a continuación, haga clic en Identidad de acceso de origen.
Seleccione Crear identidad de acceso de origen.
Haga clic en Create (Crear).
Registre el ID de usuario canónico de Amazon S3 que se genera al crear su identidad de acceso de origen.
En el panel de navegación, elija Distribución.
Haga clic en Create Distribution (Crear distribución).
Seleccione Web y, a continuación, haga clic en Continuar.
En Configuración de origen, introduzca su bucket de salida de Amazon S3 como Nombre de dominio de origen.
En el campo ID de origen, introduzca
S3-transcoder-sample-output
.En Restringir acceso al bucket, elija Sí.
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
Abra la consola de Amazon S3
. Junto al bucket de salida, haga clic en el icono de la lupa para que aparezcan las propiedades del bucket.
Expanda Permisos y haga clic en Añadir política de bucket.
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 conthe name of your output bucket
.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.
Temas
- Configuración de AWS SDK para Python
- Creación de buckets de entrada y salida de Amazon S3
- Creación de un tema de Amazon SNS para recibir notificaciones del estado de una tarea
- Creación de una cola de Amazon SQS para sondear las notificaciones del estado de una tarea
- Suscripción de una cola de Amazon SQS a un tema de Amazon SNS
- Creación de una canalización de Elastic Transcoder
- Creación de una distribución de Amazon CloudFront para entregar contenido de manera escalable
- Modificación de la política de bucket de Amazon S3
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í
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
Abra la consola de Amazon S3
. En la consola, haga clic en Crear bucket.
En el campo Asignar un nombre al bucket, escriba el nombre que desee para el bucket de entrada.
En la consola de Amazon S3, haga clic otra vez en Crear bucket.
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
Abra la consola de Amazon SNS
. En la consola, haga clic en Crear y añadir y seleccione Crear tema nuevo.
En el campo Nombre del tema, introduzca
ets-sample-topic
y, a continuación, haga clic en Crear tema.Registre el ARN de
ets-sample-topic
.
Creación de una cola de Amazon SQS para sondear las notificaciones del estado de una tarea
Abra la consola de Amazon SQS
. En la consola, elija Crear cola nueva.
En el campo Nombre de la cola, introduzca
ets-sample-queue
y, a continuación, haga clic en Crear cola.Registre la URL de la cola de Amazon SQS.
Suscripción de una cola de Amazon SQS a un tema de Amazon SNS
Abra la consola de Amazon SQS
. En la consola, seleccione ets-sample-queue en la lista de colas.
En Acciones de cola, seleccione Suscribir cola a tema de Amazon SNS.
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
Abra la consola de Amazon Elastic Transcoder
. En la consola, elija Crear una canalización nueva.
En el campo Nombre, escriba
ets-sample-pipeline
.En el campo Bucket de entrada, escriba el nombre del bucket de entrada.
Deje Rol de IAM como
Console Default Role
.En Configurar el bucket de Amazon S3 para listas de reproducción y archivos transcodificados, escriba el nombre del bucket de salida.
Aún en Configurar el bucket de Amazon S3 para listas de reproducción y archivos transcodificados, seleccione la clase de almacenamiento estándar.
Expanda el menú desplegable Notificaciones.
Para los cuatro tipos de eventos, seleccione Usar un tema de SNS existente y, en Seleccionar un tema, elija
ets-sample-topic
.Haga clic en Create Pipeline (Crear canalización).
Registre el ID de canalización de Elastic Transcoder.
Creación de una distribución de Amazon CloudFront para entregar contenido de manera escalable
Abra la consola de Amazon CloudFront
. En el panel de navegación de la consola, expanda Contenido privado y, a continuación, haga clic en Identidad de acceso de origen.
Seleccione Crear identidad de acceso de origen.
Haga clic en Create (Crear).
Registre el ID de usuario canónico de Amazon S3 que se genera al crear su identidad de acceso de origen.
En el panel de navegación, elija Distribución.
Haga clic en Create Distribution (Crear distribución).
Seleccione Web y, a continuación, haga clic en Continuar.
En Configuración de origen, introduzca su bucket de salida de Amazon S3 como Nombre de dominio de origen.
En el campo ID de origen, introduzca
S3-transcoder-sample-output
.En Restringir acceso al bucket, elija Sí.
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
Abra la consola de Amazon S3
. Junto al bucket de salida, haga clic en el icono de la lupa para que aparezcan las propiedades del bucket.
Expanda Permisos y haga clic en Añadir política de bucket.
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 conthe name of your output bucket
.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.
Descarga de muestra de HLS de Java
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:
Siga estas instrucciones para configurar su entorno: Configuración del entorno de Java
Descargue el código de muestra.
En Eclipse, abra
com/amazonaws/services/elastictranscoder/samples/HlsJobCreationSample.java
.Sustituya PIPELINE_ID e INPUT_KEY por los valores adecuados.
Ejecute las muestras en Eclipse.
Muestras de notificaciones
Temas
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" }
Descarga de muestra de notificación de Java
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 claseNotification
modela el mensaje que recibimos de la cola de Amazon SQS.La clase
JobStatusNotification
: la claseJobStatusNotification
modela una notificación de Elastic Transcoder.La clase
SqsQueueNotificationWorker
: la claseSqsQueueNotificationWorker
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 interfazJobStatusNotificationHandler
puede aplicarse para permitir la gestión personalizada de notificaciones.La clase
JobStatusNotificationsSample
: la claseJobStatusNotificationsSample
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:
Siga estas instrucciones para configurar su entorno: Configuración del entorno de Java.
Descargue el código de muestra.
Descomprima el código de muestra en el directorio de origen del proyecto de JAVA.
Abra
com/amazonaws/services/elastictranscoder/samples/JobStatusNotificationsSample.java
en Eclipse.Sustituya PIPELINE_ID, SQS_QUEUE_URL y INPUT_KEY por los valores adecuados.
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.
Descarga de muestra de HLS de Ruby
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:
Siga estas instrucciones para configurar su entorno: Configuración del entorno de Ruby
Descargue el código de muestra.
Descomprima el código de muestra en el directorio de origen del proyecto de Ruby.
Edite
HlsJobCreationSample.rb
y sustituya pipeline_id e input_key por los valores adecuados.Desde un terminal, vaya al directorio donde ha descomprimido el código de muestra y ejecute:
$ruby HlsJobCreationSample.rb
Muestras de notificaciones
Temas
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" }
Descarga de muestra de notificación de Ruby
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 claseSqsQueueNotificationWorker
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:
Siga estas instrucciones para configurar su entorno: Configuración del entorno de Ruby
Descargue el código de muestra.
Descomprima el código de muestra en el directorio de origen del proyecto de Ruby.
Edite
JobStatusNotificationsSample.rb
y sustituya pipeline_id, sqs_queue_url e input_key por los valores adecuados.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.
Descarga de muestra de HLS de PHP
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:
Siga estas instrucciones para configurar su entorno: Configuración del entorno de PHP
Descargue el código de muestra.
En el navegador, cargue la página http://<your-endpoint>/transcoder-samples/HlsJobCreationSample.php.
Rellene el ID de la canalización y la clave de entrada, y envíe el formulario para crear una tarea.
Muestras de notificaciones
Temas
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" }
Descarga de muestra de notificación de PHP
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:
Siga estas instrucciones para configurar su entorno: Configuración del entorno de PHP
Descargue el código de muestra.
Descomprima el código de muestra en el directorio de origen del proyecto de PHP.
En el navegador, cargue la página http://<your-endpoint>/transcoder-samples/JobStatusNotificationsSample.php.
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.
Descarga de muestra de HLS de Python
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:
Siga estas instrucciones para configurar su entorno: Configuración del entorno de Python
Descargue el código de muestra.
Descomprima el código de muestra.
Edite
HlsJobCreationSample.py
y sustituya pipeline_id e input_key por los valores adecuados.Desde un terminal, vaya al directorio donde ha descomprimido el código de muestra y ejecute:
$python HlsJobCreationSample.py
Muestras de notificaciones
Temas
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" }
Descarga de muestra de notificación de Python
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 claseSqsQueueNotificationWorker
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 claseJobStatusNotificationHandler
, 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 scriptJobStatusNotificationSample.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:
Siga estas instrucciones para configurar su entorno: Configuración del entorno de Python
Descargue el código de muestra.
Descomprima el código de muestra a la carpeta local.
Edite
JobStatusNotificationsSample.py
y sustituya pipeline_id, sqs_queue_url e input_key por los valores adecuados.Desde un terminal, vaya al directorio donde ha descomprimido el código de muestra y ejecute:
$python JobStatusNotificationsSample.py