D'après ce que j'ai vu, il me semble que la variable avconv
de Libav est supposée devenir le 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 un VM et lorsque j'ai installé ffmpeg, un message indiquant que mit ffmpeg était obsolète et que je pensais pour la première fois "wtf?".
Si j'utilise avconv
Est-il possible de 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).
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:
ffmpeg
et avconv
.ffmpeg
de libav.ffmpeg
et libav vs avconv
ffmpeg
est le nom de leur outil de ligne de commande.avconv
est le nom de leur outil de ligne de commande. Pendant un court laps de temps, libav a aussi eu une ffmpeg
.Les utilisateurs pensent souvent "projet" lorsque "outil" est en cours de discussion, ce qui conduit à ...
Donc, comme nous l’avons appris de Qui peut me dire ... link, quand libav a lancé FFmpeg, ils ont aussi 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 sa version de ffmpeg
et son outil renommé avconv
. Lorsque les utilisateurs ont tenté d'utiliser la variable ffmpeg
de libav, ils 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 (de même que 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.
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 choix sélectifs 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 FFmpeg PPA de Jon Severinsson , ou obtenez un simple binaire statique lié au téléchargement de FFmpeg page.
Pour plus d'informations, voir La situation FFmpeg/Libav .
Mise à jour (début 2016)
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:
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 this indique que cela 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 je sache, 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!