USO DE CARPETAS DE VIGILANCIA PARA LA TRANSCODIFICACIÓN AUTOMÁTICA

Picture of bsp-admin-1
bsp-admin-1
blog-placeholder image

Las carpetas de control (también llamadas "carpetas de soltar" o "carpetas activas") son una herramienta rápida y sencilla para automatizar por lotes cualquier flujo de trabajo basado en archivos. Si transcodificas habitualmente tus archivos multimedia al mismo conjunto de formatos, puedes soltar los archivos sin procesar en una carpeta y ver cómo los archivos transcodificados salen por el otro extremo. Este es un paso común en los flujos de trabajo de postproducción de vídeo para preparar los medios para la aprobación del cliente o generar múltiples formatos de entrega para su distribución.

Este post es un ejercicio de uso de Lambda para unir recursos: al soltar un archivo en un bucket de S3 se iniciará un trabajo de transcodificación mediante la API de Zencoder, que enviará los archivos resultantes de vuelta a S3. Este método podría adaptarse para automatizar otros pasos del flujo de trabajo; por ejemplo, realizar acciones adicionales en los archivos transcodificados (como generar notificaciones push o mover los archivos a una CDN).

Si eres un desarrollador y ya te sientes cómodo con AWS, es posible que desees saltar directamente a la función Lambda en el Paso 3, o simplemente tomar el código de ejemplo de GitHub y ponerte en marcha tú mismo.

¿Por qué transcodificar en la nube?

Los codificadores habituales, como Adobe Media Encoder, Telestream y Sorenson Squeeze, admiten carpetas de visualización. Para la codificación a pequeña escala, la licencia de productos Sorenson o Adobe puede no ser rentable, y para un gran volumen de contenido, la configuración y el mantenimiento de una flota de servidores de codificación podría ser costoso y llevar mucho tiempo.

Las herramientas que utilizaremos (Zencoder, S3 y Lambda) son baratas y cobran por uso, sin costes iniciales ni mínimos, por lo que nuestra carpeta de vigilancia será rentable tanto para cargas a pequeña como a gran escala. Con 0,03 $/GB de almacenamiento en S3 y 0,05 $/min de salida transcodificada de Zencoder (tan solo 0,02 $ en volúmenes altos), puede calcular su uso fácilmente. Dado que los archivos de salida se escribirán en S3, estarán disponibles inmediatamente para su distribución web.

¿Cómo funciona?

Nuestra carpeta de vigilancia vivirá dentro de un bucket de Amazon S3. Al cargar un archivo en el bucket, se activará nuestra función Lambda, que compone y envía una solicitud a la API de Zencoder para crear una tarea de codificación. Zencoder recuperará el archivo de S3, lo transcodificará a los formatos de salida que definamos y, a continuación, devolverá los archivos transcodificados a S3. A partir de ahí, pueden distribuirse a sus clientes, o incluso entregarse directamente a los usuarios finales a través de CloudFront u otra CDN.

Requisitos previos

Para este tutorial, necesitará una cuenta de Amazon Web Services (AWS ) y una cuenta de Zencoder. Los niveles gratuitos de ambos servicios serán suficientes para la demostración, aunque solo dispondrá de 5 GB de almacenamiento en S3 y Zencoder truncará las salidas a 5 segundos.

Paso 1: Configurar un Bucket S3

En primer lugar, tendremos que configurar la carpeta de vigilancia en S3. Si aún no tienes un bucket de S3 configurado, inicia sesión en la consola de AWS y navega hasta el servicio S3. Haz clic en "Crear Bucket" y dale un nombre. Los nombres de los buckets son únicos en todo el servicio, por lo que resulta útil utilizar un prefijo único, como tu nombre o el de tu empresa.

Deje la región como US Standard, que es la misma que la región por defecto de Zencoder. De este modo evitará incurrir en gastos de transferencia de S3 cuando Zencoder recupere sus archivos. Si necesita utilizar un bucket en una región diferente, puede añadir el parámetro "region" a la tarea de Zencoder para asegurarse de que la transcodificación se ejecuta en la misma región.

Cree dos carpetas en su bucket de S3: una para los archivos que vaya a subir y otra a la que Zencoder subirá los archivos transcodificados. Yo simplemente he utilizado inputs/ y outputs/.

Paso 2: Dar acceso a Zencoder al bucket de S3

Hay dos formas de conceder a Zencoder acceso para leer y escribir archivos en su bucket de S3. La forma más sencilla es añadir una política a su bucket de S3 que conceda al usuario IAM de Zencoder acceso al bucket.

