Brightcove en directo: Mejores prácticas

Con Video Cloud Live, puede configurar fácilmente eventos en vivo y entregar transmisiones de múltiples tasas de bits a la web, dispositivos iOS y Android. En este tema se describen una serie de prácticas recomendadas y recomendaciones para ayudar a garantizar una experiencia de transmisión en directo estable y de alta calidad.

Descripción general

Brightcove Live proporciona un servicio sólido para crear eventos de transmisión en vivo o transmisiones en vivo las 24 horas, los 7 días de la semana. Esta guía describe las mejores prácticas para optimizar sus transmisiones en vivo

Contexto de contenido

El tipo de contenido que se transmite debe tenerse en cuenta, ya que tiene un impacto en la configuración requerida para mantener la calidad de la entrada. Tenga en cuenta que existen compensaciones y el uso de la configuración más alta posible puede causar problemas como marcos omitidos.

Con base en la información a continuación, le recomendamos que pruebe diferentes combinaciones de configuraciones para la calidad y el rendimiento antes de su evento en vivo.

Los parámetros de entrada clave se describen en la siguiente tabla:

Parámetros de entrada clave para transmisión en vivo
Parámetro Notas
Tasa de bits de entrada La tasa de bits que envía el codificador. Las tasas más altas son más susceptibles a la pérdida de la red, por lo que deben mantenerse tan bajas como sea posible.
Resolución de entrada Debe coincidir con el contenido de origen. No hay ningún beneficio en hacer esto mayor que la fuente original y cuanto mayor sea este valor, mayor será la tasa de bits necesaria para admitirlo.
Tasa de bits de entrada a la relación de perfil superior La tasa de bits de entrada debe ser más alta que la tasa del perfil superior, pero demasiado más alta puede provocar la pérdida de fotogramas u otros problemas; por ejemplo, si su tasa máxima es 1080p 30 fps, la entrada idealmente debe ser de alrededor de 4 MBPS. Tenga en cuenta que esto se ve afectado por el perfil. Por lo general, recomendamos una tasa de bits de entrada que sea 2x (dos veces) la tasa de bits de su interpretación en vivo con la tasa de bits más alta.

Si necesita una salida superior de alta tasa de bits, vale la pena probar el copy_video configuración que simplemente copiará su codificación de entrada a la salida.

Perfiles Los diferentes perfiles (línea de base, principal, alto) comprimen los datos en cantidades ascendentes (línea de base: más bajo, alto: más alto). Una mayor compresión mejora la velocidad de transmisión, pero también requiere mayores recursos de CPU para decodificar los datos. A menos que el codificador esté muy restringido en los recursos disponibles, se debe evitar el perfil de línea de base. Por otro lado, es más probable que el uso de un perfil alto a velocidades de bits altas provoque la omisión de tramas debido al aumento de los recursos de CPU de decodificación necesarios.

Ver también Estructura GOP debajo.

Cuadros por segundo Esto debería coincidir con la fuente.

Las velocidades más altas requerirán velocidades de bits de entrada proporcionalmente más altas, por ejemplo, con contenido de deportes de acción, un flujo de entrada de 60 fps transporta sustancialmente más datos que un flujo de 30 fps.

Es más probable que las velocidades altas, como 60 fps, tengan problemas de salto de fotogramas en contenido complejo a velocidades de bits altas.

Tasa de fotogramas clave La configuración más eficiente para esto es la duración del segmento x la velocidad de fotogramas; por ejemplo, si tiene segmentos de 6 segundos y 30 fps, la velocidad de fotogramas clave 180 (6x30) resultaría en la carga de decodificador más baja.

Sin embargo, para tener en cuenta las fluctuaciones, esto se establece en 2 x la velocidad de fotogramas, por ejemplo, 60 para una velocidad de fotogramas de 30 fps.

Estructura GOP Ver Estructura GOP debajo.

Restricciones de entrada

