Quais são as diferenças e semelhanças entre ffmpeg, libav e avconv?

Quando eu executo o ffmpeg no Ubuntu, ele mostra:

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

Ou mostra (dependendo da versão do 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. 

Eu encontrei o avconv em http://libav.org . Estou apenas perplexa com eles.

Mensagens confusas

Essas mensagens são bastante enganosas e compreensivelmente uma fonte de confusão. Versões mais antigas do Ubuntu usavam Libav, que é um fork do projeto FFmpeg. O FFmpeg retornou no Ubuntu 15.04 “Vivid Vervet”.

A bifurcação era basicamente um resultado não amigável de personalidades conflitantes e estilos de desenvolvimento dentro da comunidade FFmpeg. Vale a pena notar que o mantenedor do Debian / Ubuntu mudou do FFmpeg para o Libav por sua própria iniciativa devido a estar envolvido com o fork do Libav.

O verdadeiro ffmpeg vs o falso

Por um tempo, ambos Libav e FFmpeg desenvolveram separadamente sua própria versão do ffmpeg .

O Libav renomeou então seu ffmpeg bizarro para se distanciar do projeto FFmpeg. Durante o período de transição, a mensagem “não mais desenvolvida” foi exibida para dizer aos usuários para começarem a usar o avconv vez de sua versão falsificada do ffmpeg . Isso confundiu os usuários em pensar que o FFmpeg (o projeto) está morto, o que não é verdade. Uma má escolha de palavras, mas não posso imaginar Libav não esperando tal resposta por parte dos usuários em geral.

Esta mensagem foi removida do autor quando o falso ” ffmpeg ” foi finalmente removido da fonte Libav, mas, dependendo da sua versão, ele ainda pode aparecer no Ubuntu porque o código Libav usado pelo Ubuntu é do período de transição ffmpeg para avconv.

Em junho de 2012, a mensagem foi reformulada para o pacote libav - 4:0.8.3-0ubuntu0.12.04.1 . Infelizmente, a nova mensagem “obsoleta” causou confusão adicional ao usuário.

A partir do Ubuntu 15.04 “Vivid Vervet”, o ffmpeg do FFmpeg volta aos repositorys .

Libav vs Libav

Para complicar ainda mais, o Libav escolheu um nome que era historicamente usado pelo FFmpeg para se referir às suas bibliotecas (libavcodec, libavformat, etc). Por exemplo, a lista de discussão libav-user , para perguntas e discussões sobre o uso de bibliotecas FFmpeg, não está relacionada ao projeto Libav.

Como saber a diferença

Se você estiver usando avconv então você está usando Libav. Se você estiver usando o ffmpeg você pode estar usando o FFmpeg ou Libav. Consulte a primeira linha na saída do console para dizer a diferença: o aviso de copyright mencionará FFmpeg ou Libav.

Em segundo lugar, os esquemas de numeração de versões diferem. Cada uma das bibliotecas FFmpeg ou Libav contém um header version.h que mostra um número de versão. O FFmpeg terminará em três dígitos, como 57.67. 100 , e Libav terminará em um dígito como 57.67. 0 Você também pode visualizar os números de versão da biblioteca executando ffmpeg ou avconv e visualizando a saída do console.

Se você quiser usar o ffmpeg real

Ubuntu 15.04 “Vervet Vivid” ou mais recente

O ffmpeg real está no repository, então você pode instalá-lo com:

 apt-get install ffmpeg 

Para versões mais antigas do Ubuntu

Suas opções são:

  • Baixe uma versão recente do Linux do ffmpeg ,
  • siga um guia passo-a-passo para compilar o ffmpeg ,
  • ou use o PPA de Doug McMahon (para o Ubuntu 14.04 LTS “Trusty Tahr”)

Esses methods não são intrusivos, reversíveis e não interferem no sistema ou em nenhum pacote de repository.

Outra opção possível é atualizar para o Ubuntu 15.04 “Vivid Vervet” ou mais recente e apenas usar o ffmpeg do repository.

Veja também

Para um artigo de blog interessante sobre a situação, bem como uma discussão sobre as principais diferenças técnicas entre os projetos, consulte A situação do FFmpeg / Libav .