Las plataformas de streaming se amplían para dar cabida a millones de espectadores simultáneos a través de diversos dispositivos y condiciones de red, por lo que es esencial un streaming ABR (adaptive bitrate) eficiente. En esta entrada del blog, exploraremos los aspectos técnicos de la transición de ABR del lado del cliente a ABR del lado del servidor, centrándonos en los detalles de implementación y las optimizaciones de rendimiento.
Fundamentos del streaming con tasa de bits adaptativa
¿Cómo funciona exactamente el streaming con tasa de bits adaptativa? Veamos cada paso. En primer lugar, el contenido de vídeo se prepara codificándolo a varias velocidades binarias (por ejemplo, 500 kbps, 1 Mbps, 2 Mbps, etc.) y almacenando estas diferentes variantes.
Un archivo de manifiesto, como un M3U8 para HLS o un MPD para DASH, contiene información sobre los distintos flujos de bitrate disponibles.
Cuando un usuario inicia la reproducción, el dispositivo cliente descarga el archivo de manifiesto para ver las opciones de bitrate disponibles. El cliente selecciona una tasa de bits inicial, que suele ser más baja para acelerar el arranque.
Mientras se reproduce el vídeo, el dispositivo cliente supervisa continuamente las condiciones de la red y sus niveles de búfer interno. Si el ancho de banda de la red se ve limitado, el cliente solicitará trozos de menor velocidad de bits para evitar el rebuffering. Por el contrario, si el ancho de banda mejora, el cliente solicita trozos de mayor velocidad para mejorar la calidad del vídeo. Este cambio de velocidad de bits se produce solicitando nuevos segmentos de vídeo al nivel de velocidad de bits actualizado.
Retos de la transmisión tradicional con velocidad de bits adaptable (Client-Side ABR)
Tradicionalmente, el streaming ABR se ha gestionado en el lado del cliente, donde el dispositivo que reproduce el vídeo determina la mejor tasa de bits a utilizar. Sin embargo, este método plantea algunos problemas. En primer lugar, la potencia de procesamiento de los dispositivos cliente varía mucho. Un teléfono antiguo puede no ser capaz de manejar toda la computación necesaria para ajustar constantemente la calidad del vídeo con la misma fluidez que un modelo nuevo de gama alta. Por eso, a veces, cuando ves un programa en tu teléfono, la calidad del vídeo puede fluctuar.
Otro problema es lo mucho que pueden variar las conexiones a Internet, incluso en un corto periodo de tiempo. Tu dispositivo tiene que adaptarse constantemente a esos cambios, lo que puede provocar caídas de calidad realmente notables o cambios frecuentes entre resoluciones que hacen que la experiencia de visualización sea bastante desagradable. Especialmente si vives en una zona con una conexión a Internet irregular, es posible que veas muchos búferes o caídas de calidad.
También está el problema de la latencia: si el dispositivo tarda en darse cuenta de que la conexión ha cambiado, es posible que no ajuste la velocidad de bits con la suficiente rapidez, lo que provocaría bloqueos o caídas repentinas de la calidad.
Por último, todo ese ajuste constante y las posibles ineficiencias pueden llevar a utilizar más datos de los necesarios. Esto puede ser un verdadero problema para los usuarios con planes de datos móviles limitados.
Cómo el ABR del lado del servidor puede resolver estos retos
Para resolver estos problemas, en lugar de determinar la selección de la tasa de bits adecuada en el lado del cliente, SSABR realiza la selección en el lado del servidor.
Así es como podría funcionar el streaming con bitrate adaptativo del lado del servidor. En primer lugar, el cliente envía una solicitud HTTP GET para el archivo de manifiesto. La solicitud incluye metadatos del cliente (por ejemplo, tipo de dispositivo, resolución de pantalla, códecs compatibles). A continuación, el servidor analiza los metadatos del cliente a partir de las cabeceras de la solicitud y realiza algunos análisis (carga actual de la CDN, distancia geográfica al cliente, rendimiento histórico de clientes similares, etc.). A continuación, el servidor genera un archivo de manifiesto personalizado adaptado a las capacidades del cliente y a las condiciones actuales de la red, e incluye sólo las tasas de bits consideradas adecuadas para el cliente. A continuación, el servidor seleccionará la velocidad de bits óptima en función del ancho de banda disponible (estimado a partir del RTT y el rendimiento), la complejidad del contenido (tamaño de los fotogramas I, vectores de movimiento) y el nivel de memoria intermedia del cliente (notificado mediante información en tiempo real). A continuación, el servidor entrega segmentos de vídeo codificados con la velocidad de bits seleccionada al dispositivo cliente, que los descodifica y reproduce. Por último, el servidor supervisa continuamente las condiciones de la red y las capacidades del dispositivo del espectador. Si las condiciones cambian durante la reproducción (por ejemplo, si se produce una congestión de la red), el servidor puede ajustar dinámicamente la velocidad de bits para garantizar una reproducción fluida sin almacenamiento en búfer ni degradación de la calidad.
Este enfoque del servidor tiene muchas ventajas. En lugar de que el dispositivo cliente tenga que seleccionar por sí mismo la tasa de bits adecuada, el servidor tiene una visión mucho más completa de las condiciones de la red, la complejidad del contenido de vídeo y la capacidad del dispositivo. Con toda esa información, puede tomar decisiones más apropiadas sobre el ajuste de la tasa de bits. Esto se traduce en transiciones más suaves entre los distintos niveles de calidad y, en general, en una experiencia de streaming más coherente y sin búferes para los espectadores.
Descargar el proceso de selección de la tasa de bits al servidor también reduce la carga de procesamiento en los dispositivos cliente. Esto es especialmente beneficioso para los dispositivos con recursos limitados, ya que mejora su rendimiento y la duración de la batería.
Otra ventaja de la transmisión con velocidad de bits adaptativa desde el servidor es que éste puede supervisar continuamente las condiciones de la red en tiempo real, ajustando la velocidad de bits con mayor precisión y rapidez que los algoritmos del cliente. Así, si detecta que tu conexión está a punto de ralentizarse, puede reducir proactivamente la tasa de bits antes incluso de que experimentes ningún contratiempo. Y en cuanto la velocidad de la conexión se recupere, volverá a aumentar la calidad. Incluso puede analizar la complejidad del contenido de vídeo en un momento dado. Las escenas de movimiento intenso con mucha acción se subirán a una tasa de bits más alta para mejorar la calidad, mientras que las escenas más tranquilas pueden transmitirse a tasas de bits más bajas sin que se vean peor.
Por último, el streaming con tasa de bits adaptativa en el servidor puede ser muy rentable para los proveedores de streaming. Una gestión más eficaz de la tasa de bits se traduce en menores costes de ancho de banda. Los proveedores de streaming pueden ofrecer vídeo de alta calidad sin incurrir en gastos excesivos de transferencia de datos, mientras que los usuarios pueden disfrutar de sus contenidos favoritos sin preocuparse por los excesos de datos.
En pocas palabras: mayor calidad de las transmisiones, reproducción más fluida, mejor rendimiento de los dispositivos y ahorro de costes son grandes razones para empezar a considerar la transmisión de flujo continuo con velocidad de bits adaptativa en el servidor.
Optimización del rendimiento
Para maximizar los beneficios del ABR del lado del servidor, hay algunas optimizaciones de rendimiento que debería considerar implementar. La primera es la computación de borde. Al desplegar la lógica ABR en los servidores periféricos, puede reducir drásticamente la distancia que deben recorrer los datos, lo que a su vez minimiza la latencia durante la reproducción de vídeo. Esta proximidad a los usuarios finales no sólo se traduce en una transmisión más fluida, con menos buffering y tiempo de retardo, sino que también garantiza ajustes más rápidos de la tasa de bits. Además, la reducción de la carga de los servidores centrales puede mejorar la escalabilidad y la eficacia general de la red, permitiéndole gestionar cargas de tráfico más elevadas con mayor facilidad.
Otra importante optimización del rendimiento consiste en aplicar estrategias eficaces de almacenamiento en caché. Si almacena en caché de forma inteligente los segmentos de vídeo más populares a distintas velocidades de bits, puede reducir significativamente la carga de su servidor y mejorar el rendimiento del streaming. Para lograrlo, puede utilizar estructuras de datos probabilísticas, como los filtros Bloom, que rastrean y predicen eficazmente la popularidad de los distintos segmentos. Esto permite al sistema almacenar y servir más rápidamente los contenidos a los que se accede con más frecuencia, reduciendo la latencia para los usuarios finales y minimizando la necesidad de obtener datos repetidamente del servidor de origen. Además, este enfoque puede ayudar a optimizar el uso del ancho de banda, lo que conduce a una arquitectura de streaming más escalable y eficiente.
Benchmarking y Monitoring Su experiencia de streaming
Después de migrar a la entrega de bitrate adaptable en el servidor, querrá cuantificar las mejoras mediante indicadores clave de rendimiento (KPI) que midan tanto la experiencia del usuario como la eficiencia del sistema. Hay algunos indicadores clave de rendimiento que son importantes.
El primero es el tiempo de arranque, que mide el tiempo transcurrido desde la solicitud de reproducción de un usuario hasta el primer fotograma renderizado. Un tiempo de arranque más corto es vital para una experiencia fluida, ya que los retrasos prolongados pueden provocar la frustración del usuario y aumentar la rotación. Otro KPI importante es el ratio de rebuffer, que se calcula dividiendo el tiempo total de rebuffer por el tiempo total de reproducción y multiplicándolo por 100. Este ratio refleja el porcentaje de tiempo que un usuario no puede reproducir una imagen. Este ratio refleja el porcentaje de tiempo que un vídeo pasa en el búfer durante la reproducción, y minimizarlo garantiza una visualización ininterrumpida. La frecuencia de cambio de bitrate, que registra el número de cambios de calidad por minuto, es otra métrica útil. Los cambios excesivos de velocidad de bits pueden alterar la experiencia del usuario, por lo que es esencial equilibrar el rendimiento y la estabilidad. La tasa de bits media mide la tasa de bits media suministrada durante una sesión, proporcionando información sobre la calidad general de vídeo experimentada por los usuarios. Una mayor tasa de bits suele significar mejor calidad, pero debe ajustarse al ancho de banda disponible para evitar el almacenamiento en búfer. Por último, las puntuaciones VMAF (Video Multi-Method Assessment Fusion) son métricas de calidad perceptual que garantizan que la calidad del vídeo suministrado se ajusta a las decisiones de velocidad de bits tomadas por el algoritmo ABR. Unas puntuaciones VMAF altas indican una buena calidad visual en relación con la tasa de bits, lo que garantiza una experiencia visual de alta calidad.
El tiempo de arranque, el ratio de rebuffer, la frecuencia de cambio de bitrate, el bitrate medio y las puntuaciones VMAF son KPI que puede utilizar para ajustar los algoritmos ABR y optimizar la satisfacción del usuario.
Conclusión
El streaming con bitrate adaptativo del lado del servidor resuelve muchas de las limitaciones del ABR tradicional del lado del cliente, ofreciendo una experiencia de streaming más eficiente y coherente. Al centralizar el proceso de toma de decisiones, el ABR del lado del servidor mejora el rendimiento, aumenta el control de calidad y optimiza el uso de datos.
En esta entrada de blog, exploramos los desafíos de ABR del lado del cliente y las convincentes ventajas de las soluciones del lado del servidor. Si eres desarrollador en una empresa de streaming y quieres aprender más sobre cómo optimizar tus soluciones de streaming con bitrate adaptativo, puedes usar este enlace para solicitar recibir hasta 5.000 dólares en créditos Linode para aprender más.
Comentarios