Para garantizar la experiencia de transmisión más uniforme y de la más alta calidad, Brightcove Live limita la configuración de transmisión de entrada a:

  • Protocolo: rtmp , rtp , rtp-fec , o srt (todo excepto rtmp son para entradas MPEG2-TS)[1-1]
  • Resolución: Máximo 1920 x 1080
  • Máximo 30 fps, que es típico. Brightcove admite hasta 60 fps, pero deberá Póngase en contacto con el soporte de Brightcove tener el límite aumentado. Al usar 60 fps, Brightcove recomienda aumentar la tasa de bits para lograr la calidad visual deseada para el contenido y una tasa de fotogramas constante.
  • Menos de 10 Mbps
  • La tasa de bits constante (CBR) reduce en gran medida la posibilidad de problemas
  • El códec de video debe ser H.264
  • Rebanadas: Si su codificador tiene esta opción, configúrela en 1
  • El códec de audio debe ser AAC
  • Frecuencia de muestreo de audio: 44,1 khz y 48 khz son las frecuencias de audio de muestra recomendadas para usar
  • Frecuencia de fotogramas clave o GOP (grupo de imágenes) alineados:
    1. A Fotograma clave siempre debe ocurrir cada 2 segundos para entradas y salidas (incluido video de 25 fps). Lo que significa que se envía un fotograma clave a Brightcove desde el codificador cada dos segundos de la transmisión. Este proceso se puede definir de diferentes formas, pero Tasa de fotogramas clave es el más común.
    2. Se puede calcular de diferentes formas mediante diferentes codificadores. Por ejemplo:
      • Wirecast usa la cantidad de fotogramas que pasan, por lo que para un video de 30 fps, la configuración sería 60.
      • Los codificadores elementales usan segundos para que la configuración correcta sea '2'.
      • El video de 60 FPS solo cambiará si esta configuración se cuenta por los fotogramas, en cuyo caso cada 120 fotogramas equivaldría a 2 segundos.
  • Si hay una opción para Fotogramas clave Alineados, Sincronizar GOP, Alinear fotogramas clave o algo a lo largo de esas líneas, asegúrese de que los fotogramas clave estén alineados. Cuando los fotogramas clave no están alineados, se producen problemas de sincronización con la segmentación de HLS.

