Introducción a Flash Communication Server r.1.5 (III)

Introducción a la Videoconferencia. Una de las características más destacables de Flash Communication Server es su capacidad para retransmitir audio y vídeo entre clientes Flash. Hasta el momento de su aparición, la única forma de introducir sistemas de videoconferencia en páginas Web o sistemas de streaming de audio y vídeo requería la utilización de applets de Java o software como Real Media, Windows Media, etc. Los inconvenientes de estas soluciones son el peso añadido (dependiendo de la complejidad del applet), las incompatibilidades entre intérpretes, el hecho que los clientes tengan el software adecuado instalado o no, la no integración en la totalidad de la interfaz, etc. Flash Communication Server, no sólo evita los problemas de incompatibilidades y las demás problemáticas, sino que además nos facilita, como veremos en este artículo, el proceso de implementación de este tipo de sistemas. Con la inclusión en el Flash Player de los objetos Video y Microphone podemos recoger la señal de vídeo que genera una webcam y la señal de audio generada por un micrófono del usuario para posteriormente transmitirlo a otro cliente o grupo de clientes o almacenarlo en el servidor para su posterior retransmisión. En este artículo ampliaremos el ejemplo del anterior, habilitando capacidades para videoconferencias en canales privados. Cómo funciona la videoconferencia. Ante todo debemos conocer como funciona el sistema de videoconferencia de Flash Communication Server. En esencia un sistema de videoconferencia es un socket cuyos datos son imagen y sonido, y donde cada mensaje que llega al servidor a través de un canal, se reenvía a todos los clientes suscritos a ese mismo canal, dando lugar a un broadcast de audio y vídeo. Si recordamos el anterior artículo, al usar shared objects en el servidor, cada cambio que se realizaba era notificado a todos los clientes que estaban conectados. En el caso de los shared objects, al no ser un flujo de datos continuo, la conexión es en ambas direcciones, bidireccional. La mecánica de la videoconferencia funciona de forma similar, cada usuario publica en el servidor su flujo de datos (vídeo, audio o ambos), y éste queda disponible para todos los demás clientes que están conectados al servidor, de manera que si otro cliente se conecta al flujo, recibe de forma continua la señal de audio y vídeo que emite el otro usuario. La principal diferencia con los SO es que en el caso de audio y vídeo la señal es unidireccional, un usuario publica o se suscribe a unos datos de un canal. En el caso de una videoconferencia cada usuario tiene que mandar audio y vídeo a la vez que recibe audio y vídeo. Esto es, se necesitan 4 canales (netStream), 2 para publicar y 2 para recibir. Tal y como se comentó en el artículo anterior, el objeto NetConnection nos permite establecer una conexión persistente con el servidor. A través de esta conexión viajarán todos los datos que queramos hacer llegar al otro extremo: audio, vídeo, SharedObjects, cadenas de texto, mensajes, etc. y es la piedra angular de las comunicaciones que realicemos en Flash. Esta conexión la podemos dividir en partes más pequeñas, donde cada una de ellas recibe el nombre de canal. Cada canal contendrá distintos tipos de información: audio, vídeo, etc. Podemos imaginarlo como un cable que encapsula a varios hilos más pequeños. Hablando ya en términos de programación, el objeto que nos permite declarar un nuevo canal es el objeto NetStream. Introducción al objeto NetStream El objeto NetStream nos permite abrir conexiones unidireccionales para intercambiar datos entre un cliente Flash y un Flash Communication Server a través de una conexión establecida previamente con NetConnection. Un objeto NetStream es un canal dentro de NetConnection. Este canal puede publicar audio y/o vídeo usando NetStream.publish, o bien puede recibir streams publicados usando NetStream.play. Podemos conectar tantos canales como la conexión del servidor y nuestro ancho de banda permitan. Cabe destacar que no sólo podemos publicar o suscribirnos a streams en tiempo real, sino que podemos recibir en forma de streaming archivos prealmacenados en el servidor o hacer que los flujos que estemos publicando queden almacenados para su posterior utilización. Veamos una sencilla implementación de todo esto: Código Cliente conexion_nc = new NetConnection(); conexion_nc.connect(“rtmp:/chat”); videoIN_ns = new NetStream (conexion_nc); Con estas tres líneas hemos creado un nuevo canal en nuestra conexión. Como podemos ver, hemos declarado un objeto NetStream indicándole qué conexión debe utilizar. Si tuviéramos varias conexiones a varios servidores Flash Communication, para publicar un vídeo en todos los servidores, deberíamos de crear un objeto NetConnection para cada uno de ellos. El objeto NetStream no es sólo usado para enviar audio y vídeo, sino que también nos permite publicar datos. En la aplicación de Chat que implementamos como ejemplo, usamos el objeto SharedObject y su método send para enviar los mensajes de los usuarios. Este buscaba la función que le indicábamos en todos lo clientes que estuvieran conectados al SharedObject y le pasaba los parámetros. NetStream también dispone de este método, su funcionamiento es muy parecido al de sharedobject. La única diferencia es que es unidireccional, al igual que el flujo. Fijémonos que hemos utilizado la misma URL que en el artículo anterior: rtmp:/chat Es por ello que nuestra conexión será rechazada, ya que no hemos pasado como parámetros ningún nombre de usuario. Este objeto NetStream ahora está dispuesto para poder enviar o recibir un flujo de datos. En caso que queramos enviar audio o vídeo, antes deberemos crear un objeto Camera y/o un objeto Microphone. Estos objetos se encargan de gestionar los dispositivos conectados a nuestro ordenador, permitiéndonos capturar sus datos. El objeto Camera El objeto Camera, controla el driver interno de captura de video del reproductor de Flash. El driver accede

TE PUEDE INTERESAR...

Contenido Patrocinado

Forma parte de nuestra comunidad

 

¿Te interesan nuestras conferencias?

 

 
Cobertura de nuestros encuentros
 
 
 
 
Lee aquí nuestra revista de canal

DealerWorld Digital