¿Por qué elegiría Libav sobre FFmpeg, o hay alguna diferencia?

72

Por lo que he visto, me parece que avconvse cree que Libav es el sucesor de ffmpeg¿es correcto?

Si eso es cierto, ¿por qué es así? ¿Qué está haciendo mejor libav y por qué querría elegirlo en lugar de ffmpeg?

Llegué a este "problema" mientras instalaba Ubuntu 12.04.1 LTS en una máquina virtual y cuando instalé ffmpeg apareció un mensaje que decía que mit ffmpeg está en desuso y pensé "wtf?".

Si uso avconv¿Podré migrar mis scripts dependiendo de ffmpeg, más o menos fácil de libav? Principalmente lo uso para escribir metadatos y realizar conversiones de audio (wav, flac, vorbis, mp3, aac).

burzum
fuente
1
ffmpeg ciertamente no es obsoleto, es prácticamente el mejor en la raza por lo que hace.
James Campbell

Respuestas:

94

Antes que nada vea Quién puede decirme la diferencia y la relación entre ffmpeg, libav y avconv . Gran parte de la confusión es el resultado de:

  1. Usuarios que no diferencian entre los proyectos, FFmpeg y libav, y sus respectivas herramientas de línea de comandos, ffmpegy avconv.
  2. Los mensajes mal redactados por los usuarios cuando intentan usar libav ffmpeg.

FFmpeg vs ffmpegy libav vsavconv

  • FFmpeg es el nombre del proyecto. ffmpeges el nombre de su herramienta de línea de comando.
  • libav es el nombre del proyecto. avconves el nombre de su herramienta de línea de comando. Por un corto tiempo, libav también tuvo un ffmpeg.

Los usuarios a menudo piensan "proyecto" cuando se está discutiendo "herramienta", lo que lleva a ...

Un mensaje mal redactado

Entonces, como aprendimos del enlace Quién puede decirme ... , cuando libav se bifurcó de FFmpeg, también proporcionaron temporalmente su versión de ffmpeg. Como miembro de libav, el mantenedor de ffmpeg en Debian y Ubuntu decidió cambiar la distribución para usar libav. Desde la perspectiva de libav, este fue su mejor movimiento: forzar a una gran comunidad de usuarios a usar la bifurcación.

Ubuntu cambió durante el período de transición cuando libav proporcionó tanto su versión ffmpegcomo su herramienta renombrada avconv. Cuando los usuarios intentaron usar libav, ffmpegrecibieron el siguiente mensaje:

This program is not developed anymore and is only provided for compatibility.  
Use avconv instead (see Changelog for the list of incompatible changes).

En este caso, el "ffmpeg" mencionado en el mensaje era la versión temporal de libav, que luego se eliminó (al igual que el mensaje). ¿Recuerdas la diferencia entre FFmpeg y ffmpeg? Por supuesto, este mensaje confundió completamente a muchos usuarios que comprensiblemente no hicieron la distinción entre proyecto y herramienta; especialmente usuarios de Ubuntu que no sabían que su distribución hizo un cambio o usuarios que nunca escucharon de libav. No sé si libav pretendía que los usuarios pensaran esto, pero probablemente disfrutaron de este efecto secundario.

Algunos usuarios de Ubuntu pensaron que el mensaje era demasiado engañoso y luego se cambió a:

***THIS PROGRAM IS DEPRECATED***
This program is not developed anymore and is only provided for compatibility.  
Use avconv instead (see Changelog for the list of incompatible changes).

Una pequeña mejora en mi opinión, pero siento que no está lo suficientemente claro.

¿Cuál uso?

Nadie puede decirte cuál usar. La principal diferencia para los usuarios es que FFmpeg combina muchas confirmaciones de libav, pero no es tan recíproco, ya que libav parece pretender que FFmpeg no existe y solo ocasionalmente elige a FFmpeg.

Para el usuario casual, no debería haber grandes diferencias. Para los usuarios de Ubuntu que desean usar FFmpeg, puede compilarlo siguiendo Cómo compilar FFmpeg y x264 , usar el PPA FFmpeg de Jon Severinsson u obtener un binario estático simple vinculado desde la página de descarga de FFmpeg .

Para obtener más información, consulte La situación de FFmpeg / Libav .

lema
fuente
27
Está más allá de un mensaje mal redactado, está completamente equivocado. FFmpeg no ha detenido el desarrollo en absoluto, de hecho, FFmpeg tiene una comunidad mucho más grande que LibAV ... los mantenedores de Ubuntu hicieron ese mensaje para engañar a los usuarios para que usaran LibAV por la creencia errónea de que FFmpeg estaba muerto. Es 100% pura malicia.
MarcusJ
1
avconv ni siquiera es compatible con LADSPA
Vassilis
55
@MarcusJ ... técnicamente fueron los mantenedores de Debian. Pero sí, estoy de acuerdo; Es engañoso.
Wyatt8740
Votado en contra de la frase "Un mensaje mal redactado" donde no estaba. Fue un delito deliberado.
Anwar
1
@Anwar Sí, parecía de esa manera. Es por eso que dije que estaba "mal redactado", pero supongo que estaba mal redactado.
Llogan
32

