

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.](https://aws.amazon.com/blogs/media/how-to-migrate-workflows-from-amazon-elastic-transcoder-to-aws-elemental-mediaconvert/)

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
<a name="sample-code"></a>

En esta sección se incluye un ejemplo de código que muestra cómo utilizar AWS SDKs 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 existe un SDK, le recomendamos que utilice el SDK en lugar de intentar trabajar con él APIs. Descubrirá que el uso del SDKs simplifica la autenticación, se integra fácilmente en su entorno de desarrollo y proporciona un fácil acceso a los comandos relacionados.

**Topics**
+ [Introducción acerca del código de muestra SDK de AWS](#sample-intro)
+ [Configuración del entorno](#env-setup)
+ [Muestras de Java](#java-sample)
+ [Muestras de Ruby](#ruby-sample)
+ [Muestras de PHP](#php-sample)
+ [Muestras de Python](#python-sample)

## Introducción acerca del código de muestra SDK de AWS
<a name="sample-intro"></a>

### HTTP Live Streaming (HLS)
<a name="hls-intro"></a>

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\$1, los dispositivos iOS, los reproductores multimedia de escritorio como QuickTime 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
<a name="notification-intro"></a>

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](https://docs.aws.amazon.com/elastictranscoder/latest/developerguide/notifications.html).

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
<a name="env-setup"></a>

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.

**Topics**
+ [Configuración del entorno de Java](#env-java)
+ [Configuración del entorno de Ruby](#env-ruby)
+ [Configuración del entorno de PHP](#env-php)
+ [Configuración del entorno de Python](#env-python)

### Configuración del entorno de Java
<a name="env-java"></a>

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

**Topics**
+ [Configuración de AWS SDK para Java](#java-sdk)
+ [Creación de buckets de entrada y salida de Amazon S3](#java-s3)
+ [Creación de un tema de Amazon SNS para recibir notificaciones del estado de una tarea](#java-sns)
+ [Creación de una cola de Amazon SQS para sondear las notificaciones del estado de una tarea](#java-sqs)
+ [Suscripción de una cola de Amazon SQS a un tema de Amazon SNS](#java-sqs-subscribe)
+ [Creación de una canalización de Elastic Transcoder](#java-pipeline)
+ [Crear una CloudFront distribución de Amazon para entregar contenido de forma escalable](#java-cloudfront)
+ [Modificación de la política de bucket de Amazon S3](#java-s3-policy)

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
<a name="java-sdk"></a>

Estas muestras presuponen que está utilizando AWS Toolkit for Eclipse. Necesita [AWS SDK para Java](https://aws.amazon.com/sdkforjava/) 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](https://aws.amazon.com/documentation/sdkforjava/).

#### Creación de buckets de entrada y salida de Amazon S3
<a name="java-s3"></a>

1. Abra la [consola de Amazon S3](https://console.aws.amazon.com/s3/home).

1. En la consola, haga clic en **Crear bucket**.

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

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

1. 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
<a name="java-sns"></a>

1. Abra la [consola de Amazon SNS](https://console.aws.amazon.com/sns/home).

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

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

1. Registre el ARN de `ets-sample-topic`.

#### Creación de una cola de Amazon SQS para sondear las notificaciones del estado de una tarea
<a name="java-sqs"></a>

1. Abra la [consola de Amazon SQS](https://console.aws.amazon.com/sqs/home).

1. En la consola, elija **Crear cola nueva**.

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

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

#### Suscripción de una cola de Amazon SQS a un tema de Amazon SNS
<a name="java-sqs-subscribe"></a>

1. Abra la [consola de Amazon SQS](https://console.aws.amazon.com/sqs/home).

1. En la consola, selecciona **ets-sample-queue**una opción de la lista de colas.

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

1. En **Elegir 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
<a name="java-pipeline"></a>

1. Abra la [consola de Amazon Elastic Transcoder](https://console.aws.amazon.com/elastictranscoder/home).

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

1. En el campo **Nombre**, escriba **ets-sample-pipeline**.

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

1. Deje **Rol de IAM** como **Console Default Role**.

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

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

1. Expanda el menú desplegable **Notificaciones**.

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

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

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

#### Crear una CloudFront distribución de Amazon para entregar contenido de forma escalable
<a name="java-cloudfront"></a>

1. Abre la [ CloudFront consola de Amazon](https://console.aws.amazon.com/cloudfront/home).

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

1. Seleccione **Crear identidad de acceso de origen**.

1. Haga clic en **Crear**.

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

1. En el panel de navegación, elija **Distribución**.

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

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

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

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

1. En **Restringir acceso al bucket**, elija **Sí**.

1. 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
<a name="java-s3-policy"></a>

1. Abra la [consola de Amazon S3](https://console.aws.amazon.com/s3/home).

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

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

1. **Introduce la siguiente declaración de política, sustituyendo **CloudFront-oai-s3- por **your recorded Amazon S3 canonical user ID** y s3- canonical-user-id** por. output-bucket-name** **the name of your output bucket**

1. 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](#java-sample).

### Configuración del entorno de Ruby
<a name="env-ruby"></a>

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

**Topics**
+ [Configuración de AWS SDK para Ruby](#ruby-sdk)
+ [Creación de buckets de entrada y salida de Amazon S3](#ruby-s3)
+ [Creación de un tema de Amazon SNS para recibir notificaciones del estado de una tarea](#ruby-sns)
+ [Creación de una cola de Amazon SQS para sondear las notificaciones del estado de una tarea](#ruby-sqs)
+ [Suscripción de una cola de Amazon SQS a un tema de Amazon SNS](#ruby-sqs-subscribe)
+ [Creación de una canalización de Elastic Transcoder](#ruby-pipeline)
+ [Crear una CloudFront distribución de Amazon para entregar contenido de forma escalable](#ruby-cloudfront)
+ [Modificación de la política de bucket de Amazon S3](#ruby-s3-policy)

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
<a name="ruby-sdk"></a>

El AWS SDK para Ruby está disponible [aquí](https://aws.amazon.com/sdkforruby/). 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](https://aws.amazon.com/documentation/sdkforruby/).

#### Creación de buckets de entrada y salida de Amazon S3
<a name="ruby-s3"></a>

1. Abra la [consola de Amazon S3](https://console.aws.amazon.com/s3/home).

1. En la consola, haga clic en **Crear bucket**.

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

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

1. 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
<a name="ruby-sns"></a>

1. Abra la [consola de Amazon SNS](https://console.aws.amazon.com/sns/home).

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

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

1. Registre el ARN de `ets-sample-topic`.

#### Creación de una cola de Amazon SQS para sondear las notificaciones del estado de una tarea
<a name="ruby-sqs"></a>

1. Abra la [consola de Amazon SQS](https://console.aws.amazon.com/sqs/home).

1. En la consola, elija **Crear cola nueva**.

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

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

#### Suscripción de una cola de Amazon SQS a un tema de Amazon SNS
<a name="ruby-sqs-subscribe"></a>

1. Abra la [consola de Amazon SQS](https://console.aws.amazon.com/sqs/home).

1. En la consola, seleccione una opción de la lista **ets-sample-queue**de colas.

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

1. En **Elegir 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
<a name="ruby-pipeline"></a>

1. Abra la [consola de Amazon Elastic Transcoder](https://console.aws.amazon.com/elastictranscoder/home).

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

1. En el campo **Nombre**, escriba **ets-sample-pipeline**.

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

1. Deje **Rol de IAM** como **Console Default Role**.

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

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

1. Expanda el menú desplegable **Notificaciones**.

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

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

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

#### Crear una CloudFront distribución de Amazon para entregar contenido de forma escalable
<a name="ruby-cloudfront"></a>

1. Abre la [ CloudFront consola de Amazon](https://console.aws.amazon.com/cloudfront/home).

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

1. Seleccione **Crear identidad de acceso de origen**.

1. Haga clic en **Crear**.

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

1. En el panel de navegación, elija **Distribución**.

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

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

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

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

1. En **Restringir acceso al bucket**, elija **Sí**.

1. 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
<a name="ruby-s3-policy"></a>

1. Abra la [consola de Amazon S3](https://console.aws.amazon.com/s3/home).

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

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

1. **Introduce la siguiente declaración de política, sustituyendo **CloudFront-oai-s3- por **your recorded Amazon S3 canonical user ID** y s3- canonical-user-id** por. output-bucket-name** **the name of your output bucket**

1. 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](#ruby-sample).

### Configuración del entorno de PHP
<a name="env-php"></a>

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

**Topics**
+ [Instalación del código de muestra](#php-install)
+ [Configuración de AWS SDK para PHP](#php-sdk)
+ [Creación de buckets de entrada y salida de Amazon S3](#php-s3)
+ [Creación de un tema de Amazon SNS para recibir notificaciones del estado de una tarea](#php-sns)
+ [Suscripción de su servidor a Amazon SNS](#php-sns-sub)
+ [Creación de una canalización de Elastic Transcoder](#php-pipeline)
+ [Crear Amazon CloudFront Distribution para entregar contenido de forma escalable](#php-cloudfront)
+ [Modificación de la política de bucket de Amazon S3](#php-s3-policy)

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
<a name="php-install"></a>

Para utilizar el código de muestra de PHP, primero debe descargarlo e instalarlo. 
+ Descargue el código de muestra:
  + [Código de muestra de HLS](samples/phphls.zip).
  + [Código de muestra de notificación](samples/phpnotification.zip).
+ Descomprima el código de muestra.
+ Coloca el código debajo del servidor Apache. DocumentRoot
+ 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
<a name="php-sdk"></a>

Puede encontrar el AWS SDK para PHP [aquí](https://aws.amazon.com/sdkforphp/). 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](https://aws.amazon.com/documentation/sdkforphp/).

#### Creación de buckets de entrada y salida de Amazon S3
<a name="php-s3"></a>

1. Abra la [consola de Amazon S3](https://console.aws.amazon.com/s3/home).

1. En la consola, haga clic en **Crear bucket**.

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

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

1. 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
<a name="php-sns"></a>

1. Abra la [consola de Amazon SNS](https://console.aws.amazon.com/sns/home).

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

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

1. Registre el ARN de `ets-sample-topic`.

#### Suscripción de su servidor a Amazon SNS
<a name="php-sns-sub"></a>

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

1. Abra la [consola de Amazon SNS](https://console.aws.amazon.com/sns/home).

1. En **AdditionalActions**, haz clic en **Crear suscripción**.

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

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

1. 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
<a name="php-pipeline"></a>

1. Abra la [consola de Amazon Elastic Transcoder](https://console.aws.amazon.com/elastictranscoder/home).

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

1. En el campo **Nombre**, escriba **ets-sample-pipeline**.

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

1. Deje **Rol de IAM** como **Console Default Role**.

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

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

1. Expanda el menú desplegable **Notificaciones**.

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

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

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

#### Crear Amazon CloudFront Distribution para entregar contenido de forma escalable
<a name="php-cloudfront"></a>

1. Abre la [ CloudFront consola de Amazon](https://console.aws.amazon.com/cloudfront/home).

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

1. Seleccione **Crear identidad de acceso de origen**.

1. Haga clic en **Crear**.

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

1. En el panel de navegación, elija **Distribución**.

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

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

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

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

1. En **Restringir acceso al bucket**, elija **Sí**.

1. 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
<a name="php-s3-policy"></a>

1. Abra la [consola de Amazon S3](https://console.aws.amazon.com/s3/home).

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

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

1. **Introduce la siguiente declaración de política, sustituyendo **CloudFront-oai-s3- por **your recorded Amazon S3 canonical user ID** y s3- canonical-user-id** por. output-bucket-name** **the name of your output bucket**

1. 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](#php-sample).

### Configuración del entorno de Python
<a name="env-python"></a>

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

**Topics**
+ [Configuración de AWS SDK para Python](#python-sdk)
+ [Creación de buckets de entrada y salida de Amazon S3](#python-s3)
+ [Creación de un tema de Amazon SNS para recibir notificaciones del estado de una tarea](#python-sns)
+ [Creación de una cola de Amazon SQS para sondear las notificaciones del estado de una tarea](#python-sqs)
+ [Suscripción de una cola de Amazon SQS a un tema de Amazon SNS](#python-sqs-subscribe)
+ [Creación de una canalización de Elastic Transcoder](#python-pipeline)
+ [Crear Amazon CloudFront Distribution para entregar contenido de forma escalable](#python-cloudfront)
+ [Modificación de la política de bucket de Amazon S3](#python-s3-policy)

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
<a name="python-sdk"></a>

Puede encontrar el AWS SDK para Python [aquí](https://aws.amazon.com/sdkforpython/). 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](http://docs.pythonboto.org/en/latest/).

#### Creación de buckets de entrada y salida de Amazon S3
<a name="python-s3"></a>

1. Abra la [consola de Amazon S3](https://console.aws.amazon.com/s3/home).

1. En la consola, haga clic en **Crear bucket**.

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

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

1. 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
<a name="python-sns"></a>

1. Abra la [consola de Amazon SNS](https://console.aws.amazon.com/sns/home).

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

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

1. Registre el ARN de `ets-sample-topic`.

#### Creación de una cola de Amazon SQS para sondear las notificaciones del estado de una tarea
<a name="python-sqs"></a>

1. Abra la [consola de Amazon SQS](https://console.aws.amazon.com/sqs/home).

1. En la consola, elija **Crear cola nueva**.

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

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

#### Suscripción de una cola de Amazon SQS a un tema de Amazon SNS
<a name="python-sqs-subscribe"></a>

1. Abra la [consola de Amazon SQS](https://console.aws.amazon.com/sqs/home).

1. En la consola, seleccione una opción de la lista **ets-sample-queue**de colas.

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

1. En **Elegir 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
<a name="python-pipeline"></a>

1. Abra la [consola de Amazon Elastic Transcoder](https://console.aws.amazon.com/elastictranscoder/home).

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

1. En el campo **Nombre**, escriba **ets-sample-pipeline**.

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

1. Deje **Rol de IAM** como **Console Default Role**.

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

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

1. Expanda el menú desplegable **Notificaciones**.

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

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

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

#### Crear Amazon CloudFront Distribution para entregar contenido de forma escalable
<a name="python-cloudfront"></a>

1. Abre la [ CloudFront consola de Amazon](https://console.aws.amazon.com/cloudfront/home).

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

1. Seleccione **Crear identidad de acceso de origen**.

1. Haga clic en **Crear**.

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

1. En el panel de navegación, elija **Distribución**.

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

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

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

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

1. En **Restringir acceso al bucket**, elija **Sí**.

1. 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
<a name="python-s3-policy"></a>

1. Abra la [consola de Amazon S3](https://console.aws.amazon.com/s3/home).

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

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

1. **Introduce la siguiente declaración de política, sustituyendo **CloudFront-oai-s3- por **your recorded Amazon S3 canonical user ID** y s3- canonical-user-id** por. output-bucket-name** **the name of your output bucket**

1. 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](#python-sample).

## Muestras de Java
<a name="java-sample"></a>

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
<a name="java-hls"></a>

**Topics**
+ [Descarga de muestra de HLS de Java](#java-hls-link)
+ [Componentes del código de muestra](#java-hls-list)
+ [Tareas](#java-hls-tasklist)

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
<a name="java-hls-link"></a>

Puede descargar el código de muestra [aquí](samples/javasamples.zip). 

#### Componentes del código de muestra
<a name="java-hls-list"></a>

El código de muestra de Java incluye: 
+ La clase `HlsJobCreationSample`

#### Tareas
<a name="java-hls-tasklist"></a>

Para ejecutar la muestra, siga estos pasos:

1. Siga estas instrucciones para configurar su entorno: [Configuración del entorno de Java](#env-java)

1. Descargue el código de muestra.

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

1. Sustituya PIPELINE\$1ID e INPUT\$1KEY por los valores adecuados.

1. Ejecute las muestras en Eclipse.

### Muestras de notificaciones
<a name="java-notifications"></a>

**Topics**
+ [Ejemplo de sintaxis de notificaciones](#java-notification-example)
+ [Descarga de muestra de notificación de Java](#java-link)
+ [Componentes del código de muestra](#java-list)
+ [Tareas](#java-tasklist)

#### Ejemplo de sintaxis de notificaciones
<a name="java-notification-example"></a>

```
{
   "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
<a name="java-link"></a>

Puede descargar el código de muestra [aquí](samples/javasamples.zip).

#### Componentes del código de muestra
<a name="java-list"></a>

El código de muestra de Java incluye: 
+ La clase`Notification`: Para consumir notificaciones de Java, utilizamos la biblioteca Jackson JSON para deserializar las notificaciones de estado de los trabajos. POJOs 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
<a name="java-tasklist"></a>

Para ejecutar la muestra, siga estos pasos:

1. Siga estas instrucciones para configurar su entorno: [Configuración del entorno de Java](#env-java).

1. Descargue el código de muestra.

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

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

1. Sustituya PIPELINE\$1ID, SQS\$1QUEUE\$1URL y INPUT\$1KEY por los valores adecuados.

1. Ejecute la muestra en Eclipse.

## Muestras de Ruby
<a name="ruby-sample"></a>

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
<a name="ruby-hls"></a>

**Topics**
+ [Descarga de muestra de HLS de Ruby](#ruby-hls-link)
+ [Componentes del código de muestra](#ruby-hls-list)
+ [Tareas](#ruby-hls-tasklist)

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
<a name="ruby-hls-link"></a>

Puede descargar el código de muestra [aquí](samples/rubyhls.zip). 

#### Componentes del código de muestra
<a name="ruby-hls-list"></a>

El código de muestra de Ruby incluye: 
+ El archivo `HlsJobCreationSample.rb`

#### Tareas
<a name="ruby-hls-tasklist"></a>

Para ejecutar la muestra, siga estos pasos:

1. Siga estas instrucciones para configurar su entorno: [Configuración del entorno de Ruby](#env-ruby)

1. Descargue el código de muestra.

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

1. Edite `HlsJobCreationSample.rb` y sustituya pipeline\$1id e input\$1key por los valores adecuados.

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

```
$ruby HlsJobCreationSample.rb
```

### Muestras de notificaciones
<a name="ruby-notifications"></a>

**Topics**
+ [Ejemplo de sintaxis de notificaciones](#ruby-notification-example)
+ [Descarga de muestra de notificación de Ruby](#ruby-link)
+ [Componentes del código de muestra](#ruby-list)
+ [Tareas](#ruby-tasklist)

#### Ejemplo de sintaxis de notificaciones
<a name="ruby-notification-example"></a>

```
{
   "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
<a name="ruby-link"></a>

Puede descargar el código de muestra [aquí](samples/rubynotification.zip).

#### Componentes del código de muestra
<a name="ruby-list"></a>

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\$1handlers 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
<a name="ruby-tasklist"></a>

Para ejecutar la muestra, siga estos pasos:

1. Siga estas instrucciones para configurar su entorno: [Configuración del entorno de Ruby](#env-ruby)

1. Descargue el código de muestra.

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

1. Edite `JobStatusNotificationsSample.rb` y sustituya pipeline\$1id, sqs\$1queue\$1url e input\$1key por los valores adecuados.

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

```
$ruby JobStatusNotificationsSample.rb
```

## Muestras de PHP
<a name="php-sample"></a>

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
<a name="php-hls"></a>

**Topics**
+ [Descarga de muestra de HLS de PHP](#php-hls-link)
+ [Componentes del código de muestra](#php-hls-list)
+ [Tareas](#php-hls-tasklist)

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
<a name="php-hls-link"></a>

Puede descargar el código de muestra [aquí](samples/phphls.zip). 

#### Componentes del código de muestra
<a name="php-hls-list"></a>

El código de muestra de PHP incluye: 
+ El archivo `HlsJobCreationSample.php`

#### Tareas
<a name="php-hls-tasklist"></a>

Para ejecutar la muestra, siga estos pasos:

1. Siga estas instrucciones para configurar su entorno: [Configuración del entorno de PHP](#env-php)

1. Descargue el código de muestra.

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

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

### Muestras de notificaciones
<a name="php-notifications"></a>

**Topics**
+ [Ejemplo de sintaxis de notificaciones](#php-notification-example)
+ [Descarga de muestra de notificación de PHP](#php-link)
+ [Componentes del código de muestra](#php-list)
+ [Tareas](#php-tasklist)

#### Ejemplo de sintaxis de notificaciones
<a name="php-notification-example"></a>

```
{
   "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
<a name="php-link"></a>

Puede descargar el código de muestra [aquí](samples/phpnotification.zip).

#### Componentes del código de muestra
<a name="php-list"></a>

El código de muestra de PHP incluye:
+ <job-id>El archivo`JobStatusNotificationsSampleNotificationHandler.php`: cuando se envía una notificación POSTed a su servidor, el controlador de notificaciones vuelve a escribir el estado en un archivo en /tmp/.
+ 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
<a name="php-tasklist"></a>

Para ejecutar la muestra, siga estos pasos:

1. Siga estas instrucciones para configurar su entorno: [Configuración del entorno de PHP](#env-php)

1. Descargue el código de muestra.

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

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

1. 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
<a name="python-sample"></a>

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
<a name="python-hls"></a>

**Topics**
+ [Descarga de muestra de HLS de Python](#python-hls-link)
+ [Componentes del código de muestra](#python-hls-list)
+ [Tareas](#python-hls-tasklist)

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
<a name="python-hls-link"></a>

Puede descargar el código de muestra [aquí](samples/pythonhls.zip). 

#### Componentes del código de muestra
<a name="python-hls-list"></a>

El código de muestra de Phyton incluye: 
+ El archivo `HlsJobCreationSample.py`

#### Tareas
<a name="python-hls-tasklist"></a>

Para ejecutar la muestra, siga estos pasos:

1. Siga estas instrucciones para configurar su entorno: [Configuración del entorno de Python](#env-python)

1. Descargue el código de muestra.

1. Descomprima el código de muestra.

1. Edite `HlsJobCreationSample.py` y sustituya pipeline\$1id e input\$1key por los valores adecuados.

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

```
$python HlsJobCreationSample.py
```

### Muestras de notificaciones
<a name="python-notifications"></a>

**Topics**
+ [Ejemplo de sintaxis de notificaciones](#python-notification-example)
+ [Descarga de muestra de notificación de Python](#python-link)
+ [Componentes del código de muestra](#python-list)
+ [Tareas](#python-tasklist)

#### Ejemplo de sintaxis de notificaciones
<a name="python-notification-example"></a>

```
{
   "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
<a name="python-link"></a>

Puede descargar el código de muestra [aquí](samples/pythonnotification.zip).

#### Componentes del código de muestra
<a name="python-list"></a>

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
<a name="python-tasklist"></a>

Para ejecutar la muestra, siga estos pasos:

1. Siga estas instrucciones para configurar su entorno: [Configuración del entorno de Python](#env-python)

1. Descargue el código de muestra.

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

1. Edite `JobStatusNotificationsSample.py` y sustituya pipeline\$1id, sqs\$1queue\$1url e input\$1key por los valores adecuados.

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

```
$python JobStatusNotificationsSample.py
```