¿Cuáles son las diferencias y similitudes entre ffmpeg, libav y avconv?

Cuando ejecuto ffmpeg en Ubuntu, muestra:

 $ ffmpeg ffmpeg version v0.8, Copyright (c) 2000-2011 the Libav developers built on Feb 28 2012 13:27:36 with gcc 4.6.1 This program is not developed anymore and is only provided for compatibility. Use avconv instead (see Changelog for the list of incompatible changes). 

O se muestra (dependiendo de la versión de Ubuntu):

 $ ffmpeg ffmpeg version 0.8.5-6:0.8.5-0ubuntu0.12.10.1, Copyright (c) 2000-2012 the Libav developers built on Jan 24 2013 14:49:20 with gcc 4.7.2 *** THIS PROGRAM IS DEPRECATED *** This program is only provided for compatibility and will be removed in a future release. Please use avconv instead. 

Encontré avconv en http://libav.org . Solo estoy perplejo por ellos.

Mensajes confusos

Estos mensajes son bastante engañosos y, comprensiblemente, una fuente de confusión. Las versiones anteriores de Ubuntu usaban Libav, que es una bifurcación del proyecto FFmpeg. FFmpeg volvió en Ubuntu 15.04 “Vivid Vervet”.

El tenedor fue básicamente un resultado no amistoso de personalidades conflictivas y estilos de desarrollo dentro de la comunidad FFmpeg. Vale la pena señalar que el mantenedor de Debian / Ubuntu cambió de FFmpeg a Libav por propia iniciativa debido a estar involucrado con el tenedor Libav.

El verdadero ffmpeg vs el falso

Durante un tiempo, tanto Libav como FFmpeg desarrollaron por separado su propia versión de ffmpeg .

Libav luego renombró su ffmpeg bizarro a avconv para distanciarse del proyecto FFmpeg. Durante el período de transición, se mostró el mensaje “no desarrollado más” para indicar a los usuarios que comenzaran a usar avconv lugar de su versión falsificada de ffmpeg . Esto confundió a los usuarios al pensar que FFmpeg (el proyecto) está muerto, lo que no es cierto. Una mala elección de palabras, pero no puedo imaginar que Libav no espere esa respuesta por parte de los usuarios generales.

Este mensaje fue eliminado aguas arriba cuando el falso ” ffmpeg ” finalmente fue eliminado de la fuente Libav, pero, dependiendo de su versión, aún puede aparecer en Ubuntu porque la fuente Libav que usa Ubuntu es del período de transición ffmpeg-a-avconv.

En junio de 2012, el mensaje fue reformulado para el paquete libav - 4:0.8.3-0ubuntu0.12.04.1 . Lamentablemente, el nuevo mensaje “en desuso” ha causado confusión adicional al usuario.

Comenzando con Ubuntu 15.04 “Vivid Vervet”, el ffmpeg de FFmpeg vuelve a estar en los repositorys .

libav vs Libav

Para complicar aún más las cosas, Libav eligió un nombre que FFmpeg utilizó históricamente para referirse a sus bibliotecas (libavcodec, libavformat, etc.). Por ejemplo, la lista de correo del usuario libav , para preguntas y discusiones sobre el uso de las librerías FFmpeg, no está relacionada con el proyecto Libav.

Como decir la diferencia

Si está utilizando avconv entonces está usando Libav. Si está utilizando ffmpeg , podría estar utilizando FFmpeg o Libav. Consulte la primera línea en la salida de la consola para ver la diferencia: el aviso de copyright mencionará FFmpeg o Libav.

En segundo lugar, los esquemas de numeración de versiones son diferentes. Cada una de las bibliotecas FFmpeg o Libav contiene un encabezado version.h que muestra un número de versión. FFmpeg terminará en tres dígitos, como 57.67. 100 , y Libav terminará en un dígito tal como 57.67. 0 . También puede ver los números de versión de la biblioteca ejecutando ffmpeg o avconv y viendo la salida de la consola.

Si quieres usar el ffmpeg real

Ubuntu 15.04 “Vivid Vervet” o más nuevo

El ffmpeg real está en el repository, por lo que puedes instalarlo con:

 apt-get install ffmpeg 

Para versiones anteriores de Ubuntu

Tus opciones son:

  • Descargue una versión reciente de Linux de ffmpeg ,
  • siga una guía paso a paso para comstackr ffmpeg ,
  • o use el PPA de Doug McMahon (para Ubuntu 14.04 LTS “Trusty Tahr”)

Estos métodos son no intrusivos, reversibles y no interferirán con el sistema ni con ningún paquete de repository.

Otra opción posible es actualizar a Ubuntu 15.04 “Vivid Vervet” o más nuevo y simplemente usar ffmpeg desde el repository.

Ver también

Para un artículo de blog interesante sobre la situación, así como una discusión sobre las principales diferencias técnicas entre los proyectos, vea La situación de FFmpeg / Libav .