Transmitiendo video con Silverlight: preguntas y respuestas

El tema de transmisión de video en vivo por Internet es fascinante y es uno de los aspectos más interesantes de Silverlight y Windows Media Services . En algún momento ya escribí sobre cómo hacer publicación de video en vivo desde Expression Encoder y hacia una aplicación Web Silverlight. Hace poco Paul dejó un comentario en uno de esos posts y me gustaría aclarar algunos puntos que me han preguntado también otras personas desde entonces:

P: ¿Para un video de 1GB desde el servidor hasta la PC donde quiero recibir el video cuanto demoraria en recibirlo?

R: Depende de varios factores: el ancho de banda en el servidor, el ancho de banda en el cliente, la latencia (o distancia relativa) entre el servidor y el cliente como nodos de red, y número de bits por segundo empujados, etc. En circunstancias normales (o al menos las que yo he probado) deberá hacer un retraso entre 10 a 25 segundos. Si te apoyas en una CDN (Content Delivery Network) como Akamai se puede reducir enormemente el tiempo de latencia.

P: ¿Cuánto ancho de banda necesito?

R: Por el lado del servidor necesitas multiplicar el número de kbps del video stream por el número de usuarios que esperas tener conectados de manera simultánea. Por ejemplo, si estás produciendo una salida a 254 kbps (kilobits por segundo) y esperas 300 usuarios conectados de manera simultánea, entonces tu servidor necesita una salida de 73,500 Kbps,  entonces necesitas una salida mínima de 71 Mbps.

En el cliente, Silverlight negocia y hace buffering del video para que la experiencia del usuario se la mejor sin tiempos de espera, y puede funcionar bien desde una conexión ADSL de 128 kpbs.

P: ¿Primero parte el video en pequeños pedazos y luego lo manda o el video se parte y se manda, luego se vuelve a partir y se manda y asi hasta enviar todo el video?

R: Mmm… algo así. Windows Media Services va enviando paquetes de información de video y audio codificados y serializados que son a su vez enviados al cliente de la página Web, donde son leídos, ensamblados y codificados de nuevo para reproducirse en el navegador. Este proceso se repite hasta que termina el video o el usuario cierra la página donde está la aplicación. Los datos que están siendo reproducidos se quedan en un espacio de memoria caché (en disco duro) y son destruidos cuando ya fueron vistos para liberar espacio para nuevos datos.

Cualquier duda adicional, no les dé pena, déjenla en los comentarios y con gusto la responderé.

Seguimos en línea.