Distribución de vídeo en streaming en directo con CloudFront y AWS Media Services - Amazon CloudFront

Distribución de vídeo en streaming en directo con CloudFront y AWS Media Services

Para utilizar AWS Media Services con CloudFront y distribuir contenido en directo a un público global, siga las indicaciones de esta sección.

Use AWS Elemental MediaLive para codificar las transmisiones en streaming de vídeo en directo en tiempo real. Para codificar una transmisión en streaming de vídeo de gran tamaño, MediaLive la comprime en versiones más pequeñas (la codifica) que se pueden distribuir a los lectores.

Después de comprimir una transmisión en streaming de vídeo en directo, puede utilizar cualquiera de las dos opciones principales siguientes para preparar y distribuir el contenido:

  • Convierta el contenido a los formatos requeridos y, a continuación, distribúyalo: si necesita contenido en varios formatos, use AWS Elemental MediaPackage para empaquetar el contenido para diferentes tipos de dispositivos. Al empaquetar el contenido, también puede implementar funciones adicionales y añadir la administración de derechos digitales (DRM) para evitar el uso no autorizado del contenido. Para obtener instrucciones paso a paso sobre el uso de CloudFront para servir contenido formateado por MediaPackage formateó, consulte Distribución de vídeo en directo formateado con AWS Elemental MediaPackage.

  • Almacene y distribuya el contenido mediante un origen escalable: si MediaLive ha codificado el contenido en los formatos requeridos por todos los dispositivos que utilizan los espectadores, utilice un origen altamente escalable, como AWS Elemental MediaStore para distribuir el contenido. Para obtener instrucciones paso a paso sobre el uso de CloudFront para servir contenido almacenado en un contenedor de MediaStore, consulte Distribución de vídeo utilizando AWS Elemental MediaStore como origen.

Una vez que haya configurado el origen mediante una de estas opciones, ya puede distribuir streaming de vídeo en directo a los lectores con CloudFront.

sugerencia

Puede obtener información sobre una solución de AWS que implementa automáticamente servicios para crear una experiencia de visualización en tiempo real de alta disponibilidad. Si desea ver los pasos para implementar automáticamente esta solución, consulte Implementación automatizada de streaming en directo.

Distribución de vídeo utilizando AWS Elemental MediaStore como origen

Si almacena vídeo en un contenedor de AWS Elemental MediaStore, puede crear una distribución de CloudFront para distribuir el contenido.

Para empezar, conceda a CloudFront acceso a su contenedor de MediaStore. A continuación, cree una distribución de CloudFront y configúrela para que funcione con MediaStore.

Para distribuir contenido desde un contenedor de AWS Elemental MediaStore
  1. Siga el procedimiento que se describe en Cómo permitir que Amazon CloudFront acceda a un contenedor de AWS Elemental MediaStore y, a continuación, vuelva a estos pasos para crear la distribución.

  2. Cree una distribución con la siguiente configuración:

    1. Dominio de origen: el punto de conexión de datos que se ha asignado al contenedor de MediaStore. En la lista desplegable, elija el contenedor de MediaStore del vídeo en directo.

    2. Ruta de origen: la estructura de carpetas en el contenedor de MediaStore donde se almacenan sus objetos. Para obtener más información, consulte Ruta de origen.

    3. Agregar encabezado personalizado: agregue nombres de encabezado y valores si desea que CloudFront agregue encabezados personalizados cuando reenvía solicitudes a su origen.

    4. Política de protocolo de visualización: elija Redirigir HTTP a HTTPS. Para obtener más información, consulte Política de protocolo para lectores.

    5. Política de caché y política de solicitud de origen

      • En Política de caché, elija Crear política y, a continuación, cree una política de caché adecuada a sus necesidades de caché y a la duración de los segmentos. Después de crear la política, actualice la lista de políticas de caché y, a continuación, elija la política que acaba de crear.

      • En Política de solicitud de origen, elija CORS-CustomOrigin de la lista desplegable.

    Para el resto de la configuración, puede establecer valores específicos en función de otros requisitos técnicos o de las necesidades de su empresa. Para ver una lista de todas las opciones de las distribuciones e información sobre su configuración, consulte Referencia de configuración de la distribución.

  3. Para los enlaces de su aplicación (por ejemplo, un reproductor multimedia), especifique el nombre del archivo multimedia en el mismo formato que utiliza para otros objetos que distribuye con CloudFront.

