Qual é a diferença entre ffmpeg e libav e como chech qual é usado para aplicação? [duplicado]

2

Estou trabalhando com algum aplicativo baseado no gstreamer e algumas outras coisas de streaming e cheguei a alguma confusão: Qual é a diferença entre libav e ffmpeg?

Não encontrei nenhuma explicação sobre o que são e como diferem. Ainda mais um tem ferramenta chamada ffmpeg enquanto outro tem a mesma coisa também. Além disso, mesmo esses logotipos do projeto são os mesmos. E para piorar ainda mais a aplicação externa que os usa, eles são misturados incorretamente (gstreamer-0.10 refere-se ao ffmpeg, enquanto gstreamer-1.0 refere-se a libav).

Existe uma maneira fácil de descobrir qual biblioteca é realmente necessária e usada pelo aplicativo? Existe alguma diferença técnica (não-política de licenciamento de software) por que os projetos se dividem e eu deveria estar ciente de quando devo trabalhar com eles?

Atualização: Alguém nos comentários coloca os links para questões relacionadas ao histórico de ambas as bibliotecas e informações úteis. No entanto, duvido que minha pergunta seja duplicada:

  1. Estou pedindo ao próprio método para detectar bibliotecas.
  2. Liste ou algo assim, avalie ou até mesmo indique como as bibliotecas funcionam diferentes umas das outras, não a opinião que é melhor, nem como as comunidades de licenciamento diferem umas das outras.
por IBr 16.12.2013 / 10:08

1 resposta

7

Há muito tempo, havia um projeto chamado FFmpeg. O projeto FFmpeg criou um programa chamado ffmpeg . Em algum momento no início do projeto, foi decidido que o FFmpeg era tão complexo que deveria ser dividido em bibliotecas menores que outros poderiam usar em seus aplicativos. Essas bibliotecas tornaram-se conhecidas como libav *. Eles incluem livavformat, libavcodec, libavutil e outros. O aplicativo ffmpeg era simplesmente uma maneira de interagir com essas bibliotecas por meio da linha de comando.

Em algum momento, alguns colaboradores do FFmpeg não gostaram da maneira como o projeto foi gerenciado (acho que eles querem mais lançamentos com menor importância na estabilidade e compatibilidade com versões anteriores, mas posso estar errado), então eles se separaram. Eles começaram a consertar APIs inconsistentes, adicionando novos codecs, etc. Eles lançaram o frontend do CLI chamado avconv para substituir o executável ffmpeg . Um monte de software quebrou e esperava ver ffmpeg no sistema. então o executável avconv foi renomeado ffmpeg .

Agora, o projeto Libav estava fazendo um bom trabalho com as bibliotecas libav *. Então o projeto FFmpeg começou a incorporar as mudanças feitas pelo Libav. Assim, borrando as linhas um pouco mais.

Então, para responder sua pergunta. Você não precisa pensar muito sobre a política, mas alguns comandos / API podem ser ligeiramente diferentes entre os dois. Isso não deve ser muito de um problema no entanto. Você pode pensar nas diferentes versões da mesma coisa.

    
por 16.12.2013 / 18:07

Tags