Technical note
Protocolo IPv6 para la realización de Videoconferencias
Universidad Nacional de La Matanza.
Departamento de Ingeniería e Investigaciones Tecnológicas.
Grupo de Investigación, Desarrollo y Formación en Innovación de Software.
San Justo, Buenos Aires. Argentina
Universidad Nacional de La Matanza
Departamento de Ingeniería e Investigaciones Tecnológicas.
Grupo de Investigación, Desarrollo y Formación en Innovación de Software.
San Justo, Buenos Aires. Argentina
Universidad Nacional de La Matanza
Departamento de Ingeniería e Investigaciones Tecnológicas.
Grupo de Investigación, Desarrollo y Formación en Innovación de Software.
San Justo, Buenos Aires. Argentina
Resumen
Esta línea de Investigación y Desarrollo se basa en la construcción de una solución integral en la que se combina el desarrollo de un software específico para Videoconferencias nativo para Ipv6, implementado en un hardware dedicado. El objetivo es contar con una solución autónoma que permita ser conectada a cualquier monitor o televisor para ser utilizada al momento de hacer una Videoconferencia sin necesidad de contar con equipamiento adicional. La ventaja además de la autonomía será el tamaño y costo final de la solución, en el presente artículo se expondrá la forma en que se propone implementarse.
Abstract
Palabras Clave:
IPv6, Streaming de Video, Rasperry Pi ⓘ
Keyword:
Contexto
El presente proyecto de Investigación y Desarrollo corresponde al programa PROINCE y es la continuación de un proyecto previo “Implementación y Desarrollo de Aplicaciones Nativas sobre IPv6” [1] el cual ha finalizado en Diciembre del 2014, permitiendo la implementación física de un nodo IPv6 en el laboratorio del GIDFIS (Grupo de Investigación, Desarrollo y Formación en Innovación de Software) y por otra parte desarrollar con frameworks de programación aplicaciones nativas en IPv6. Algunas de estas aplicaciones ya han sido instaladas y están en funcionamiento en la Universidad Nacional de La Matanza. Con este conocimiento previo se continuará con el presente proyecto que ha iniciado en Enero del 2015 con una fecha prevista de finalización en Diciembre del 2016.
Introducción
Streaming
Debido a la creciente cantidad de dispositivos que navegan sobre internet, los cuales necesitan comunicar datos con otros dispositivos o consumir datos de una misma fuente de la que consumen varios receptores, surge la necesidad de implementar IPv6 y sus técnicas de transmisión entre ellas el Multicast. La implementación de estas técnicas permite mejorar la performance y la escalabilidad. Esta tecnología podría por ejemplo permitir la transmisión de video a varios nodos de una red. La cantidad de direcciones que el protocolo incluye, soportará la transmisión de video a dispositivos móviles, dispositivos de reproducción de videos como Smart TV o Tabletas.
La evolución de Internet junto con un mayor ancho de banda ha permitido nuevas experiencias, incluyendo streaming de audio y video. Para la reproducción de contenido multimedia era necesario descargar completamente en el disco local el archivo para su reproducción. Descargar el archivo multimedia de manera completa para su reproducción es un proceso lento, a través de la tecnología streaming el archivo puede ser descargado y reproducido al mismo tiempo, mientras que se siguen descargando otras partes del archivo. Con este proceso hay un tiempo mínimo de espera ya que no es necesario haber recibido el archivo completo o gran parte del mismo.
Mediante la implementación de un servidor de streaming, el flujo de datos puede ser generado a través de Internet facilitando audio y video mejorando el rendimiento. Con esta técnica se mitigan algunas dificultades como: el ancho de banda variable en el tiempo, demora, perdida de datos y otros como recursos compartidos entre un punto y varios.
Con la utilización del protocolo IPv6 y el uso de las técnicas de transmisión de Multicast es posible la transmisión de video de forma óptima sobre Internet. “A diferencia del sistema habitual de transmisión Unicast empleado en Internet, donde los paquetes se intercambian entre dos estaciones extremo a extremo, la comunicación Multicast permite el envío de paquetes de información de uno-a muchos optimizando la carga que reciben las estaciones transmisoras y receptoras así como el ancho de banda entre los enlaces que las unen. En una conferencia basada en comunicaciones uno-a-uno, la eficacia de la misma es inversamente proporcional al número de receptores en un extremo dado de la red. Cada nuevo receptor en un mismo extremo de la red obliga a que los paquetes de información se dupliquen. En el caso de las comunicaciones uno-a-muchos (Multicast) la eficiencia no se ve afectada por ese factor” [2].
La transmisión de vídeo requiere un flujo continuo de datos a enviar desde un servidor a un cliente (nodo a otro nodo). Si el número de clientes es muy grande los recursos de red y el procesamiento consumido por el servidor en el envío de los datos de forma individual para cada uno de los clientes será enorme. Además, un gran retraso será introducido en la transmisión. Por lo tanto, en lugar de enviar los datos de forma individual para cada cliente el servidor puede “multicastear” los datos a una dirección común conocida como dirección de multidifusión. El cliente que quiere recibir los datos puede unirse al grupo de multidifusión mediante el envío de una solicitud de adhesión a la dirección de grupo. Una vez que se otorga la pertenencia al grupo se puede conectar a esta dirección y recibir datos [3].
Junto con las técnicas de transmisión también se agregan técnicas de codificación y decodificación para la reproducción así como también técnicas de compresión que son utilizadas en el servidor para comprimir el flujo de datos y que luego es descomprimido por el cliente que lo consume reproduciendo el video, la compresión reduce el tráfico de datos en la red de manera significativa.
Para la implementación de IPv6 Multicast algunas empresas tienen routers con optimizaciones como Cisco [4]. Las tecnologías de IP multidifusión permiten la distribución escalable de datos, voz y vídeo streaming eficientemente a cientos, miles, incluso millones de usuarios "IP Multicast utiliza un único flujo de datos, que se replica por los routers en los puntos de ramificación en toda la red. Este mecanismo utiliza un ancho de banda mucho más eficiente y disminuye en gran medida la carga en los servidores de contenido, llegando a más usuarios a un costo menor por usuario” [4]
Desarrollo de Software para un Sistema Autónomo
Mediante la utilización de técnicas de streaming de video y el uso de IPv6 se plantea el desarrollo de una aplicación de video conferencia. Pero, en lugar de desarrollar una aplicación que se ejecute en una computadora tradicional, se plantea el desarrollo para ser ejecutado sobre un hardware dedicado. De forma que, simplemente conectando el hardware mediante HDMI a un televisor o monitor ya se pueda utilizar el servicio de video conferencia (previa configuración de los ajustes de red). Al agregar la función de motorización de la cámara se permitirá que el usuario pueda desplazarse libremente en el ambiente ya que la cámara lo seguirá de forma automática. Lo que facilita demostraciones con manipulación y traslado de objetos; conferencias con varios oradores en el mismo ambiente; ó simplemente dar más libertad al usuario para que pueda realizar sus tareas habituales y realizar al mismo tiempo la video conferencia.
La utilización de un hardware dedicado para la implementación de la solución requiere de un desarrollo de software particular para aislar al usuario de las cuestiones tradiciones del uso de una aplicación sobre una computadora. La aplicación deberá ser desarrollada para ejecutarse de forma autónoma al encender el equipo sin requerir pasos adicionales. Se deberá entonces pensar en una interfaz que permita tener una buena experiencia de usuario, pensada para usuarios sin conocimientos previos, logrando que puedan hacer uso de todas las funcionalidades de la aplicación fácilmente. También deberá pensarse la forma de interacción que se utilizará ya que al no contar con un teclado y mouse tradicionales se deberá por ejemplo desarrollar la interfaz para ser manejada mediante un control remoto. Adicionalmente se puede agregar soporte para otros tipos de métodos de ingreso, como por ejemplo un teclado bluetooth o mediante una aplicación desarrollada en un Smartphone que se conecte al dispositivo.
Líneas de Investigación, Desarrollo e Innovación
Los ejes principales de trabajo son:
- Análisis de Técnicas de Streaming de Video sobre IPv6
- Implementación de Software que incorpore Streaming de Video sobre IPv6
- Manejo de Hardware dedicado (sensores de sonido y ultrasonido, servomotores)
- Implementación con Rasperry Pi
Resultados y Objetivos
Se está seleccionando el framework de desarrollo. Cabe destacar que los framework actualmente traen funciones de IPv6 implementadas (ver figura 1).
Figura 1. Framework de Desarrollo - Funciones IPv6 |
En cuanto a la solución de hardware, la propuesta diseñada prevé la motorización de una cámara, lo cual puede observase en la figura 2
Figura 2. Solución Propuesta Motorización de Cámara Web |
Para implementar esta solución se requerirá de dos servomotores que puedan darle movilidad a la cámara tanto en forma horizontal como vertical y además sensores vinculados al sonido, que permitirán detectar de este modo al orador dentro de una sala y enfocarlo con la cámara en forma automática. La solución se puede implementar de dos formas: (a) Rasperry PI B+; (b) Arduino, tal como se muestra en la figura 3.
La opción (a) consiste en una “minicomputadora” con sistema operativo basado en Linux, mientras que la opción (b) consiste en un microcontrolador.
Según la envergadura del proyecto y las necesidades particulares es posible seleccionar una u otra opción, si bien tienen algunas características que la diferencian ambas podrían cubrir las necesidades de este proyecto (algunos trabajos de referencia que pueden ser de interés son [5] [6] [7]).
Figura 3. Solución Posible que incluye la motorización de Cámara Web |
En la tabla 1 se presenta la comparativa de las características técnicas de ambas alternativas.
Tabla 1. Comparativa de Alternativas
|
Raspberry Pi B+ |
Arduino UNO |
RAM |
512 MB |
2 KB |
Almace-namiento |
Micro SD |
32 KB (flash), 1 KB (EEPROM) |
Procesador |
ARM1176 |
ATmega328 |
Velocidad |
700 Mhz |
16 Mhz |
Ethernet |
Sí |
No |
Salida HDMI (audio y video) |
Sí |
No |
Nº puertos USB |
4 |
1 (Conexión con PC) |
Soporta instalación de S.O. |
Sí (Linux) |
No |
Cantidad de GPIO (puertos útiles) |
40 |
23 |
Lenguajes de programación soportados |
Python, C, C++, Java, Perl, Ruby, etc |
Arduino (basado en Wiring) |
Alimentación |
5v |
5v |
Tamaño |
85 x 56 x 17mm |
68.6 x 53.4 mm |
La elección final es comprar una Raspberry PI, la cual en forma autónoma conectada a un monitor o televisor permita utilizar la solución integral de video teleconferencia.
El resultado ha sido la elección del hardware apropiado, y del framewok en el cual se hará el desarrollo. Se está actualmente trabajando además en el análisis de técnicas de Streaming de Video.
Bibliografía - Bibliography
[4] Cisco Systems. (2014). CISCO IOS IPv6 multicast technologies.
[7] Ballesta Torre F. Arduino+Raspberry Pi; Universidad de Catalunya, España; 2014
Google Scholar Index
Article
Protocolo IPv6 para la realización de Videoconferencias
Publisher: