martes, 15 de febrero de 2011

El desafío de procesar videos más velozmente

Pocas cosas son tan frustrantes como tener que esperar un tiempo que parece años para que termine de cargarse el video que uno filmó, para poder publicarlo y compartirlo con amigos. Y la velocidad nos importa mucho en YouTube, ya sea que se trate de la velocidad con la que el video se reproduce o la velocidad con que el video se carga. ¿Y por qué nos importa tanto la velocidad? Porque sabemos que puede marcar la diferencia entre una buena experiencia de usuario y un usuario que abandona YouTube para buscar un sitio mejor y más rápido.

Ahora, mientras tenemos por delante casi todo 2011, nos gustaría hacer una revisión de nuestro progreso en las mejoras relacionadas con la velocidad de procesamiento y publicación de los videos. Cuando decimos procesar y publicar nos referimos a lo que sucede detrás de escena desde el momento en que el usuario presiona el botón de cargar hasta cuando el video aparece en el sitio y puede ser visto por otros.

Este es el desafío: por minuto, se suben a YouTube 35 horas de video. Con el paso del tiempo, el tamaño promedio y la longitud de los archivos va aumentando y, a medida que los usuarios usan cada vez más cámaras de HD, la resolución promedio de los videos también es más alta. Más aún, el crecimiento en la resolución de los videos resulta en un aumento cuadrático en el número de pixels que hay que procesar: un video 1080p en HD tiene 2 millones de pixels comparado con 300 mil pixels en un video 480p (calidad de DVD).

En los últimos años, el equipo de infraestructura de YouTube ha tomado medidas para enfrentar este desafío de diferentes maneras. Destacamos dos de esas técnicas:
  • La primera es superponer la carga y el procesamiento del video sin esperar a que termine de cargar. Esto hace que una versión del video, en calidad básica, pueda estar online de forma rápida, con el link activo y listo para compartir.
  • La segunda técnica, a la que internamente denominamos con el nombre código Hydra (el monstruom itológico griego con nueve cabezas) enfrenta este problema utilizando las masivas capacidades de computación cloud que tiene Google. Dividimos al video en pedazos más pequeños y procesamos cada parte simultáneamente en distintas máquinas. Después, Hydra reacomoda todas las partes procesadas para que se pueda ver un video completo, el que es procesado y publicado en una fracción del tiempo mucho menor al que antes tomaba.
Como pueden ver en el gráfico de arriba, estamos experimentando avances en nuestra batalla por hacer que los videos puedan procesarse y estar en vivo mucho más rápido. Aquí hay estadísticas adicionales:
  • Ahora procesamos videos siete veces más rápido que lo que lo hacíamos en 2008.
  • En los últimos seis meses, hemos aumentado nuestra velocidad seis veces
  • 60% de todos los videos de YouTube se cargan en menos de un minuto, mientras que el año pasado ningún video se cargaba en ese lapso.
Somos conscientes de que todavía nos queda mucho por hacer en lo relacionado a mejoras en el tiempo de procesamiento y fiabilidad, y sabemos que ni siquiera estamos cerca de haber solucionado el problema por completo. Hemos avanzado mucho en estos años y nuestra velocidad está aumentando. Cuando demos otro gran paso, publicaremos otro post para informarlo.

Krishna Gadepalli, ingeniero de software, recientemente miró “Satarii IndieGoGo Campaign” y Wendy Tobagus, ingeniero de software, recientemente miró “Parkour and FreeRunning