Streaming en vivo con Azure Media Services v3

Logotipo de Media Services v3


Sitio web | de AMS Documentación de Media Services v2 | Ejemplos de código | Guía de solución de problemas

Azure Media Services permite entregar eventos en directo a sus clientes en la nube de Azure. Para transmitir los eventos en directo con Media Services, necesita lo siguiente:

  • Una cámara que se utilice para capturar el evento en directo.
    Para obtener ideas para la configuración, consulte Simple and portable event video gear setup (Equipo de vídeo para eventos sencillo y portátil). Si no tiene acceso a una cámara, puede usar herramientas como Telestream Wirecast para generar una fuente en directo a partir de un archivo de vídeo.
  • Un codificador de vídeo en vivo que convierte las señales de una cámara (u otro dispositivo, como un portátil) en una fuente de contribución que se envía a Media Services. La fuente de contribución puede incluir señales relacionadas con la publicidad, como los marcadores SCTE-35.
    Para obtener una lista de los codificadores de streaming en vivo recomendados, consulte Codificadores de streaming en vivo. Vea también este blog: Live streaming production with OBS (Producción de streaming en vivo con OBS).
  • Componentes de Media Services, que permiten ingerir, previsualizar, empaquetar, registrar, cifrar y difundir el evento en directo a los clientes o a una red CDN para una futura distribución.

Para los clientes que quieren entregar contenido a grandes audiencias de Internet, se recomienda habilitar CDN en el punto de conexión de streaming.

Empaquetado y entrega dinámicos

Con Media Services puede aprovechar el empaquetado dinámico, que le permite obtener una vista previa y difundir streaming en vivo en los formatos MPEG DASH, HLS y Smooth Streaming desde la fuente de contribución que se envía al servicio. Los espectadores pueden reproducir el streaming en vivo con cualquier reproductor compatible con HLS, DASH o Smooth Streaming. Puede utilizar Azure Media Player en las aplicaciones web o móviles para entregar la transmisión en cualquiera de estos protocolos.

Cifrado dinámico

El cifrado dinámico permite cifrar de forma dinámica el contenido en directo o a petición con AES-128 o cualquiera de los tres principales sistemas de administración de derechos digitales (DRM): Microsoft PlayReady, Google Widevine y Apple FairPlay. Media Services también proporciona un servicio para entregar claves AES y licencias de DMR (PlayReady, Widevine y FairPlay) a los clientes autorizados. Para más información, consulte Cifrado dinámico.

Widevine es un servicio que ofrece Google Inc. y que está sujeto a los términos del servicio y la directiva de privacidad de Google, Inc.

Filtrado dinámico

El filtro dinámico se usa para controlar el número de pistas, formatos, velocidades de bits y ventanas de tiempo de presentación que se envían a los reproductores. Para obtener más información, consulte los detalles de los filtros y los manifiestos dinámicos.

Tipos de eventos en directo

Los eventos en directo son responsables de la ingesta y el procesamiento de las fuentes de vídeo en directo. Un evento en directo se puede establecer en una codificación de paso a través (un codificador en directo local envía una secuencia de velocidad de bits múltiple) o en una codificación en directo (un codificador en directo local envía una secuencia de velocidad de bits única). Para más información sobre el streaming en vivo en Media Services v3, consulte Eventos en directo y salidas en vivo.

Paso a través

Cuando se utiliza el evento en directo de tránsito (básico o estándar), se confía en el codificador en directo local para generar una secuencia de vídeo con múltiples velocidades de bits y enviarla como fuente de contribución al evento en directo (mediante el protocolo de entrada RTMP o MP4 fragmentado). Tras ello, el objeto LiveEvent realiza la secuencia de vídeo entrante al empaquetador dinámico (punto de conexión de streaming) sin necesidad de transcodificar nada más. Este tipo de objeto LiveEvent de paso a través está optimizado para eventos en directo de larga duración o para el streaming en vivo ininterrumpidamente.

instrucción de paso a través

Live Encoding

Si utiliza la codificación en la nube con Media Services, deberá configurar el codificador en directo local para que envíe un vídeo con una única velocidad de bits como fuente de contribución (agregado de 32 Mbps como máximo) al objeto LiveEvent (mediante el protocolo de entrada RTMP o MP4 fragmentado). El objeto LiveEvent transcodifica la secuencia de velocidad de bits única entrante en varias secuencias de vídeo de velocidad de bits a resoluciones diferentes para mejorar la entrega, y las pone a disposición para su entrega a dispositivos de reproducción a través de protocolos estándar del sector como MPEG-DASH, Apple HTTP Live Streaming (HLS) y Microsoft Smooth Streaming.

Configuración de la codificación en directo

Transcripción en directo

La transcripción en directo es una característica que puede usar con eventos en directo que son de paso a través o de codificación en directo. Para más información, consulte transcripción en directo. Cuando esta característica está habilitada, el servicio usa la característica Voz a texto de Cognitive Services para transcribir el texto oral del audio entrante en texto escrito. A continuación, se pone a disposición este texto para su entrega junto con el vídeo y el audio en los protocolos MPEG-DASH y HLS.

Importante

Debe usar los tamaños de GOP de 2 segundos para los eventos en directo. Debe usar los tamaños de GOP de 4 segundos o menos para los eventos en directo de paso a través con transcripciones en directo, para obtener los datos de transcripción correctos. Si decide usar un tamaño superior de GOP, es posible que los datos de transcripción tengan defectos (por ejemplo, que falte contenido).

Consideraciones de seguridad para CC, subtítulos y entrega de metadatos con tiempo

