Establecer la tasa de bits máxima para un flujo

Puede controlar dinámicamente la tasa de bits máxima que un editor puede utilizar para las secuencias de vídeo de la cámara.

Esta guía muestra cómo configurar los ajustes de la tasa de bits de vídeo, cómo interactuar con los distintos preajustes, cómo establecer tasas de bits sin procesar y las mejores prácticas para utilizar la API de forma eficaz.

Este tema incluye las siguientes secciones:

Visión general

Puede establecer dinámicamente la tasa de bits máxima que un editor puede utilizar al codificar medios. A continuación, el codificador de vídeo ajusta la tasa de bits de forma dinámica, utilizando un valor dentro del rango permitido, desde un umbral mínimo hasta la tasa de bits máxima establecida, en función de las condiciones de la red y otras restricciones.

Establecer el bitrate máximo puede ayudar a reducir el consumo de ancho de banda cuando un usuario se conecta desde una conexión con contador. Asegúrese de leer la Limitaciones abajo.

Limitaciones

Hay que tener en cuenta algunas limitaciones importantes:

  • Condiciones de la red - La tasa de bits real alcanzada en la red puede ser inferior al valor establecido, debido a las estimaciones de la red en tiempo real, las fluctuaciones del ancho de banda y las limitaciones del backend.

  • Valores fuera de los límites - Si proporciona un valor de bitrate fuera del rango válido, el SDK puede ignorar la solicitud o devolver un error.

Uso de la API

Preajustes de velocidad de bits de vídeo

La API ofrece preajustes de velocidad de bits de vídeo que simplifican la reducción de la calidad de vídeo sin necesidad de preocuparse por los ajustes del códec y de la sesión. Estos preajustes están diseñados para casos de uso comunes como videoconferencias y se adaptan a resoluciones de 480p, 540p, 720p y 1080p.

Los preajustes disponibles son:

  • DEFAULT - La configuración predeterminada de la tasa de bits del SDK que ofrece una experiencia visual equilibrada para las secuencias de vídeo.

  • BW_SAVER - Un ajuste de calidad media para videoconferencias que reduce la tasa de bits para ahorrar ancho de banda.

  • EXTRA_BW_SAVER - La tasa de bits más baja para la comunicación de vídeo esencial, que ofrece una baja calidad de vídeo pero un uso mínimo del ancho de banda.

Ten en cuenta que los valores exactos de la tasa de bits utilizados cuando se trata de preajustes son específicos de la implementación y dependen del códec negociado y del modo del medio (retransmitido o enrutado). Los SDK de cliente de la Video API incluyen métodos para establecer y obtener la tasa de bits preestablecida.

Ajuste de los valores de la tasa de bits bruta

Si las tasas de bits predefinidas no satisfacen tus necesidades, puedes establecer un valor de tasa de bits en bruto personalizado. Esto te permite definir límites específicos de bitrate dentro de un rango, desde 5.000 bps hasta 10.000.000 bps. Ten en cuenta que el valor sólo se aplica a la tasa de bits del codificador, por lo que la sobrecarga de la red sigue aplicándose además del valor elegido.

Los SDK de cliente de la Video API de Vonage incluyen métodos para establecer el valor de la tasa de bits sin procesar y para recuperarlo. Hasta que se establece una tasa de bits bruta, o hasta que sólo se establecen preajustes, el getter devuelve 0 (excepto para el SDK de JS, en el que el valor devuelto es indefinido). Una vez establecida una tasa de bits bruta, el getter de preajustes de tasa de bits devuelve 'custom', lo que indica que se ha aplicado un valor personalizado. Sin embargo, no utilices el valor preestablecido "custom" en el establecedor; simplemente establece el número de tasa de bits específico que se utilizará como valor máximo.

Interacción de la tasa de bits y la capa de codificación con VP8 y escalabilidad habilitada

El cambio de la tasa de bits máxima cuando se utiliza VP8 escalable desencadena una eficiencia adicional: el Client SDK activa o desactiva dinámicamente las capas de codificación en función de la tasa de bits disponible para garantizar que el flujo de vídeo sea lo más eficiente posible. Este proceso adapta la resolución a la que el editor está publicando.

