Como instalo as últimas bibliotecas de desenvolvimento do FFmpeg no meu Ubuntu?

6

Estou prestes a instalar o FFmpeg 2.0.1 (a versão mais recente) no meu Ubuntu. Eu já tenho as bibliotecas dev antigas instaladas no meu sistema. Na instalação anterior, não os construí da origem. Eu usei "Synaptic Package Manager".
Alguém pode me ajudar com os seguintes problemas:

  1. Por que o Gerenciador de Pacotes Synaptic não mostra as versões mais recentes, para que eu possa atualizá-las facilmente? Posso fazer algo para consertar isso?
  2. Como posso encontrar a versão das bibliotecas que já estão instaladas no meu sistema? (Eu sei com certeza que é uma versão mais antiga, mas eu quero saber o número da versão).
  3. Estou tentando excluir a versão antiga INTEIRAMENTE e instale novamente as novas bibliotecas a partir do código-fonte. Alguém pode me ajudar com isso?
por jsp99 12.09.2013 / 13:16

2 respostas

4

Por que o Gerenciador de Pacotes Synaptic não mostra as versões mais recentes?

De Ubuntu Wiki - Atualizações estáveis de lançamento :

  

Uma vez que uma versão do Ubuntu tenha sido completada e publicada, as atualizações para ela são liberadas apenas sob certas circunstâncias, e devem seguir um procedimento especial chamado "atualização de versão estável" ou SRU.

Isso significa que os pacotes geralmente não são mantidos atualizados com fontes upstream ativas.

Posso fazer algo para corrigir isso?

Você pode compilar e instalar sua própria versão recente do ffmpeg e de suas bibliotecas seguindo um guia passo-a-passo: Compile o FFmpeg em Ubuntu, Debian ou Mint . Este guia executa uma instalação local, portanto não interferirá nos pacotes de repositório ou nos arquivos do sistema, mas se você estiver compilando algo que depende das novas bibliotecas, talvez seja necessário informar onde estão localizadas as novas bibliotecas do ffmpeg.

Se você está compilando muitos programas, ou precisa de vários pacotes mais recentes do que o que é fornecido, então o Ubuntu pode não ser a distro mais eficiente para você no longo prazo.

Como posso encontrar a versão das bibliotecas que já estão instaladas no meu sistema?

A versão principal está presente no nome do pacote, como libavcodec53 .

Estou tentando excluir a versão antiga INTEIRAMENTE e instale novamente as novas bibliotecas a partir do código-fonte.

Se você deseja executar uma instalação do sistema que substitua o pacote ffmpeg ou libav-tools e / ou bibliotecas, basta remover os pacotes existentes, compilar o ffmpeg e instalar no sistema com checkinstall ou algum outro método. Veja esta versão antiga do guia mencionado anteriormente que faz tudo isso, mas esteja ciente de que ela está desatualizada e no mínimo você pode ter que adicionar --extra-libs=-ldl à sua linha de configuração do ffmpeg.

Se você deseja executar uma instalação local, siga a versão atual do guia de compilação.

Nomes de pacotes enganosos

Você deve estar ciente de que o chamado "ffmpeg" do repositório não é realmente do FFmpeg, mas de um fork chamado libav. Veja Quem pode me dizer a diferença e a relação entre ffmpeg, libav e avconv?

    
por LordNeckbeard 12.09.2013 / 20:04
1

Esta resposta é para ajudar os novatos a instalar as bibliotecas de desenvolvimento mais recentes do FFmpeg e a WORK com elas. Eu vim a saber disso da maneira mais difícil, que instalar uma biblioteca de desenvolvimento é apenas o começo. A parte realmente difícil é compilar (com flags apropriadas) e fazer um executável (com sucesso!) Fora do arquivo de origem.

O procedimento no link acima é bastante simples (embora seja demorado e demore um pouco). Você tem que copiar os comandos e colá-los no seu terminal.

  • O procedimento acima cria uma instalação local da biblioteca FFmpeg. É uma biblioteca estática . Por instalação local, quero dizer que o sistema não sabe nada sobre a biblioteca.

As informações sobre tipos de bibliotecas e como usá-las podem ser encontradas com a ajuda do Google. Isso é suficiente para você começar: Tipos de Bibliotecas . Você pode pular a leitura se estiver apenas preocupado em obter a compilação do código-fonte usando as bibliotecas .

  • Agora, essa é a parte difícil. Eu tive que tentar por horas, para conseguir essa parte certa. Você precisa deixar o compilador saber sobre sua biblioteca FFmpeg. Você realmente faz isso na próxima etapa, enquanto dá sinalizadores apropriados. Mas você precisa fazer algumas preparações antes da próxima etapa.
  

Copie todos os arquivos .pc de / home / jsp99 / ffmpeg_build / lib / pkgconfig e cole-os em / usr / local / lib / pkgconfig

     

Como copiar e colar no Ubuntu não é tão fácil, siga este link para instruções.

  • Para realmente compilar o código-fonte e formar um executável, digite este comando no terminal:
  

gcc -Wall -o module1.out -I / home / jsp99 / ffmpeg_build / include    -L / home / jsp99 / ffmpeg_build / lib module1.c $ (pkg-config - cflags - lib libs libctec v libswscale)

  

/ home / jsp99 é a pasta pessoal do usuário atual.
module1.c é o nome do meu arquivo de origem.
module1.out é o nome do arquivo exectable (saída).

    
por jsp99 15.09.2013 / 10:11