Las características de cifrado dinámico y DRM de Azure Media Services tienen límites que se deben tener en cuenta al intentar proteger la entrega de contenido que incluye transcripciones en directo, CC, subtítulos o metadatos con tiempo. Los subsistemas DRM, incluidos PlayReady, FairPlay y Widevine, no admiten el cifrado ni las licencias de pistas de texto. La falta de cifrado DRM para las pistas de texto limita la capacidad de proteger el contenido de las transcripciones en directo, los subtítulos insertados manualmente, los subtítulos cargados o las señales de metadatos con tiempo que se pueden insertar como pistas independientes.

Para proteger los CC, los subtítulos o las pistas de metadatos con tiempo, sigue estas directrices:

  1. Use el cifrado de clave sin cifrado AES-128. Al habilitar el cifrado de claves sin cifrado AES-128, las pistas de texto se pueden configurar para cifrarse mediante una técnica de cifrado de "sobre" completa que sigue el mismo patrón de cifrado que los segmentos de audio y vídeo. Después, una aplicación cliente puede descifrar estos segmentos después de solicitar la clave de descifrado del servicio de entrega de claves Media Services mediante un token JWT autenticado. Este método es compatible con el Azure Media Player, pero puede no ser compatible con todos los dispositivos y puede requerir algún trabajo de desarrollo del lado cliente para asegurarse de que se realiza correctamente en todas las plataformas.
  2. Use la autenticación de token CDN para proteger las pistas de texto (CC, subtítulos, metadatos) que se entregan con direcciones URL con token de forma corta que están restringidas a la configuración geográfica, IP u otra configuración configurable en el portal de CDN. Habilite las características de seguridad de CDN mediante Verizon Premium CDN u otras CDN de terceros configuradas para conectarse a los puntos de conexión de streaming Media Services.

Advertencia

Si no sigue una de las guías anteriores, los CC, los subtítulos o el texto de metadatos con tiempo serán accesibles como contenido sin cifrar que podría interceptarse o compartirse fuera de la ruta de entrega de cliente prevista. Esto puede dar lugar a información filtrada. Si le preocupa el contenido de los subtítulos que se filtran en un escenario de entrega segura, consulte al equipo de soporte técnico de Media Services para obtener más información sobre las guías anteriores para proteger la entrega de contenido.

Flujo de trabajo de streaming en vivo

Para conocer el flujo de trabajo de streaming en vivo de Media Services v3, primero tendrá que examinar y conocer los conceptos siguientes:

Pasos generales

  1. En la cuenta de Media Services, asegúrese de que el punto de conexión de streaming (origen) esté en ejecución.

  2. Cree un evento en directo.
    Al crear el evento, puede especificar que se inicie automáticamente. De lo contrario, puede iniciar el evento cuando esté listo para iniciar el streaming.
    Cuando el inicio automático está establecido en true, el evento en directo se iniciará después de la creación. La facturación comienza en cuanto el objeto LiveEvent empieza a ejecutarse. Debe llamar explícitamente a Stop en el recurso del evento en directo para evitar que continúe la facturación. Para más información, consulte Estados y facturación de LiveEvent.

  3. Obtenga las direcciones URL de ingesta y configure el codificador local a fin de usar la dirección URL para enviar la fuente de contribución.
    Consulte Codificadores de streaming en vivo recomendados.

  4. Obtenga la dirección URL de versión preliminar y úsela para verificar que la entrada del codificador se está recibiendo realmente.

  5. Cree un nuevo objeto de recurso.

    Cada salida en directo está asociada a un recurso cuya salida utiliza para grabar el vídeo en el contenedor de Azure Blob Storage asociado.

  6. Cree una salida en directo y use el nombre del recurso que ha creado para que se pueda archivar el flujo en el recurso.

    Los objetos LiveOutput comienzan al crearlos y se detienen cuando se eliminan. Cuando se elimina el objeto Live Output, no se elimina el recurso subyacente ni su contenido.

  7. Cree un localizador de streaming con los tipos de directivas de streaming integrados.

    Para publicar la salida en directo, debe crear un localizador de streaming para el recurso asociado.

  8. Enumere las rutas de acceso en el localizador de streaming para recuperar las direcciones URL que se van a usar (estas son deterministas).

  9. Obtenga el nombre de host para el punto de conexión de streaming (origen) desde el que quiere hacer el streaming.

  10. Combine la dirección URL del paso 8 con el nombre de host del paso 9 para obtener la dirección URL completa.

  11. Si desea que el evento en directo deje de estar visible, es preciso que se deje de transmitir el evento y que elimine el localizador de streaming.

  12. Si se realizan eventos de streaming y desea limpiar los recursos aprovisionados anteriormente, siga el procedimiento siguiente.

    • Detenga la inserción de la secuencia en el codificador.
    • Detenga el evento en directo. Una vez detenido el evento en directo, dejará de suponer un coste. Cuando necesite iniciarlo de nuevo, tendrá la misma URL de introducción, por lo que no necesitará volver a configurar su codificador.
    • Puede detener el extremo de streaming, a menos que desee seguir proporcionando el archivo de su evento en vivo como una secuencia a petición. Si el evento en directo está en estado detenido, no supondrá ningún coste. Sin embargo, si el punto de conexión de streaming todavía se está ejecutando, incurrirá en cargos.

El recurso en el que se está archivando la salida en directo, se convierte automáticamente en un recurso a petición cuando se elimina esa salida en directo. Debe eliminar todas las salidas en directo antes de que un evento en directo pueda detenerse. Puede usar una marca opcional removeOutputsOnStop para quitar automáticamente las salidas en directo cuando se detenga el proceso.

Sugerencia

Consulte el tutorial sobre streaming en vivo, en el artículo se examina el código que implementa los pasos descritos anteriormente.

Otros artículos importantes

Preguntas más frecuentes sobre streaming en vivo

Consulte las preguntas sobre streaming en vivo en las preguntas más frecuentes.