Tutoriales sobre streaming de contenido multimedia de Amazon CloudFront
¿Por qué elegir Amazon CloudFront?
Los clientes usan Amazon CloudFront para distribuir por streaming videos a espectadores de todo el mundo a través de una amplia variedad de protocolos superpuestos sobre HTTP.
La red de entrega de contenido (CDN) de Amazon se puede usar con los servicios multimedia de AWS Elemental para implementar dos tipos diferentes de streaming de video. Primero analizaremos el streaming bajo demanda de contenido almacenado en Amazon Simple Storage Service (Amazon S3). A continuación, examinaremos el streaming en directo de eventos o canales de transmisión continua.
Para conocer las prácticas recomendadas, lea el Amazon CloudFront for Media White Paper.
Building Serverless Video Workflows
Streaming bajo demanda
En el caso del streaming bajo demanda, el contenido de los videos se almacena en Amazon S3. Los espectadores pueden optar por verlo en el momento que deseen, de ahí el nombre "bajo demanda". Normalmente, una solución de streaming bajo demanda completa usa Amazon S3 para almacenamiento, AWS Elemental MediaConvert para el procesamiento de videos basado en archivos y Amazon CloudFront para la entrega.
Amazon S3 es un servicio de almacenamiento excelente para sus recursos de videos. Puede escalarse sin límites, cuenta con redundancia integrada y se encuentra disponible mediante un esquema de pago por uso. Puede cargar contenido en S3 de diferentes maneras. Puede empezar usando la Consola de administración de AWS cuando el volumen sea bajo y, a continuación, recurrir a un sistema más automatizado a medida que el volumen aumente. Usar S3 desde la consola es muy sencillo. Después de crear su cuenta de AWS, tan solo debe iniciar sesión, crear un bucket de S3 y, a continuación, cargar el contenido. Si desea implementar un sistema automatizado, puede usar la interfaz de la línea de comandos de AWS en sus propias secuencias de comandos o las API de Amazon S3 en su propio código.
Una vez finalizada la carga, tal vez necesite convertir su video al tamaño, resolución o formato requeridos por un televisor o un dispositivo conectado en particular. AWS Elemental MediaConvert se encargará de esta tarea por usted. MediaConvert toma contenido de S3, lo transcodifica a partir de su solicitud y almacena el resultado nuevamente en S3. La tarea de transcodificación procesa archivos de video para crear versiones comprimidas del contenido original con ánimo de reducir su tamaño, modificar su formato o aumentar la compatibilidad con dispositivos de reproducción. En este caso también puede administrar el proceso a partir de la Consola de administración de AWS, la línea de comandos o las API de MediaConvert.
Con el contenido almacenado de manera segura y disponible en los formatos requeridos por los usuarios, el próximo paso es la entrega global con Amazon CloudFront. La red de entrega de contenido de Amazon almacena en caché el contenido en los bordes para lograr un bajo nivel de latencia y una entrega de videos con alto rendimiento. La escalabilidad le permite entregar el volumen de videos que desee. Puede atender picos inesperados de demanda con facilidad con un esquema de precios de pago por uso (consulte los precios de CloudFront para obtener más información).
En este punto la historia se bifurca y tiene dos opciones disponibles. Puede entregar el archivo del video entero al dispositivo antes de reproducirlo o puede distribuirlo por streaming al dispositivo.
La primera opción es muy fácil de implementar y la admiten casi todos los dispositivos móviles y sistemas de escritorio. Todo lo que debe hacer es insertar el contenido en un bucket de S3 y crear una distribución de CloudFront que apunte al bucket. El reproductor de video de su usuario usará las URL de CloudFront (accesibles como parte de la distribución) para solicitar el archivo de video. La solicitud se dirigirá a la mejor ubicación de borde en función de la ubicación del usuario. La CDN suministrará el video a partir de su caché o lo buscará en el bucket de S3 si aún no se encuentra en la caché. Esta opción tiene un par de desventajas. Hace un uso ineficiente del ancho de banda de su espectador. Si al usuario no le interesa mirar el video entero, el contenido que jamás se verá se descargará igualmente y usted pagará por él.
La segunda opción es la que casi siempre se prefiere. Una familia de protocolos de streaming de video, que incluye HTTP Live Streaming de Apple (HLS), Dynamic Adaptive Streaming over HTTP (DASH), Smooth Streaming de Microsoft (MSS) y HTTP Dynamic Streaming de Adobe (HDS), mejora la experiencia del usuario a través de la entrega de videos a medida que se ven, por lo general obteniendo el contenido con unos segundos de anticipación a su reproducción. La reproducción comienza con mayor rapidez, se puede pasar el video hacia delante de un modo más eficiente y la experiencia integral del cliente es más fluida. Con esta opción, solo paga por lo que el espectador mira, no desperdicia ancho de banda del usuario y los usuarios pueden ver el contenido que desean con mayor rapidez.
Implementar la segunda opción requiere algo más de trabajo. Primero, hay que usar MediaConvert para convertir los archivos de video al formato HLS (el protocolo de streaming con mayor compatibilidad). Este proceso dividirá el video en segmentos breves y también creará un archivo de manifiesto. A continuación, debe apuntarse la distribución de CloudFront al manifiesto. Por último, para reproducir el streaming en directo, hay que incorporar la URL del manifiesto en los reproductores que los usuarios usarán. Por ejemplo, para reproducir una transmisión en directo con un archivo de manifiesto que sea myStream/playlist.m3u8 y la distribución de CloudFront sea d111111abcdef8.cloudfront.net, debe incorporar la siguiente URL en los reproductores: http://d111111abcdef8.cloudfront.net/myStream/playlist.m3u8
En la página “Video bajo demanda en AWS” se incluyen prácticas recomendadas y directrices que tener en cuenta a la hora de implementar un video en un flujo de trabajo bajo demanda en la nube de AWS. Además, presenta una solución de AWS que aprovisiona de manera automática los servicios necesarios para crear una arquitectura escalable y distribuida que incorpore, almacene, procese y entregue contenido de videos.
Streaming en directo
En el caso del streaming en directo, el contenido representa eventos en directo o la entrega de un canal en directo de transmisión continua. Ejemplos del primer caso incluyen emisoras y agregadores de contenido que distribuyen por streaming torneos deportivos, ceremonias de entrega de premios, discursos de presentaciones y otros eventos en directo con alto nivel de audiencia. Ejemplos del segundo caso incluyen estudios, emisoras y operadoras de servicio televisivo pagas que quieren empaquetar y entregar canales lineales en directo a través de Internet directamente a sus audiencias, sin ninguna plataforma de distribución externa.
Puede usar AWS para emitir de manera rentable contenido en directo a una audiencia global con unos simples pasos.
El primero paso es el procesamiento de videos en directo. Para esa tarea, puede usar AWS Elemental MediaLive, que codifica transmisiones de video en directo en tiempo real. Para ello, toma un origen de video en directo de mayor tamaño, por ejemplo, que provenga de un codificador en las instalaciones como AWS Elemental Live, y lo comprime en versiones más pequeñas para distribuirlas a sus espectadores. Para el segundo paso, tiene dos opciones en función de su caso de uso. Puede usar un origen de empaquetado oportuno como AWS Elemental MediaPackage para convertir contenido de video de un único formato a varios formatos y empaquetarlo de manera segura para diferentes tipos de dispositivos. MediaPackage facilita la implementación de características de video conocidas para los espectadores (volver a empezar, detener, rebobinar, etc.), como las que están normalmente disponibles en los DVR. También puede proteger su contenido con administración de derechos digitales (DRM). Opcionalmente, si el codificador ya está poniendo el contenido en el formato requerido por todos los dispositivos de destino de los espectadores finales, puede usar un origen escalable de alto rendimiento, como AWS Elemental MediaStore. MediaPackage y MediaStore entregan el contenido a Amazon CloudFront, que lo direccionará a la audiencia que está viendo el evento en directo.
Una vez que su solución se encuentre en funcionamiento, es posible transmitir el evento en directo a todo el mundo de una manera escalable y rentable. La CDN puede ajustarse a una audiencia con tamaño variable y puede gestionar incrementos repentinos de público.
En la página “Streaming de video en vivo” se incluyen prácticas recomendadas y directrices que tener en cuenta a la hora de elegir un flujo de trabajo de streaming de videos en directo en la nube de AWS. Además, presenta una solución de AWS que aprovisiona automáticamente los servicios necesarios para crear una arquitectura rentable y de alta disponibilidad que ofrezca una experiencia de visualización en tiempo real excepcional.