Las siguientes notas se aplican al preajustado cuando se utiliza VP8:

  • DEFAULT - Este preajuste utiliza todas las capas de codificación disponibles. Para un flujo típico, esto incluye hasta tres capas (baja, media y alta).

  • BW_SAVER - Este preajuste sólo utiliza las dos primeras capas de codificación (calidad baja y media). Está diseñado para ahorrar ancho de banda, por lo que es adecuado para escenarios como las videoconferencias, donde la alta calidad de vídeo puede no ser tan crítica.

  • EXTRA_BW_SAVER - Este preajuste reduce aún más la tasa de bits, utilizando sólo la capa de codificación base (la más baja). Este es el modo más eficiente en cuanto a ancho de banda, ya que proporciona la calidad mínima para una comunicación de vídeo significativa.

Cuando se establece un valor de tasa de bits sin procesar, si la tasa de bits proporcionada es insuficiente para mantener determinadas capas de codificación, el SDK desactiva automáticamente las capas superiores. Por ejemplo, si la tasa de bits es demasiado baja para las capas de calidad media o alta, esas capas se descartan y sólo se transmite la capa base.

Si una nueva tasa de bits proporcionada es lo suficientemente alta como para mantener más capas de codificación, el SDK reactiva las capas de codificación superiores, restaurando progresivamente la calidad del vídeo al volver a añadir las capas media y alta.

Este mecanismo garantiza que el flujo de vídeo siga siendo lo más eficiente posible, maximizando el uso del ancho de banda disponible sin comprometer la experiencia del usuario.

Ejemplos

Al inicio de una sesión, un editor utiliza la función DEFAULT que proporciona una calidad de vídeo completa. En esta fase concreta de la sesión, supongamos que ha negociado el códec VP8 no escalable. Sin embargo, tras un cambio de red a una conexión con contador (por ejemplo, celular), puede reducir el ancho de banda de publicación utilizando la opción BW_SAVER preestablecido. Cuando se utiliza un preajuste para la tasa de bits máxima del editor, el Client SDK se asegura de que el nivel de calidad siga siendo el mismo independientemente de cualquier evento. Cuando la red vuelve a cambiar a una conexión ilimitada, puede restablecer el valor predeterminado configurando el parámetro DEFAULT preestablecido.

También puedes fijar el valor de la tasa de bits bruta para establecer un umbral superior de ancho de banda.

Para obtener más información sobre cada Client SDK, consulte lo siguiente:

Los detalles sobre el uso de Publisher Max Bitrate en Vonage Video macOS Client SDK son los mismos que en Linux Client SDK.

Buenas prácticas

Para garantizar el mejor rendimiento y un uso óptimo del ancho de banda, siga estas prácticas recomendadas:

  • Uso de tasas de bits predefinidas - Siempre que sea posible, utilice las tasas de bits predefinidas (DEFAULT, BW_SAVER, EXTRA_BW_SAVER) para gestionar la calidad de vídeo. Estos preajustes se adaptan a situaciones habituales, como las videoconferencias, y garantizan el equilibrio entre la calidad de vídeo y la eficiencia del ancho de banda. Y lo que es más importante, abstraen los detalles de los códecs y los modos multimedia.

  • Cuidado con los ajustes personalizados de bitrate - Aunque los ajustes personalizados de la tasa de bits te dan más control, su uso está ligado a detalles del códec que pueden cambiar durante la fase de negociación de WebRTC. Recomendamos utilizarlos con moderación y solo cuando sea necesario un umbral estricto de la tasa de bits.

  • No apliques tasas de bits personalizadas ni preajustes a los flujos de pantalla compartida - La codificación de flujos de pantalla compartida difiere de la codificación de flujos de cámara. El uso de la API de tasa de bits máxima para limitar un flujo de pantalla compartida puede degradar la calidad sin ofrecer ninguna mejora de ancho de banda.