Notas

  • [1-1] Si tiene varias pistas de video / audio en su entrada TS, elegiremos la primera para cada una. También recomendamos encarecidamente el uso de FEC, ya que TS simple sobre UDP a través de Internet es muy poco confiable. Para FEC, podríamos notar que el menor los valores que use para las filas / columnas, más confiable será la corrección de errores (a costa de un mayor ancho de banda.

Problemas clave con la transmisión

Hay varios problemas que se encuentran generalmente relacionados con problemas con la experiencia de transmisión desde el codificador a Brightcove:

  1. Inestabilidad de la red que afecta a la entrada:
    1. Si bien Internet es generalmente bastante confiable, no es infalible y ocurren problemas. Es más probable que los problemas se noten en velocidades de bits más altas.
    2. Si se tarda más en cargar el video que en tiempo real, esto puede resultar en un desvío de entrada (el tiempo en que se recibe el video es sustancialmente más tarde que cuando se envió)
  2. Sobrecarga del transcodificador que resulta en saltos de fotogramas: si bien hacemos todo lo posible para asegurarnos de que nuestros transcodificadores tengan suficiente sobrecarga, a veces los picos repentinos en la complejidad del contenido, los contratiempos / recuperaciones de la red u otras interrupciones en nuestros transcodificadores pueden provocar saltos de fotogramas. Cuanto más compleja sea la entrada, más probable será que se encuentren fotogramas omitidos. También existe un problema conocido en el que los cambios de una imagen fija durante un período prolongado, por ejemplo, más de 5 minutos y un cambio repentino en el contenido de la acción, pueden causar una sobrecarga.
  3. Codificador que envía duraciones de fotogramas variables: la velocidad de fotogramas debe ser constante y debe ser tal que permita un intervalo de fotogramas clave que sea constante. Por ejemplo, para una velocidad de fotogramas como 29,97, también conocida como 30000/1001 o 23,976, también conocida como 24000/1001, no es posible establecer un fotograma clave en un intervalo regular y, como tal, debe evitarse.
  4. El codificador envía fotogramas clave que no tienen una duración constante, la frecuencia de fotogramas clave debe ser un mínimo de 2 veces la frecuencia de fotogramas en segundos. Por ejemplo, para una velocidad de fotogramas de 30 fps, el intervalo de fotogramas clave debe ser de 60 fotogramas, que es de 2 segundos y debe ser un intervalo máximo de una vez por segmento; por ejemplo, si tiene un segmento de 6 segundos, el intervalo máximo sería de 180 fotogramas en 30 fps

Tipos de contenido

Generalmente, el contenido más complejo requerirá el uso de la más alta de estas configuraciones y, como tal, es más susceptible a los fotogramas saltados. La siguiente tabla muestra algunos ejemplos en orden de complejidad. Tenga en cuenta que estos son solo ejemplos y que casi todas las configuraciones de codificador son diferentes. Deben realizarse pruebas y verificación.

Ejemplos de tipo de contenido
Tipo de contenido Configuración de ejemplo
Cámara web
  • Resolución: 360p
  • Tasa de bits: 1 MBPS
  • Perfil: Base
Conferencia web
  • Resolución: 480p
  • Tasa de bits: 2,5 MBPS
  • Perfil: Principal
Animación
  • Resolución: 720p
  • Tasa de bits: 2,5 MBPS
  • Perfil: Principal
Talking Head / Noticias
  • Resolución: 720p
  • Tasa de bits: 4 MBPS
  • Perfil: Principal
Concierto en vivo
  • Resolución: 1080p (o fuente)
  • Tasa de bits: 5 MBPS
  • Perfil: Elevado
Deporte en directo
  • Resolución: 1080p (o fuente)
  • Tasa de bits: 6 MBPS
  • Perfil: Elevado
Deporte en vivo alto FPS
  • Resolución: 1080p (o fuente)
  • Tasa de bits: 10 MBPS
  • Perfil: Elevado

Empleos de Transmux Live

Configure la inserción de fotogramas clave para que coincida con la configuración de segmentación de la solicitud. Por ejemplo, si la velocidad de fotogramas es de 25 fotogramas por segundo y el deseo es un segmento de 6 segundos, establezca el intervalo de fotogramas clave para que sea al menos una vez cada 300 fotogramas.

Pruebe la configuración/salida del codificador con los dispositivos de destino deseados. Esto es particularmente importante si usa un codificador de contribución de transmisión que puede tener configuraciones avanzadas que dan como resultado una transmisión que puede no ser compatible con todos los dispositivos del consumidor. También es una buena idea evitar configuraciones particularmente avanzadas; es difícil decir cuáles son exactamente, ya que hay tantos codificadores y opciones posibles. Pero un perfil de tarifa superior general debería ser algo como:

  • Tasa de bits máxima de 6 Mbps
  • H264 Perfil alto
  • Marcos B: 2
  • 8 bits 4:2:0 color

Verificación y prueba

Idealmente, debería comenzar con la configuración más baja posible en su contenido más complejo (el contenido más cambiante) y probar con su contenido aumentando las distintas configuraciones hasta que la salida sea aceptable. Esto se debe a que, por lo general, cuanto más alta sea la configuración, es más probable que se encuentren problemas en la red o en la transcodificación.

Prueba de ancho de banda

El primer paso para llegar a la configuración adecuada para el flujo de entrada es determinar el ancho de banda disponible en el sitio. Hay algunas herramientas que pueden ayudar:

  • SpeedOf.Me ( https://speedof.me ): determinar el ancho de banda total disponible para las conexiones HTTP es un buen primer paso. Sin embargo, dado que la alimentación de entrada se transmitirá al módulo Live a través de RTMP en lugar de HTTP, el ancho de banda real disponible para las conexiones RTMP será significativamente menor.
  • Speedtest ( https://www.speedtest.net ): herramienta en línea para determinar las velocidades de carga y descarga actuales.

Ancho de banda de entrada

Proporcionar un flujo de entrada estable y de alta calidad es la única forma de garantizar la mejor experiencia de usuario para los espectadores. Un buen flujo de entrada proporciona la mejor calidad de video con el mayor ancho de banda disponible de manera constante desde una ubicación.

  • Ancho de banda de entrada mínimo: 2,5 mbps
  • Ancho de banda de entrada máximo: 10 mbps

Determinación de las capacidades del codificador

También es importante comprender las capacidades del software y el hardware utilizados para codificar la transmisión en vivo y enviarla al módulo Live. Puede haber mucha tasa de bits para enviar un flujo de entrada de 1080p de alta calidad, pero el hardware también debe poder codificar a velocidades más rápidas que en tiempo real. Algunas herramientas de codificación muestran información sobre el uso total de la CPU y el ancho de banda que se está utilizando. Por ejemplo, Telestream Wirecast mostrará las estadísticas de salida en la parte inferior de la ventana de Wirecast.

Esta información es útil para determinar la transmisión más estable y de mayor calidad que es posible en un hardware determinado. Cosas para ver en Wirecast:

  • La CPU debe ser inferior al 80%
  • La tasa de datos debe estar cerca de la tasa de bits de destino
  • FPS debe estar a la velocidad de la configuración del flujo de entrada

Estructura GOP

La estructura del grupo de imágenes (GOP) del video depende primero del perfil que se utiliza como:

  1. Base el perfil solo admite marcos I y P y codificación de entropía CAVLC
  2. Principal y Elevado Admite marcos I, B y P y codificación de entropía CABAC

Los perfiles principal y alto generalmente dan como resultado una mejor compresión con mejor calidad, pero también requieren cálculos adicionales para codificar y decodificar, por lo que pueden ser más susceptibles a los fotogramas saltados. Además, como estos perfiles utilizan tramas B (bidireccionales), inducen cierto retraso en el proceso de codificación.

El perfil de línea de base requiere menos CPU para codificar y decodificar, pero como ofrece menos compresión, requiere una tasa de bits más alta para mantener la calidad y, como tal, es más susceptible a problemas de red.

Notas sobre los tipos de tramas y su posible impacto en el rendimiento:

  1. Fotogramas I: utiliza la mayor cantidad de ancho de banda. Es mejor agregarlo para cambios completos de escena o en los límites del segmento, es decir, cuanto más cambia el contenido, más necesita (menor longitud de GOP)
  2. Fotogramas P: son la unidad base entre fotogramas I
  3. Fotogramas B: usa fotogramas anteriores y futuros, cuanto más añadas, mejor será la compresión, pero cuanto mayor sea la CPU y la latencia

El uso de Yo enmarca Idealmente, debería limitarse al inicio de los segmentos (crítico si se usa el paso a través) o cambios de escena. Deben evitarse todos los fotogramas I o un gran número de ellos, ya que esto puede provocar un exceso de carga que provoque la omisión de fotogramas.

Notas adicionales:

  • Utilice opciones para evitar la ubicación densa de fotogramas clave (ejemplo: min_keyin = 3+).
  • Utilice opciones que garanticen una cadencia regular de inserción de fotogramas clave. Por ejemplo, en lugar de especificar la longitud de GOP en segundos, especifíquela en fracciones o cuadros exactos.

Bitrate

  • Ancho de banda de entrada mínimo: 2,5 mbps
  • Ancho de banda de entrada máximo: 10 mbps
  • Haz que la transmisión sea "casi CBR"» - con max_bitrate = 1,1 * target_bitrate.
  • Utilice el modo de control de frecuencia estricto compatible con HRD, si está disponible.

Protocolo

Es importante tener en cuenta que Internet no es una red de distribución garantizada y que, si bien una conexión a Internet puede considerarse "buena", puede que no sea lo suficientemente buena para una transmisión de video en vivo confiable con alta calidad. Una pequeña interrupción en la ruta entre el codificador del cliente y la plataforma de transcodificación de Brightcove, como una pequeña cantidad de congestión en un ISP, una conmutación por error no planificada entre enrutadores o problemas similares, puede causar una interrupción en la salida de video. En transmisiones en vivo de alto riesgo, es una práctica normal tener múltiples redes dedicadas que consisten en fibra dedicada, ancho de banda satelital reservado o ancho de banda comprometido en una red administrada. Esto tiene un costo sustancial y, en la mayoría de los casos, es posible lograr un resultado suficientemente bueno a través de Internet. Sin embargo, si es fundamental mantener un transporte sin fallas, considere AWS Direct Connect o un ISP que pueda proporcionar cierto nivel de ancho de banda dedicado.

En general, recomendamos dedicar el ancho de banda dos veces el tamaño de flujo esperado del codificador para evitar por completo cualquier problema de red relacionado con el ancho de banda.

Las opciones que recomendamos son (en orden):

  1. SRT - proporciona una buena combinación de velocidad de transporte (UDP) con cierto control y resistencia a errores. No está disponible en todos los codificadores, aunque existen herramientas que pueden traducir desde RTP local como srt-transmit.
  2. RTMP - al estar basado en TCP, proporciona un buen nivel de resistencia a errores, las desventajas son que esto conlleva una sobrecarga sustancial. Tenga en cuenta que no todas las funciones, como varias pistas de audio, están disponibles con RTMP.
  3. RTP-FEC - proporciona transporte rápido basado en UDP con cierta resistencia a errores
  4. RTP - proporciona transporte rápido y funciones avanzadas sin resistencia a errores

Codificadores compatibles

Ver Codificadores compatibles para eventos en vivo para obtener una lista de codificadores que se sabe que funcionan con Live. Tenga en cuenta que otros codificadores también pueden funcionar, pero no se han probado.

CDN compatibles

  • Akamai
  • Amazon CloudFront

Reintentos

Recomendamos habilitar reintentos para la conexión RTMP desde el codificador. Una gran cantidad de reintentos con un intervalo de reintento de 5 segundos mitigará cualquier problema de conectividad intermitente entre el codificador y el punto de entrada.

Configuración del trabajo (solo API en vivo)

Configuración de trabajo recomendada

Configuración del trabajo
Campo Valor recomendado
ad_audio_loudness_level -23 (estándar EBU R.128)

Recomendaciones para iniciar una transmisión en vivo

Se debe activar un trabajo antes de la conexión del codificador. Además, la activación de un trabajo después de iniciar la transmisión desde el codificador no es un procedimiento admitido y puede provocar un comportamiento inesperado.

Recomendaciones de archivos fuente de pizarra

  • Resolución: (mejor en su escalera de codificación)
  • FPS: (igual que su fuente)
  • Bitrate: (mejor en tu escala de codificación o mejor)
  • Audio: (la misma velocidad de bits, canales, frecuencia de muestreo y bits por muestra que su mejor interpretación, o igual que la entrada)

Recomendaciones de salida

A continuación se muestran las configuraciones de salida recomendadas, pero tenga en cuenta que para muchos codificadores, la entrada RTMP está limitada a 10 MBPS (video + audio) y una velocidad de cuadros de 30 fps.

Recomendaciones de salida
Artículo Recomendación
Códec de vídeo h264 es actualmente la única opción
Códec de audio aac es actualmente la única opción
Ancho Si no width o height se suministra, se utilizan las dimensiones de la fuente. Si alguno width o height se suministra, la otra dimensión se calculará para mantener la relación de aspecto de la fuente.
Altura Si no width o height se suministra, se utilizan las dimensiones de la fuente. Si alguno width o height se suministra, la otra dimensión se calculará para mantener la relación de aspecto de la fuente.
Bitrate Menor o igual a la tasa de bits de entrada (para obtener mejores resultados, la tasa de bits de salida más alta debe ser la mitad de la tasa de bits de entrada)
Tasa de fotogramas clave 2 segundos

Preguntas más frecuentes

¿Qué tan pronto debe comenzar a transmitir después de crear un trabajo en vivo? En Brightcove Live, hay dos condiciones cuando el estado cambia de waiting a finishing :
  1. si el trabajo está en el esperando estado (aún no iniciado) y el max_waiting_time_ms ha transcurrido, el trabajo está terminado / desactivado.
  2. Si el trabajo está en el desconectado estado (iniciado, pero desconectado) y el reconnect_time ha transcurrido, el trabajo está terminado / desactivado.

Si el event_length es superior a 30 minutos, el trabajo finalizará en 30 minutos. Si el event_length es menos de 30 minutos, el trabajo terminará en event_length .

Por ejemplo, si el event_length es de 60 minutos, entonces, el trabajo en vivo terminará en 30 minutos. Si el event_length es de 15 minutos, luego, el trabajo en vivo terminará en 15 minutos

La reconnect_time no tiene ningún efecto para el estado de espera.

¿Cuáles son las limitaciones de las configuraciones de trabajo simultáneas en vivo?

Un máximo de 5 activos esperando, sin comenzar Se permiten trabajos en cualquier momento.

Limitaciones adicionales en trabajos concurrentes:

  • El número de channel (24x7) trabajos está limitado a 0 o un número bajo por región (dependiendo del tipo de cuenta).
  • El número de concurrentemente corriendo event Los puestos de trabajo están limitados por región, generalmente a 100.
  • El número de concurrentemente esperando para conectarse event Los trabajos se limitan a 5.
  • El número de puestos de trabajo SEP por región está limitado a 3 o 10 (consulte Regiones de AWS admitidas).

El equipo de soporte puede ajustar cualquiera de estos límites a nivel de cuenta. Comuníquese con su Gerente de Éxito del Cliente si necesita capacidad adicional.

¿Brightcove Live puede impulsar la calidad de 1080p siempre que el ancho de banda de entrada sea suficiente? Sí, la entrada de 1080p está habilitada para todas las cuentas.
¿DRM está disponible? ¡Sí! Comuníquese con su Gerente de Éxito del Cliente si está interesado en agregar soporte DRM a su cuenta real.

Para más ayuda

Si necesita más ayuda para que su evento en vivo funcione, puede Contáctenos. Para asegurarse de obtener la respuesta más rápida posible, a continuación se muestra una lista de lo que Brightcove Support necesitará para resolver el problema.

  • Los síntomas específicos que tiene la corriente. Por ejemplo, ¿no se reproduce en absoluto o tartamudea o se congela?
  • Si esta transmisión funcionó correctamente en el pasado
  • La URL del punto de entrada que está utilizando en su codificador.
  • El software y hardware de codificación que está utilizando
  • La URL del jugador en el que ha publicado el evento en directo.
  • La identificación de video de su activo en vivo
  • Los resultados de una ruta de seguimiento desde su codificador hasta el host del punto de publicación