Pourquoi devrais-je choisir Libav plutôt que FFmpeg, ou y a-t-il même une différence?

72

D'après ce que j'ai vu, il me semble que Libav avconvest censé devenir un successeur de ffmpeg- est-ce exact?

Si c'est vrai, pourquoi est-ce le cas? Qu'est-ce que libav fait exactement mieux et pourquoi voudrais-je le choisir plutôt que ffmpeg?

Je suis arrivé à ce "problème" lors de l'installation d'Ubuntu 12.04.1 LTS dans une machine virtuelle et lorsque j'ai installé ffmpeg, un message indiquant que mit ffmpeg est obsolète est apparu et j'ai d'abord pensé à "wtf?".

Si je l'utilise avconvEst-ce que je pourrai migrer mes scripts en fonction de ffmpeg plus ou moins facile à libav? Je l'utilise principalement pour l'écriture de métadonnées et la conversion audio (wav, flac, vorbis, mp3, aac).

burzum
la source
1
ffmpeg n’est certainement pas obsolète, c’est quasiment le meilleur de sa race pour ce qu’il fait.
James Campbell

Réponses:

94

Tout d’abord, voyez Qui peut me dire la différence et la relation entre ffmpeg, libav et avconv . Une grande partie de la confusion est le résultat de:

  1. Les utilisateurs ne différencient pas les projets, FFmpeg et libav, et leurs outils de ligne de commande respectifs, ffmpeget avconv.
  2. Les messages mal formulés que les utilisateurs reçoivent lorsqu'ils essaient d'utiliser libav ffmpeg.

FFmpeg vs ffmpeget libav vsavconv

  • FFmpeg est le nom du projet. ffmpegest le nom de leur outil en ligne de commande.
  • libav est le nom du projet. avconvest le nom de leur outil en ligne de commande. Pendant une courte période, libav a également eu un ffmpeg.

Les utilisateurs pensent souvent "projet" lorsque "outil" est en cours de discussion, ce qui conduit à ...

Un message mal rédigé

Ainsi, comme nous l’avons appris grâce au lien Qui peut me dire… , lorsque Libav a lancé FFmpeg, ils ont également fourni temporairement leur version de ffmpeg. En tant que membre de libav, le responsable de ffmpeg dans Debian et Ubuntu a ensuite décidé de changer de distribution pour utiliser libav. Du point de vue de libav, c’était leur meilleur choix: forcer une grande communauté d’utilisateurs à utiliser le fork.

Ubuntu a basculé pendant la période de transition lorsque libav a fourni à la fois leur version ffmpeget leur outil renommé avconv. Lorsque les utilisateurs ont essayé d'utiliser libav, ffmpegils ont reçu le message suivant:

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

Dans ce cas, le "ffmpeg" mentionné dans le message était la version temporaire de libav qui a ensuite été supprimée (tout comme le message). Rappelez-vous la différence entre FFmpeg et ffmpeg? Bien sûr, ce message a profondément dérouté de nombreux utilisateurs qui, de manière compréhensible, ne faisaient pas la distinction entre projet et outil. en particulier les utilisateurs d’Ubuntu qui ne savaient pas que leur distribution faisait un switcharoo ou ceux qui n’ont jamais entendu parler de libav. Je ne sais pas si libav voulait que les utilisateurs pensent cela, mais ils ont probablement apprécié cet effet secondaire.

Certains utilisateurs d’Ubuntu ont trouvé le message trop trompeur. Il a ensuite été remplacé par:

***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).

Une petite amélioration à mon avis, mais j'ai l'impression que ce n'est pas assez clair.

Lequel dois-je utiliser?

Personne ne peut vous dire lequel utiliser. La principale différence pour les utilisateurs est que FFmpeg fusionne de nombreux commits de libav, mais ce n’est pas aussi réciproque puisque libav semble prétendre que FFmpeg n’existe pas et qu’il n’y a que de temps à autre des sélections à partir de FFmpeg.

Pour l'utilisateur occasionnel, il ne devrait pas y avoir d'énormes différences. Pour les utilisateurs Ubuntu souhaitant utiliser FFmpeg, vous pouvez le compiler en suivant Comment compiler FFmpeg et x264 , utilisez FPmpeg PPA de Jon Severinsson ou obtenez un simple binaire statique lié à la page de téléchargement de FFmpeg .

Pour plus d'informations, voir La situation FFmpeg / Libav .

llogan
la source
27
C'est au-delà d'un message mal rédigé, c'est complètement faux. FFmpeg n'a pas du tout arrêté son développement. En fait, FFmpeg a une communauté beaucoup plus vaste que LibAV ... les responsables de la maintenance d'Ubuntu ont incité les utilisateurs à utiliser LibAV pour se servir de LibAV, croyant à tort que FFmpeg était mort. c'est de la malice pure à 100%.
MarcusJ
1
avconv ne supporte même pas LADSPA
Vassilis
5
@MarcusJ ... techniquement, c'était les mainteneurs Debian. Mais oui, je suis d'accord. c'est trompeur.
Wyatt8740
Réduit le vote pour l'expression "Un message mal rédigé" là où ce n'était pas. C'était un acte répréhensible délibéré.
Anwar
1
@ Anwar Oui, cela semblait être le cas. C'est pourquoi j'ai dit que c'était "mal formulé", mais je suppose que c'était mal formulé.
llogan
32