En el panel Propiedades del bucket de S3, haga clic en Permisos y, a continuación, en Añadir política de bucket. Pegue la política de bucket de Zencoder (disponible en esta dirección Repo de Github), sustituyendo ambas instancias de YOUR-BUCKETcon el nombre real del cubo especificado en el paso 1.

La otra opción para conceder a Zencoder acceso a su cubo es crear un archivo Usuario IAM con un AmazonS3FullAccess (o restríngala a este bucket) y, a continuación, añada el ID de la clave de acceso y la clave de acceso secreta de ese usuario a la directiva Sección de credenciales de su cuenta Zencoder.

Paso 3: Crear la función lambda

En la consola de AWS, haz clic en el servicio Lambda. Haz clic en Create a Lambda Function (o Get Started, si es la primera vez que utilizas Lambda). Sáltate el paso del blueprint y verás la pantalla Configure Function. Dale un nombre a tu función (por ejemplo, "transcodificar vídeo") y selecciona Python 2.7 como tiempo de ejecución.

Pegue el código de ejemplo en la sección de código de la función Lambda. Tendrás que editar algunas de las variables globales de la parte superior: establece la variable API\_KEY a su Clave API de acceso total de Zencodercambie el INPUT\_FOLDER\_NAME para que coincida con el nombre de la carpeta de vigilancia que creó en S3, cambie el campo S3\_OUTPUT\_BASE\_URL al cubo y al nombre de la carpeta donde desea que se almacenen los archivos de salida, y establezca la opción NOTIFICATION\_EMAIL a una dirección de correo electrónico en la que desee recibir notificaciones de Zencoder (si no desea recibir notificaciones, omita la línea 39 de la función Lambda).

Sobre el código en lambda\_function.py-esencialmente, estamos cogiendo el nombre del archivo que se subió a S3 y usándolo como base del nombre del archivo de salida. El api\_data es el trabajo que se enviará a Zencoder, con todas las salidas y parámetros de codificación definidos. Puede modificar esto para adaptarlo a sus necesidades, y Zencoder proporciona varias plantillas en su sección Solicitar constructor. A continuación, enviaremos el trabajo al punto final de la API de Zencoder y registraremos la respuesta.

A continuación, seleccione Función de ejecución S3 en el encabezado Crear nueva función. Es posible que tenga que habilitar las ventanas emergentes en su navegador para ver la pantalla de creación, que le pedirá que nombre la nueva función y haga clic en Permitir. Esta función define el esquema de permisos bajo el que se ejecutará la función Lambda; en este caso, concedemos a Lambda acceso al bucket de S3. De vuelta en la pantalla de Lambda, el nuevo rol que has creado debería estar seleccionado en el campo Rol.

Aumente el tiempo de espera a 10 segundos. En la práctica, la función raramente tardará más de 1500ms segundos en ejecutarse, pero nuestra función será más resistente si puede esperar unos segundos extra en caso de una respuesta lenta de la API. Lambda cobra por cada 100ms de tiempo de ejecución de la función, así que no lo fijaremos demasiado alto. Haz clic en Siguiente y, a continuación, en Crear función. En la pestaña Event Sources, añade un origen de eventos. Seleccione S3 como tipo, elija el bucket S3 del paso 1 y configure el tipo de evento como Object Created (All).

En el campo Prefijo, introduzca el nombre de la carpeta de vigilancia que ha creado en el bucket S3 (p. ej. inputs/). Esto garantizará que la función Lambda solo se active cuando se añadan archivos a esa carpeta, y no en cualquier otra parte del bucket, y lo que es más importante, también evitará que nuestros archivos de salida activen más trabajos de codificación en un bucle sin fin. Marque Habilitar fuente de eventos y enviar.

Eso es

Tenemos un bucket de S3 con una carpeta de vigilancia y una función Lambda que recibe eventos de creación de archivos de esa carpeta de vigilancia, que forma una tarea de Zencoder para transcodificar esos archivos y devolverlos a nuestra carpeta de salida. Suba algunos archivos multimedia a su carpeta de vigilancia para verlo en acción.

Si necesita solucionar problemas, compruebe los registros de AWS CloudWatch para obtener detalles de cada llamada a su función de Lambda. La vista Jobs de Zencoder también proporciona detalles de cada trabajo y de cualquier error que se haya podido producir.

Back in July 2025, Brightcove unveiled an ambitious roadmap with a dual focus on innovation and quality of experience...
Our teams have been hard at work making the Brightcove platform more powerful, more reliable, and more insightful for...
Vertical Videos Experience lets you deliver a TikTok/Reels-style vertical feed on the web, powered by Brightcove. It’...

¿PREPARADO PARA EMPEZAR?

Póngase en contacto con nosotros para saber cómo podemos mejorar sus esfuerzos de marketing por vídeo y ayudarle a generar los resultados y el ROI que necesita.