Si te dicen que tienes que poner un video en una web, la respuesta está clara: Lo subes a Youtube o Vimeo y lo embedes. Pero ¿qué pasa si resulta que el cliente no quiere subir el video a ningún servidor de streaming? Pues toca pasar el video a un formato que no ocupe mucho, y embederlo con un reproductor.
Antes esta tarea era también sencilla, bastaba con convertir el video a .flv y poner un reproductor Flash. Pero ahora ya no es tan fácil, dado que el video ha de verse en dispositivos que no reproducen Flash, como los móviles (sobre todo los de Apple), y además el Flash ya no está tan bien visto como antes.
Por lo tanto, lo primero es buscar un reproductor hecho en HTML5 que descanse sobre el tag “video”, y que cuente con un reproductor en Flash “sustituto” para los casos de navegadores que no admitan HTML5.
Después de hacer varios tests, que consistían simplemente en que el reproductor cumpliese lo que prometía (reproducción según se carga el fichero, eventos, reproducir correctamente los distintos formatos, que no den el típico error de no reconocer el “tipo mime”, etc…), me he quedado con el VideoJS.
Y ahora el formato; todos los reproductores HTML5 recomiendan subir el vídeo en tres formatos, para paliar las incompatibilidades con los diversos navegadores:
- MP4+h264: El mejor en tamaño / calidad, se ve perfectamente en navegadores móviles, Safari, Firefox, pero a Chrome no le gusta por usar el codec h264, tampoco se reproduce en Internet Explorer menor de 10.
- WebM: Se reproduce bien en casi todos, aunque la relación tamaño / calidad es menor. Es útil para navegadores modernos donde no funciona el anterior.
- Ogg: Similar en relación tamaño / calidad al anterior, es necesario para compatibilidad con navegadores antígüos como Firefox 3.
Para convertir el fichero original en estos tres formatos, hay multitud de programas, incluso online. Eso si, para crear el MP4 hay que tener en cuenta una cosa importante: Ha de ser creado de manera que el reproductor lo vaya reproduciendo según lo va cargando, o sea, que no lo empiece a reproducir una vez lo haya cargado por completo, porque obligaría a esperar un tiempo, dependiendo de lo grande que sea, para poder empezar a verlo. Si una vez creado el MP4, sucede esto último, hay que hacer al MP4 una modificación que se menciona en este post de StackOverflow. Utilizando el comando:
MP4Box -add my_video.mp4 my_newVideo.mp4
se consigue el efecto deseado. El fichero MP4Box se puede encontrar compilado para todos los sistemas operativos.
Para terminar, un truco con el VideoJS: en Chrome parece no terminar de cargar nunca, hasta que le pones el parámetro preload="auto".