Mise à jour (début 2016)

  • Les chances restent en faveur de ffmpeg. La plupart des distributions ont basculé / sont en train de revenir à ffmpeg ( Gentoo , Debian )
  • Un avantage pratique de ffmpeg est la large disponibilité des fichiers binaires pour de nombreuses plates-formes. Googler pour les bibliothèques statiques / les bibliothèques dynamiques / binaires donne de bons résultats pour linux, mac, windows, ios et android pour ffmpeg, alors que je ne pouvais trouver que les versions de Linux et de Windows pour libav. Cela pourrait être un point important si vous avez peu d’expérience avec C / makefiles.

La situation actuelle (mi-2015)

Il semble préférable de s'en tenir à FFmpeg. La situation est plutôt désordonnée et laide. Je viens de commencer à lire sur la fourche il y a quelques jours. En ignorant tout le drame, voici ce qui semble être des faits:

  • FFmpeg incorpore des ensembles de modifications de libav, alors que libav est réticent à le faire (voir débat debian )
  • Chrome utilise ffmpeg et Google a déployé des efforts considérables pour le sécuriser. libav intègre également ces changements, mais à un rythme plus lent ( article de blog Google ).
  • FFmpeg tente de conserver autant de codecs que possible, tandis que libav en a supprimé certains ( liste de diffusion libav , publication à partir d'un dev libav )
  • La communauté FFmpeg est plus grande que libav, et le développeur le plus dévoué (michael niedermayer) reste bloqué avec FFmpeg ( statistiques de validation ).
  • Les mainteneurs ubuntu / debian de FFmpeg faisaient partie de la fourchette libav. ils ont ajouté des messages de désapprobation à certains outils de ligne de commande, indiquant que ffmpeg est obsolète. cela a causé beaucoup de confusion. les deux debian et ubuntu passent en arrière à ffmpeg.
kritzikratzi
la source
Je suis tombé sur Google Michael Niedermayer et je me suis retrouvé avec ce poste dans lequel il démissionne.
bzeaman
1
@ bzeaman oui, je me souviens d'être tombé dessus. mais il semble toujours en moyenne à 2 fusions / commets par jour: git.videolan.org/…
kritzikratzi
hmm aucun candidat d'installation dans deb. Qu'est-ce qui l'a remplacé maintenant?
Mars
nvm mind a tout compris libav-tools
Stigandr
1
Niedermayer était la raison de la fourche. Cela dit, il a beaucoup changé.
Ismael Luceno
9

Quand vous allez ici, vous verrez que la mise à jour la plus récente date de septembre 2012 (il y a quelques mois).

Il semble que cela indique que c'est spécifique à Ubuntu et Debian pour le moment.

Il y a quelque temps, ffmpeg s'est scindé en deux fourches sous le nom de ffmpeg et de libav.

Debian suit le fork de libav dans sa distribution et dans un prochain envoi, le fichier binaire / usr / bin / ffmpeg sera remplacé par / usr / bin / avconv.

Autant que je sache, il n'est pas nécessaire de changer immédiatement de logiciel, mais Winff devrait être mis à niveau pour permettre l'un ou l'autre programme binaire (du point de vue de Debian, avec une préférence pour avconv). Je sais que vous pouvez définir l'emplacement du fichier binaire dans les préférences, mais je pense qu'avec l'emplacement défini, Winff devrait pouvoir trouver le fichier binaire approprié.

Je pense qu'à l'avenir, Windows et d'autres distributions pourraient également être touchées par ce problème.

Pour répondre à votre question à savoir si oui ou non c'est exactement la même chose:

J'ai implémenté les vérifications du bon binaire dans ma caisse locale, mais en lisant 1 , je constate qu'il existe des incohérences entre avconv et ffmpeg. Ce problème est plus important, car le fichier de préconfiguration doit être ajusté et la manière dont nous créons la ligne de commande doit être modifiée. Les options qui fonctionnent sur le fichier d’entrée doivent aller AVANT le fichier d’entrée "-i".

Veuillez noter que cela peut être spécifique à la version Windows. Cela a été posté concernant la version Linux:

L'outil de conversion audio / vidéo FFmpeg est maintenant connu sous le nom de AVConv (un meilleur nom à mon avis). Donc, l'outil de ligne de commande "ffmpeg" est obsolète et "avconv" doit être utilisé. Pour autant que j'ai remarqué que tous les paramètres sont restés les mêmes, mais des investigations supplémentaires doivent être menées. Certaines modifications doivent être effectuées dans le CIS.

Les tâches:

Installez AVConv sur les machines qui exécutent CIS. Habituellement, avconv devrait paraître mettre à jour ffmpeg (cela fonctionnait sous Ubuntu; non testé pour Debian). Remplacez "ffmpeg" par "avconv" dans cis / api / ffmpeg.py, classe FFmpegTranscoder, champ prog_bin, qui représente l'exécutable de l'outil de conversion. Noms de fichiers de refactor, noms de classes, noms de méthodes, noms de variables, etc., contenant "FFmpeg" ou "ffmpeg", de sorte qu'ils contiennent AVConv. Un IDE comme Eclipse pourrait le faire automatiquement. Tester! Si des problèmes sont constatés, déboguez!

Everett
la source
9
Je suis fortement en désaccord avec le post qui dit "ffmpeg est obsolète et avconv devrait être utilisé".
Slhck
@slhck Cela semble être une pratique courante lorsque vous lancez un projet. Plus nombreux sont ceux qui pensent que la branche principale est obsolète, mieux ce sera pour votre fourche.
user253751