Distribución de vídeo en directo formateado con AWS Elemental MediaPackage

Si ha utilizado AWS Elemental MediaPackage para dar formato a una transmisión en streaming en directo, puede crear una distribución de CloudFront y configurar los comportamientos de la caché para distribuir la transmisión en streaming en directo. En el siguiente proceso, se presupone que ya ha creado un canal y que ha agregado puntos de enlace para el vídeo en directo mediante MediaPackage.

Para crear una distribución de CloudFront para MediaPackage manualmente, siga estos pasos:

Paso 1: Cree y configure una distribución de CloudFront

Realice el procedimiento siguiente para configurar una distribución de CloudFront para el canal de vídeo en directo que ha creado con MediaPackage.

Para crear una distribución para el canal de vídeo en directo
  1. Inicie sesión en AWS Management Console y abra la consola de CloudFront en https://console.aws.amazon.com/cloudfront/v4/home.

  2. Elija Crear distribución.

  3. Elija la configuración de la distribución, incluido lo siguiente:

    Dominio de origen

    El origen donde están el canal de vídeo en directo y los puntos de enlace de MediaPackage. Elija el campo de texto y, a continuación, en la lista desplegable, elija el dominio de origen de MediaPackage para su vídeo en directo. Puede mapear un dominio a varios puntos de enlace de origen.

    Si ha creado el dominio de origen con otra cuenta de AWS, escriba el valor de la URL de origen en el campo. El origen debe ser una URL HTTPS.

    Por ejemplo, para un punto de conexión de HLS como https://3ae97e9482b0d011.mediapackage.us-west-2.amazonaws.com/out/v1/abc123/index.m3u8, el dominio de origen es 3ae97e9482b0d011.mediapackage.us-west-2.amazonaws.com.

    Para obtener más información, consulte Dominio de origen.

    Ruta de origen

    Ruta de acceso al punto de enlace de MediaPackage desde el que se distribuye el contenido.

    El campo Ruta de origen no se rellena automáticamente. Debe introducir manualmente la ruta de origen correcta.

    Para obtener más información sobre el funcionamiento de una ruta de origen, consulte Ruta de origen.

    importante

    La ruta comodín * es necesaria para enrutar a alguna parte de la distribución de CloudFront. Para evitar que las solicitudes que no coincidan con una ruta explícita se dirijan al origen real, cree un origen “ficticio” para esa ruta comodín.

    ejemplo : Creación de un origen ”ficticio”

    En el siguiente ejemplo, los puntos de conexión abc123 y def456 enrutan al origen “real”, pero las solicitudes de contenido de vídeo de cualquier otro punto de conexión se dirigen a mediapackage.us-west-2.amazonaws.com sin el subdominio adecuado, lo que provoca un error HTTP 404.

    Puntos de conexión de MediaPackage:

    https://3ae97e9482b0d011.mediapackage.us-west-2.amazonaws.com/out/v1/abc123/index.m3u8 https://3ae97e9482b0d011.mediapackage.us-west-2.amazonaws.com/out/v1/def456/index.m3u8

    Origen A de CloudFront:

    Domain: 3ae97e9482b0d011.mediapackage.us-west-2.amazonaws.com Path: None

    Origen B de CloudFront:

    Domain: mediapackage.us-west-2.amazonaws.com Path: None

    Comportamiento de caché de CloudFront:

    1. Path: /out/v1/abc123/* forward to Origin A 2. Path: /out/v1/def456/* forward to Origin A 3. Path: * forward to Origin B

    Para el resto de la configuración de la distribución, establezca valores específicos en función de otros requisitos técnicos o de las necesidades de su empresa. Para ver una lista de todas las opciones de las distribuciones e información sobre su configuración, consulte Referencia de configuración de la distribución.

    Cuando termine de elegir la otra configuración de distribución, elija Crear distribución.

  4. Elija la distribución que acaba de crear y, a continuación, elija la pestaña Comportamientos.

  5. Elija el comportamiento de caché predeterminado y, a continuación, elija Editar. Especifique la configuración correcta de comportamiento de la caché para el canal que ha elegido como origen. Más adelante, añadirá uno o varios orígenes adicionales y editará la configuración de comportamiento de la caché para ellos.

  6. Vaya a la página Distribuciones de CloudFront.

  7. Espere hasta que el valor de la columna Última modificación de su distribución haya cambiado de Implementando a una fecha y hora, lo que indica que CloudFront ha creado su distribución.

Paso 2: Agregar orígenes para los dominios de sus puntos de conexión de MediaPackage

Repita aquí los pasos para agregar cada uno de los puntos de conexión de canal de MediaPackage a su distribución, teniendo en cuenta la necesidad de crear un origen “ficticio”.

Para añadir otros puntos de enlace como orígenes
  1. En la consola de CloudFront, elija la distribución que creó para su canal.

  2. Elija Orígenes y, a continuación, elija Crear origen.

  3. En Nombre de dominio de origen, en la lista desplegable, elija un punto de conexión de MediaPackage para el canal.

  4. Para el resto de la configuración, establezca los valores en función de otros requisitos técnicos o de las necesidades de su empresa. Para obtener más información, consulte Configuración de origen.

  5. Elija Crear origen.

Paso 3: Configurar los comportamientos de la caché para todos los puntos de enlace

Es necesario configurar los comportamientos de la caché de cada punto de enlace para añadir patrones de ruta que dirijan correctamente las solicitudes. Los patrones de ruta que especifique dependerán del formato de video que distribuya. El siguiente procedimiento incluye la información del patrón de ruta que se utilizará para los formatos Apple HLS, CMAF, DASH y Microsoft Smooth Streaming.

Normalmente, se configuran dos comportamientos de la caché para cada punto de enlace:

  • El manifiesto principal, que es el índice de los archivos.

  • Los segmentos, que son los archivos del contenido de vídeo.

Para crear un comportamiento de la caché para un punto de enlace
  1. En la consola de CloudFront, elija la distribución que creó para su canal.

  2. Elija Comportamientos y, a continuación, elija Crear comportamiento.

  3. Para Patrón de ruta, utilice un GUID de OriginEndpoint de MediaPackage específico como prefijo de ruta.

    Patrones de ruta

    Para un punto de conexión HLS como https://3ae97e9482b0d011.mediapackage.us-west-2.amazonaws.com/out/v1/abc123/index.m3u8, cree los dos comportamientos de caché siguientes:

    • Para manifiestos principales y secundarios, use /out/v1/abc123/*.m3u8.

    • Para los segmentos de contenido, use /out/v1/abc123/*.ts.

    Para un punto de conexión CMAF como https://3ae97e9482b0d011.mediapackage.us-west-2.amazonaws.com/out/v1/abc123/index.m3u8, cree los dos comportamientos de caché siguientes:

    • Para manifiestos principales y secundarios, use /out/v1/abc123/*.m3u8.

    • Para los segmentos de contenido, use /out/v1/abc123/*.mp4.

    Para un punto de conexión DASH como https://3ae97e9482b0d011.mediapackage.us-west-2.amazonaws.com/out/v1/abc123/index.mpd, cree los dos comportamientos de caché siguientes:

    • Para el manifiesto principal, use /out/v1/abc123/*.mpd.

    • Para los segmentos de contenido, use /out/v1/abc123/*.mp4.

    Para un punto de conexión de Microsoft Smooth Streaming como https://3ae97e9482b0d011.mediapackage.us-west-2.amazonaws.com/out/v1/abc123/index.ism, solo se sirve un manifiesto, por lo que solo se crea un comportamiento de caché: out/v1/abc123/index.ism/*.

  4. Para cada comportamiento de la caché, especifique las siguientes opciones:

    Política de protocolo para lectores

    Elija Redirect HTTP to HTTPS (Redireccionamiento de HTTP a HTTPS).

    Política de caché y política de solicitud de origen

    En Política de caché, elija Crear política. Para su nueva política de caché, especifique la siguiente configuración:

    Tiempo de vida mínimo

    Establézcalo en 5 segundos o menos, para ayudar a evitar la distribución de contenido obsoleto.

    Cadenas de consulta

    En Cadenas de consulta (en Configuración de la clave de caché), elija Incluir cadenas de consulta especificadas. Para Permitir, agregue los siguientes valores escribiéndolos y eligiendo Agregar elemento:

    • Agregue m como parámetro de cadena de consulta que desea que CloudFront utilice como base para el almacenamiento en caché. La respuesta de MediaPackage siempre incluye la etiqueta ?m=### para capturar la hora de modificación del punto de enlace. Si el contenido ya se encuentra en la memoria caché con un valor diferente para esta etiqueta, CloudFront solicita un nuevo manifiesto en lugar de distribuir la versión en caché.

    • Si utiliza la funcionalidad de visualización en diferido de MediaPackage, especifique start y end como parámetros adicionales de la cadena de consulta en el comportamiento de la caché para las solicitudes de manifiesto (*.m3u8, *.mpd e index.ism/*). De esta forma, el contenido que se distribuye es específico del periodo de tiempo solicitado en la solicitud de manifiesto. Para obtener más información acerca de la visualización en diferido y cómo dar formato a los parámetros de solicitud de inicio y finalización del contenido, consulte Visualización en diferido en la Guía del usuario de AWS Elemental MediaPackage.

    • Si está utilizando la característica de filtrado de manifiestos de MediaPackage, especifique aws.manifestfilter como parámetro adicional de cadena de consulta para la política de caché que use con el comportamiento de caché para las solicitudes de manifiesto (*.m3u8, *.mpd e index.ism/*). Esto configura la distribución para reenviar la cadena de consulta aws.manifestfilter a su origen de MediaPackage, lo que es necesario para que funcione la característica de filtrado de manifiestos. Para obtener más información, consulte Filtrado de manifiestos en la Guía del usuario de AWS Elemental MediaPackage.

    • Si utiliza HLS de baja latencia (LL-HLS), especifique _HLS_msn y_HLS_part  como parámetros adicionales de cadena de consulta para la política de caché que utiliza con el comportamiento de caché para solicitudes de manifiesto (*.m3u8). Esto configura su distribución para reenviar las cadenas de consulta _HLS_msn y _HLS_part a su origen de MediaPackage, lo cual es necesario para que funcione la característica de solicitud de listas de reproducción de bloqueo LL-HLS.

  5. Seleccione Crear.

  6. Después de crear la política de caché, vuelva al flujo de trabajo de creación del comportamiento de caché. Actualice la lista de políticas de caché y elija la política que acaba de crear.

  7. Elija Crear comportamiento.

  8. Si su punto de conexión no es un punto de conexión de Microsoft Smooth Streaming, repita estos pasos para crear un segundo comportamiento de caché.

Paso 4: Habilitar la autorización CDN de MediaPackage basada en encabezados

Recomendamos habilitar la Autorización CDN de MediaPackage basada en encabezados entre los puntos de conexión de MediaPackage y la distribución de CloudFront. Para obtener más información, consulte Habilitar la autorización CDN en MediaPackage en la Guía del usuario de AWS Elemental MediaPackage.

Paso 5: Utilizar CloudFront para servir el canal de transmisión en directo

Después de crear la distribución, agregar los orígenes, crear los comportamientos de caché y habilitar la autorización CDN basada en encabezados, puede servir el canal de transmisión en directo mediante CloudFront. CloudFront enruta las solicitudes de los lectores a los puntos de enlace correctos de MediaPackage en función de los ajustes configurados para los comportamientos de la caché.

Para los enlaces de la aplicación (por ejemplo, un reproductor multimedia), especifique la dirección URL del archivo multimedia en el formato estándar de las URL de CloudFront. Para obtener más información, consulte Personalización del formato de URL para archivos en CloudFront.