Actualización (principios de 2016)

  • Las probabilidades se mantienen a favor de ffmpeg. La mayoría de las distribuciones han cambiado / están volviendo a ffmpeg ( Gentoo , Debian )
  • Una ventaja práctica de ffmpeg es la amplia disponibilidad de binarios para muchas plataformas. Buscar en Google para bibliotecas estáticas / bibliotecas dinámicas / binarios produce buenos resultados para Linux, Mac, Windows, iOS y Android para ffmpeg, mientras que solo pude encontrar compilaciones de Linux y Windows para libav. Este podría ser un punto importante si tiene poca experiencia con C / makefiles.

La situación actual (mediados de 2015)

Parece ser mejor seguir con FFmpeg. Toda la situación es bastante desordenada y fea. Empecé a leer sobre el tenedor hace unos días. Ignorando todo el drama, aquí están lo que parecen ser hechos:

  • FFmpeg incorpora conjuntos de cambios de libav, mientras que libav es reacio a hacerlo (ver debate debian )
  • Chrome usa ffmpeg, y Google ha hecho un gran esfuerzo para hacerlo seguro. libav también está incorporando esos cambios, pero a un ritmo más lento ( publicación de blog de Google )
  • FFmpeg intenta mantener tantos códecs como sea posible, mientras que libav eliminó algunos ( lista de correo de libav , publicación de un desarrollador de libav )
  • La comunidad FFmpeg es más grande que libav, y el desarrollador más dedicado (michael niedermayer) se quedó con FFmpeg ( estadísticas de compromiso )
  • Los mantenedores de ubuntu / debian para FFmpeg eran parte de la bifurcación de libav. agregaron mensajes de desaprobación a algunas herramientas de línea de comandos, insinuando que ffmpeg está en desuso. Esto causó mucha confusión. tanto debian y ubuntu están cambiando de nuevo a ffmpeg.
kritzikratzi
fuente
Me pasó a Google Michael Niedermayer y terminé con esta publicación , en la que renuncia.
bzeaman
1
@bzeaman sí, recuerdo haber encontrado esto. pero todavía parece promediar 2 fusiones / compromisos por día: git.videolan.org/…
kritzikratzi
hmm no candidato de instalación en deb. ¿Qué lo reemplazó ahora?
Stígandr
nvm mind got it libav-tools
Stígandr
1
Niedermayer fue la razón del tenedor. Dicho eso, cambió mucho.
Ismael Luceno
9

Cuando vaya aquí , verá que la actualización más reciente es septiembre de 2012 (hace unos meses).

Parece que esto dice que es solo específico de Ubuntu y Debian en este momento.

Hace algún tiempo, ffmpeg se dividió en dos tenedores bajo el nombre de ffmpeg y libav.

Debian está siguiendo la bifurcación de libav en su distribución y en una próxima carga el binario / usr / bin / ffmpeg será reemplazado por / usr / bin / avconv.

Hasta donde sé, no es necesario cambiar de inmediato, pero Winff debe actualizarse para permitir cualquiera de los dos binarios (desde la perspectiva de Debian, con preferencia por avconv). Sé que puede establecer la ubicación del binario en las preferencias, pero creo que con la ubicación establecida, Winff debería poder encontrar el binario adecuado.

Creo que en el futuro también este problema podría afectar a Windows y otras distribuciones.

Para responder a su pregunta sobre si es exactamente lo mismo:

He implementado las comprobaciones para el binario correcto en mi comprobación local, pero leyendo 1 , veo que hay algunas inconsistencias entre avconv y ffmpeg. Ese problema es mayor, porque el archivo preestablecido necesitará un ajuste y especialmente la forma en que creamos la línea de comando tendrá que cambiar. Las opciones que operan en el archivo de entrada deben ir ANTES del archivo de entrada "-i".

Tenga en cuenta que esto puede ser específico de la versión de Windows. Esto fue publicado con respecto a la versión de Linux:

La herramienta de conversión de audio / video FFmpeg ahora se conoce como AVConv (un mejor nombre en mi opinión). Por lo tanto, la herramienta de línea de comandos "ffmpeg" está obsoleta y se debe usar "avconv". Hasta donde me di cuenta, todos los parámetros permanecieron iguales, pero se deben realizar más investigaciones. Algunas modificaciones deben hacerse en CIS.

Tareas:

Instale AVConv en las máquinas que ejecutan CIS. Por lo general, avconv debería aparecer actualizando ffmpeg (que funcionó en Ubuntu; no probado para Debian). Reemplace "ffmpeg" con "avconv" en cis / api / ffmpeg.py, clase FFmpegTranscoder, campo prog_bin, que representa el ejecutable de la herramienta de conversión. Refactorice nombres de archivos, nombres de clases, nombres de métodos, nombres de variables, etc. que contengan "FFmpeg" o "ffmpeg" de modo que contengan AVConv. Un IDE como Eclipse podría hacer esto automáticamente. ¡Prueba! Si se notan problemas, ¡depure!

Everett
fuente
99
Estoy totalmente en desacuerdo con la publicación que dice "ffmpeg está obsoleto y se debe usar avconv".
slhck
@slhck Esa parece ser una práctica estándar cuando se bifurca un proyecto. Cuantos más usuarios pueda engañar para pensar que la rama principal está obsoleta, mejor será su bifurcación.
user253751