Seguimos tratando de hacer funcionar el vídeo en un número amplio de navegadores. En la entrada de hoy, ya tengo dos versiones del vídeo: vídeo theora + audio Vorbis y por otro lado, vídeo VP8 + audios Vorbis. La conversión a VP8 la he hecho con XMedia Recode1.
El soporte para el contenedor WebM con vídeo VP8 y audio Vorbis debería ser el siguiente, según el libro “HTML5 Up and Running”:
| IE | Firefox | Safari | Chrome | Opera | iPhone | Android |
|---|---|---|---|---|---|---|
| 9.0+ (usando plugin) | 4.0+ | . | 6.0+ | 11.0+ | . | posiblemente… |
Por otro lado, me he dado cuenta de que había cometido un error con el código HTML. En la anterior versión, como atributos de la etiqueta <source/> yo tenía type y por otro lado codecs. Funcionaba, pero codecs no es ningún atributo de acuerdo con HTML52. En realidad source se construye de la siguiente manera3:
<source src=’/v/solo Lauri Porra.ogv’ type=’video/ogg; codecs=”theora, vorbis”‘></source>
Donde vemos que toda la especificación, incluyendo codecs, forma parte del valor de type. La explicación es que lo que va en type es un tipo MIME y que éstos pueden a su vez tener parámetros, que sería el codec esperado.
La versión WebM (Google/On2′s VP8 Video VP80 + Vorbis audio):
La versión OGG (Theora video + Vorbis audio):
Para la versión Theora + Vorbis visita la primera entrada.
Versión con las dos codificaciones
Intentará cargar el que pueda reproducir.
El código que permite tener las dos versiones, por si falla la primera que el navegador intente reproducir la segunda:
<video width=”576″ height=”352″ controls=”controls” preload=”auto”>
<source src=’/v/solo Lauri Porra.webm’ type=’video/webm; codecs=”vp8, vorbis”‘ media=”all”> </source>
<source src=’/v/solo Lauri Porra.ogv’ type=’video/ogg; codecs=”theora, vorbis”‘ media=”all”></source>
</video>
El tercer parámetro de source, media hace referencia a si el medio que se intenta reproducir es adecuado para el agente de usuario (navegador normalmente). Por defecto su valor es all indicando que es válido para cualquier agente de usuario.
Resultados de funcionamiento en navegadores / S.O. de la segunda tentativa
- Mozilla Firefox 3.6 / GNU/Linux, Windows XP y Windows 7: No funciona, pero tampoco estaba previsto, sólo a partir de la versión 4.0. Si alguien lo prueba que comente por favor.
- Mozilla Firefox 4.0 en GNU/Linux Ubuntu 9.10 virtualizado VirtualBox: No funciona, pero SÍ estaba previsto, o me falta algo por hacer o Firefox tiene un gran problema con esto. Si alguien lo prueba que comente por favor.
- Opera 11.11 Windows 7: funciona el vídeo pero no hay sonido -reproduciéndolo en mi ordenador sí hay sonido- lo que ha permitido descubrir lo que yo creo que es un fallo. Si para una versión no puede reproducir el sonido, debería intentar la siguiente, en este caso la versión Theora+Vorbis. Con lo cual lo más seguro para Opera es poner primero la
sourcede Theora+Vorbis en contenedor OGG - Opera 11.01 en Windows XP: han funcionado bien y con sonido ambas codificaciones.
- Chrome en Windows XP: han funcionado ambas codificaciones y con sonido, pero las dimensiones del vídeo están alteradas. Sale “estrechado”, necesita más investigación.
- Chrome en GNU/Linux Ubuntu 9.10 virtualizado con VirtualBox: Mismo problema que en Chrome sobre Windows XP.
Es conveniente hacer la codificación en contenedor WebM con vídeo VP8 y audio Vorbis por ser un estándar abierto y de futuro y se supone que funcionará en muchas plataformas. Hacer también una codificación en contenedor OGG con vídeo Theora y audio Vorbis por ser también estandar abierto y estar soportado por versiones un poco más antiguas -o actuales a fecha de hoy- de los navegadores. De hecho con estas dos alternativas deberíamos tener todo cubierto a excepción de Safari e iPhone, que no creo que se bajen de su carro de H.264 y AAC.
Referencias:

