¿Por qué no es tan fácil hacer vídeollamadas?

videollamadasvoip2day2016

 

Asistimos al VOIP2DAY en la que asistimos a una conferencia realmente interesante de Iñaki Baz creador del producto “mediasoup”, una librería en NodeJS que ayuda a tratar la señal de vídeo y audio de uno o varios interlocutores para integrarla en cualquier solución web HTML5 y que es independiente de la señalización o los protocolos.

En dicha conferencia se descubren cosas muy interesantes sobre el mundo de las videollamadas y es que se exponen muchas problematicas que pueden justificar que no sea una tarea fácil encontrar la mejor solución del mercado: ¿Que pasa si cada interlocutor tiene una calidad diferente de ancho de banda? ¿Se debe rebajar la calidad al que peor conexión tiene? Si hay buena conexion en una ¿Se debería mandar la señal de vídeo en varias calidades al mismo tiempo para mandar la correcta?

fullfesh

La topología más “evidente” sería la llamada “FULL MESH” que consiste en que todos los interlocutores envían toda la información al resto sin pasar por un servidor central o un moderador y por lo tanto genera poca latencia en teoría pero consume más ancho de banda y requiere que en el cliente el ordenador sea potente para interpretar la señal.

topologiamcu

Lo que esta claro es que si cada interlocutor manda la señal a un servidor central que actua como un “router” y se encarga de convertir las calidades en el momento, la maquina central es la que más recursos de CPU consumirá y quizás, por ser un proceso complicado se produzcan latencias (retrasos) a la hora de recibir voz y vídeo: se trata de la topología MCU “Multipoint Count Unit”.

sfu

Por otro lado se puede optar por la topología SFU “Selective Forwarding Unit” en el que existe un servidor central que manda a los demas la señal en varias calidades según quiera el cliente a cada interlocutor, un sistema que no codifica nada y que si bien reduce ancho de banda, sigue exigiendo un procesamiento y CPU en el cliente que necesita renderizar (crear el vídeo mezclado).

simulcast

La topología Simulcast / Svc permite que los interlocutores envíen su propia señal a un servidor para que mande la señal a los demás en la calidad adecuada y reduce CPU al mandar el interlocutor con buena conexión 3 calidades diferentes para que se envie al que se conecta la calidad adecuada sin tener que procesarla todo el rato.  En realidad ninguna solución es perfecta y esta solución tiene sus problemas pese a parecer la mejor opción que beneficie al abuelo con una mala conexión 3G frente a los demás con WIFI.

topologiasvideollamadas

Sin duda esta conferencia ha podido poner de manifiesto porque las videollamadas pueden consumir más o menos con diferentes servicios según como se implementen y quizás justifique que las de WHATSAPP usen más datos en sus videollamadas que las de APPLE FACETIME por elegir no solo una forma de codificación diferente sino una topología particular.

porquenodejs

En el caso de la librería “mediasoup” utiliza la topología SFU que funciona como modulo de NODEjs y que emplean grandes empresas, y tiene como el WebRTC empleado por empresas como TUENTI (en su VOZ DIGITAL) un API de alto nivel para manejar los datos del audio y video (solo la parte de media) por lo que es independiente de si usamos protocolo SIP o no, y de la señalización de señal.

A día de hoy están trabajando para poder lanzar una versión 2.0 que incluya Simulcast y permita un mayor ahorro de datos de ancho de banda y lograr una mayor compatibilidad con los navegadores que manejan HTML5 y Javascript. ¡Estaremos al tanto!

Enlaces: Voip2day | Slider

Share
Posted in Articulos.


Comments

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>