93 votes

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

D'après ce que j'ai vu, il me semble que Libav's avconv est pensé pour devenir un successeur de ffmpeg - c'est bien ça ?

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

J'ai rencontré ce "problème" lors de l'installation d'Ubuntu 12.04.1 LTS dans une VM et lorsque j'ai installé ffmpeg, il est apparu un message disant que ffmpeg est déprécié et j'ai d'abord pensé "wtf ?".

Si j'utilise avconv Est-ce que je pourrai migrer mes scripts dépendant de ffmpeg plus ou moins facilement vers libav ? Je l'utilise surtout pour écrire des méta-données et faire de la conversion audio (wav, flac, vorbis, mp3, aac).

123voto

llogan Points 50040

Mise à jour (2019-12-13) : L'activité de développement de Libav a presque cessé

commits dans les 6 derniers mois :

  • FFmpeg : 1988
  • Libav : 1

Certains développeurs de Libav participent à nouveau à FFmpeg. Ceci est en partie dû au fait que Jean-Baptiste Kempf (président de VideoLAN) a récemment pris la tête du projet FFmpeg. réorganisation de la communauté . Un comité de résolution technique de 5 personnes a été créé, dont deux sièges sont occupés par des (anciens) membres de Libav. Les développeurs de Libav sont invités à rejoindre l'assemblée générale, un comité de vote pour la prise de décision. Discussions et réunions sont toujours en cours, mais après 8 ans depuis la fourche, cela peut marquer le début d'une réintégration.


Réponse originale :

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. Utilisateurs ne faisant pas la différence entre les projets, FFmpeg et libav, et leurs outils de ligne de commande respectifs, ffmpeg y avconv .
  2. Le(s) message(s) mal formulé(s) que les utilisateurs obtiennent lorsqu'ils essaient d'utiliser la fonction de libav. ffmpeg .

FFmpeg vs ffmpeg et libav vs avconv

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

Les utilisateurs pensent souvent "projet" lorsqu'il est question d'"outil", ce qui conduit à...

Un message mal formulé

Donc, comme nous l'avons appris de la Qui peut me dire... lien, lorsque libav a bifurqué de FFmpeg, ils ont aussi temporairement fourni leur version de ffmpeg . En tant que membre de libav, le responsable de ffmpeg dans Debian et Ubuntu a alors décidé de changer la distro pour utiliser libav. Du point de vue de libav, il s'agissait de la meilleure décision à prendre : forcer une grande communauté d'utilisateurs à utiliser le fork.

Ubuntu a changé pendant la période de transition où libav fournissait à la fois leur version de ffmpeg et leur outil renommé avconv . Lorsque les utilisateurs tentaient d'utiliser les fonctionnalités de libav ffmpeg ils ont obtenu 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 été supprimée par la suite (tout comme le message). Rappelez-vous la différence entre FFmpeg et ffmpeg ? Bien sûr, ce message a profondément perturbé de nombreux utilisateurs qui, de manière compréhensible, n'ont pas fait la distinction entre projet et outil ; en particulier les utilisateurs d'Ubuntu qui n'étaient pas au courant que leur distribution faisait un switcharoo ou les utilisateurs qui n'avaient 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 estimé que le message était trop trompeur et il a ensuite été modifié comme suit :

***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 si réciproque puisque libav semble prétendre que FFmpeg n'existe pas et ne fait qu'occasionnellement des prélèvements sur FFmpeg.

Pour l'utilisateur occasionnel, il ne devrait pas y avoir d'énormes différences. Pour obtenir FFmpeg, vous pouvez suivre la procédure suivante guide de compilation ou consultez les liens de téléchargement des exécutables sur la page FFmpeg Télécharger page.

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

37voto

kritzikratzi Points 471

Mise à jour (début 2016)

  • Les chances restent en faveur de ffmpeg. La plupart des distributions sont revenues ou reviennent à ffmpeg ( Gentoo , Debian )
  • Un avantage pratique de ffmpeg est la large disponibilité des binaires pour de nombreuses plateformes. En cherchant sur Google les librairies statiques/dynamiques/binaires, on obtient de bons résultats pour linux, mac, Windows, ios et Android pour ffmpeg, alors que je n'ai pu trouver que des builds linux et Windows pour libav. Cela peut être un point important si vous avez peu d'expérience avec les fichiers C/makefiles.

La situation actuelle (mi 2015)

Il semble qu'il soit préférable de s'en tenir à FFmpeg. L'ensemble de la situation est plutôt désordonnée et moche. J'ai commencé à me documenter sur la bifurcation il y a quelques jours. Ignorant tout le drame, voici ce qui semble être des faits :

  • FFmpeg incorpore les jeux de modifications de libav, alors que libav est réticent à le faire (voir débat sur le projet Debian )
  • Chrome utilise ffmpeg, et google a fait de sérieux efforts pour le sécuriser. libav intègre également ces changements, mais à un rythme plus lent ( blogue de google )
  • FFmpeg tente de conserver autant de codecs que possible, tandis que libav en a abandonné certains ( liste de diffusion libav , message d'un développeur de libav )
  • La communauté FFmpeg est plus importante que celle de libav, et le développeur le plus dévoué (michael niedermayer) est resté avec FFmpeg ( commit stats )
  • les mainteneurs ubuntu/debian de FFmpeg faisaient partie de la branche libav. ils ont ajouté des messages de dépréciation à certains outils de ligne de commande, indiquant que ffmpeg est déprécié. cela a causé beaucoup de confusion. les deux groupes de mainteneurs ont été mis à contribution. debian y ubuntu reviennent à ffmpeg.

9voto

Everett Points 5775

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

On dirait que ce dit que c'est juste spécifique à Ubuntu et Debian pour le moment.

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

Debian suit la bifurcation de libav dans sa distribution et dans une et dans un prochain téléchargement, le binaire /usr/bin/ffmpeg sera remplacé par /usr/bin/avconv.

Pour autant que je sache, il n'est pas nécessaire de changer immédiatement, mais Winff devrait être mis à jour pour permettre l'utilisation de l'un ou l'autre des binaires (du point de vue de Debian). avec une préférence pour avconv). Je sais que vous pouvez définir le paramètre l'emplacement du binaire dans les préférences, mais je pense qu'avec l'emplacement défini, Winff devrait être en mesure d'utiliser les deux binaires. Winff devrait être capable de trouver le bon binaire.

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

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

J'ai implémenté les vérifications pour le binaire correct dans mon fichier local. mais en lisant 1 Je vois qu'il y a quelques incohérences entre avconv et ffmpeg. Ce problème est plus important, car le fichier de présélection devra être ajusté et surtout la façon dont nous créons la ligne de commande devra changer. Les options qui opèrent 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 de Windows. Ceci a été posté concernant la version Linux :

L'outil de conversion audio/vidéo FFmpeg est désormais connu sous le nom d'AVConv (un meilleur nom à mon avis). L'outil de ligne de commande "ffmpeg" est donc obsolète. "avconv" devrait être utilisé. D'après ce que j'ai pu constater, tous les paramètres sont restés les mêmes, mais des recherches supplémentaires devraient être faites. Certaines modifications de modifications doivent être faites dans CIS.

Tâches :

Installez AVConv sur la ou les machines qui exécutent CIS. Normalement, avconv devrait apparaître comme une mise à jour de ffmpeg (cela a fonctionné sur Ubuntu ; non testé pour Debian). Remplacez "ffmpeg" par "avconv" dans cis/api/ffmpeg.py, classe FFmpegTranscoder, champ prog_bin, qui représente l'outil de conversion exécutable. Refactoriser les noms de fichiers, noms de classes, noms de méthodes, noms de variables, etc. etc. qui contiennent "FFmpeg" ou "ffmpeg" de manière à ce qu'ils contiennent AVConv. Un IDE comme Eclipse pourrait le faire automatiquement. Test ! Si problèmes sont constatés, déboguez !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X