Divxhouse.com Web sobre videoedición

3May/10Off

Theora hasta en la sopa

Últimamente se están prodigando las noticias de Theora en las publicaciones tecnológicas de medio mundo. A veces no se sabe si es una "trolleada" a escala mundial o si es que la sociedad esta haciendo uso de su voto (por decirlo de alguna manera) para proteger la libertad en Internet.

Lo de trolleada lo digo expresamente porque cada semana hay una noticia en algún blog, donde hablan maravillas de Theora y sus beneficios para todos al ser este de libre distribución y sin patentes. Realmente me fascina cuando hablan de las cualidades técnicas de este en comparación con H264. Este es el ejemplo más utilizado (atención a su alojamiento):

http://people.xiph.org/~greg/video/ytcompare/comparison.html

En la comparación se puede ver como el vídeo de Theora tiene mayor calidad que el de Youtube en H264 (x264). Pues nada, con esto queda demostrado que es igual o mejor que H264.

Pues nada más lejos de la realidad, ya que no es posible hacer una comparación real, si  el entorno esta contaminado. Youtube crea unas versiones especificas para dispositivos móviles, donde es necesario reducir opciones avanzadas para que sean compatibles con estos medios. Ahora, si hacemos la misma comparación con vídeos en 720p o 1080p, entonces cambia completamente la visión real de la comparación.

Hace un rato hice una breve comparación, para ver si las mejoras de Theora habían mejorado desde mi comparativa del año pasado (http://www.divxhouse.com/articulos-guias/theora-vs-x264/). No saque ninguna nueva conclusión, ya que Theora sigue ofreciendo deficiencias evidentes de un codec de hace 5 años, donde hubiera rivalizado con XviD sin problemas.

COMPARATIVA BREVE

El vídeo que he utilizado para las pruebas es de la película Star Trek a 1080p. Lo reduje a 720x304 lossless de x264..

  • THEORA 1.1: ffmpeg2theora-0.26.exe --optimize --two-pass --speedlevel 0 -V 700 -K 250 "video.mkv" -o "theora.700.ogg"
  • x264-1570: x264-r1570.exe "video.y4m" --preset slow --pass 1/pass 2 --bitrate 700 -o x264-700.mkv

Esta es la gráfica de SSIM entre el original comparado con el vídeo creado con Theora y el vídeo creado con x264.

En la gráfica de SSIM se puede apreciar la diferencia entre los codecs, pero donde realmente se nota es en las diferencias visuales:

En múltiples ocasiones se puede apreciar como con Theora aparecen macrobloques molestos y deformando los detalles, puliendo prácticamente todo el vídeo. En las zonas oscuras o en transiciones (fade-out/fade-in) también introduce aberraciones.

Dentro de poco haré una comparativa decente incluyendo a Dirac, pero este se resiste ya que sus últimas builds presentan ciertos bugs nada amigables para hacer pruebas, y la verdad es que merece su hueco en cualquier comparación. También añadiré algún comentario más técnico sobre este tema, que hay muchos artículos interesantes de donde sacar buena información.

Comentarios (8) Trackbacks (0)
  1. Lo de que H264 es mejor que Theora creo que todos tenemos asumido que es así y no es la cuestión clave del asunto. El meollo está en utilizar algo libre de patentes como estándar de vídeo por internet. Que Theora ahora sea inferior es algo irrelevante si me apuras, ya habrá tiempo de mejorarlo.

    El otro día no se dónde leí que incluso las licencias de H264 impedían hacer un uso comercial a un particular del material que grabase con su propia cámara; si esto es así (no puedo confirmarlo) me parece que además de indignante, me parece una canallada y algo simplemente inadmisible. Justo todo lo contrario al espíritu de la web.

    Pienso que igual que si no hace falta ningún plugin ni nada raro para ver una simple foto incrustada en una página web, tampoco debería hacer falta nada para mostrar un vídeo. Insisto, si ahora Theora es peor (y tu nos has demostrado que es así, te felicito), da igual, volquémonos en adaptarlo masivamente y con el tiempo seguro que mejorará en todos los aspectos.

    Es mi opinión. ¡Saludos!

    • En parte estoy de acuerdo contigo. Permitir que solo un codec (libre o no libre), sea el que mande en la web es un grave error. Uno de ellos ha de ser H264, de pago, privativo o lo que sea, pero sería necesario otro codec que tuviera posibilidades similares a h264 (no es necesario que sea igual). Theora por desgracia no entra dentro de este grupo, ya que su “materia prima” esta obsoleta y no hay posibilidad de mejorar mucho más sin dañar la especificación 1.0

      Lo interesante sería la inclusión de Dirac, al que ahora pocos conocen. Esta en pañales y su calidad es algo mediocre, estilo XviD pero consumiendo mucho para codificar-decodificar. La ventaja que tiene es que es libre y tiene mucho recorrido gracias a sus especificaciones (complejas) y que en varios años (2 o 3 o 4) puede resultar un excelente codec para la web y no web.

      Debemos recordar que hay que mirar al futuro y apostar por el futuro, y en esas lineas yo creo que Theora no entra. Su calidad es mediocre y cada vez que veo algo codificado con Theora, me recuerda a la epoca en la que se comprimía en VCD.

  2. Está claro que Theora es actualmente un codec desfasado, su única virtud sobre H.264 es su mayor eficiencia en la reproducción, pudiendo reproducir con fluidez vídeos en alta definición en máquinas en las que H.264 se ve a tropicones.

    En cualquier caso, yo creo que si se acaba confirmando la liberación de VP8 como software libre por parte de Google, no va a tener mucho sentido seguir utilizando Theora (recordemos que Theora = VP6).

    http://www.antiscreeners.com/google-liberar%C3%A1-vp8

    • El tema es realmente complejo. Hace poco Canonical ha comprado licencia para que Ubuntu pueda utilizar sin problemas H264. Apple con sus distintos SO y Microsoft con Windows, también permiten esto. Es decir, si usas uno de esos SO, no tendrás problemas en cuanto a utilización del codec H264.

      El problema sería el resto o lo que realmente pienso que podría ser perjudicial: La educación. Si cobrasen por H264 al emitir por internet, podría darse el caso que una ONG o una escuela, tenga que pagar por estos usos (parecido a SGAE y conciertos para obras benéficas).

      Dudo que vayan a cobrar, pero de ahí que pienso que debería ser obligatorio dos codecs en HTML5: H264 por un lado y otro…. el que sea, ¿vp8, dirac?. Me da igual la verdad, pero que no dejen uno.

  3. Creo que Theora a pesar de tener la opción de 2 pasadas (me parece que desde la versión 0.25) ofrece menos calidad de lo esperado y lo mismo pasa con 1 pasada en modo bitrate (-V). solo se empieza a ver su potencial en modo videoquality (-v) que va del 1 al 10 con lo que recomiendo que no bajes del 8 a cualquier resolución.
    Recientemente lei que las opciones de codificación por defecto de ffmpeg2theora estan orientadas a streaming lo cual hace que este capado para que los videos no tengan picos de bitrate.
    Si se quiere realmente sacar todo el potencial al codec se tiene que usar como minimo el comando -d 99999 (buffer delay) que creo que vendria a indicar al codec que que use todo el ancho de banda disponible y
    –soft-target con el cual se puede especificar el videobitrate o videoquality minimos tanto en 1 como en 2 pasadas; pero ojo que en ambos casos solo se puede usar -V (videobitrate) ya sea en 1 o 2 pasadas.
    Con lo cual deberias poner:
    THEORA 1.1: ffmpeg2theora-0.26.exe –optimize –two-pass –speedlevel 0 -V 700 –soft-target -v 8 -d 99999 -K 240 “video.mkv” -o “theora.700.ogv”
    He modificado -k 250 porque creo que los videos a 1080p suelen venir a 23,976 fotogramas por segundo por lo que abria que poner -k 240 y le cambie la extensión .ogg por .ogv que es el contenedor oficial para video codec Theora y para no confundirlo con el contenedor del audio codec vorbis

    • Hola

      He probado tu recomendación, pero parece que la opción -d (buf-delay) esta bien por defecto, ya que en la segunda pasada el buf-delay usa todos los frames necesarios para el reparto de bitrate.
      En dos pasadas no es recomendado utilizar soft-target, ya que indicar una calidad mínima va en contra de especificar un bitrate medio. En este caso al aplicar 8, el bitrate general se va a 1000 y no queda en 700.
      Los cortes de keyframe como máximo esta bien en 250, ya que en x264 por defecto lo aplica a este valor. No es necesario aplicar uno cada 10sg, lo que pasa es que se usa como referencia para evitar degradación de calidad y/o mejoras en los los saltos de tiempo. De hecho, con un buen

      El problema de Theora es su base del codec VP3. De hecho, la configuración que use para x264 puede ser mejorable, pero quise usar una normal para ver la diferencia en un sentido práctico. Lo que si es bastante evidente, son las carencias de ogg como contenedor de vídeo, ya que esta fabricado para streaming, haciendo que los saltos de tiempo en un player sean bastante mediocres. Actualmente se esta desarrollando un método similar a Matroska para evitar estos defectos.

      http://wiki.xiph.org/Ogg_Index

      Saludos

  4. Supongo que lo que he agregado es mas recomendable en 1 pasada no me fio de el modo –two-pass en unos videos me funciona y en otros es un desastre ademas esta el hecho de que te ahorras tiempo amen que en los tiempos que corren ya no hacen falta las 2 pasadas ya que incluso se recomienda usar en x264
    –crf. Las 2 pasadas son solo para saber a que atenerte con el tamaño de un archivo.

  5. El problema es que para comparar dos vídeos, es imposible saber a que valor de calidad se debe aplicar a cada encoder. Cada uno de ellos lleva configuraciones distintas y no son equivalentes.

    Las dos pasadas siguen siendo recomendables para comprimir vídeos largos y donde uno quiera aplicar determinado bitrate (tamaño de archivo) y con una calidad general. En ciertos casos podrás tener archivos gigantes y en otros pequeños. Con las dos pasadas se asegura un buen reparto de calidad a lo largo de todo el vídeo.

    Ahora, si solo te interesa la calidad general sin importar el tamaño final, si puede valer crf.


Deja un comentario


Trackbacks deshabilitados.