Como substituir o avconv pelo (real) ffmpeg e fazê-lo funcionar corretamente?

27

UPDATE (texto original preservado abaixo)

Com o ffmpeg real prestes a retornar (em 15.04), o PPA de Jon Severinsson não está mais funcionando (para ffmpeg), e o avconv-ffmpeg (agora chamado de " libav ") e o ffmpeg real (agora voltando ao " ffmpeg ") caíram de lançamentos intermediários, a questão tornou-se: como instalar o ffmpeg com mais facilidade nas distros anteriores a 2015?

/ATUALIZAR

Alguém sabe como instalar o ffmpeg real e atual (não a versão mais antiga do avconv que vem com o Ubuntu) sem ter os problemas mencionados aqui ?

Razões:

  • Tudo funciona (ou assim que muitos têm escrito),
  • Use a nova sintaxe e
  • Após algumas pesquisas - e sem entrar em controvérsia -, simplesmente acredito que os empacotadores cometeram um erro ao usar o avconv. Isso é uma correção.

Aparentemente, não é tão fácil quanto deveria ser devido a conflitos de versão, e que avconv e ffmpeg não podem coexistir na mesma máquina (anotado na resposta aceita da postagem acima). Embora pelo menos um guia mencione a instalação do ffmpeg localmente (~) para obter coexistência.

Meu lançamento é o Precision 12.04.3 LTS, mas parece que isso se aplicaria aos mais novos também.

u2n
fonte
3
Você já viu Como compilar o FFmpeg no Ubuntu ? Não entra em conflito com nenhum lixo de libav dos repositórios.
Llogan
1
Eu sugiro que você reformule um pouco a parte "razões". Parece que você está sugerindo que a suposta superioridade do ffmpeg sobre o avconv é um fato e que os usuários do Ubuntu estão com problemas porque o repositório quebrou o software. Isso pode confundir e assustar alguns usuários iniciantes. Espero que você entenda meu argumento, pois parece que concorda que é melhor não entrar "na controvérsia".
Andrea Lazzarotto
1
@ Brad Eu continuo acreditando que é errado assustar novos usuários, deixando-os pensar que eles quebraram o software e que precisam "corrigi-lo".
Andrea Lazzarotto
1
@AndreaLazzarotto Ninguém está tentando assustar ninguém. Na questão está uma opinião, e é especificamente chamada como uma. Essa opinião é uma parte importante da questão.
19414 Brad
1
Ei pessoal, obrigado pelos comentários. Como a falsa versão avconv do ffmpeg foi removida de todas as versões mais recentes, não há mais nada para desinstalar (e também não há mais controvérsia: ^). Jon Severinsson está atualizando seu ppa regularmente, para que o ffmpeg real funcione - com instalações e atualizações fáceis. Esta postagem servirá como atualização aqui por enquanto. (Vai fazer uma limpeza completa mais tarde.)
U2N

Respostas:

25

Resposta atualizada para versões anteriores a 2015

Como ninguém mantém um ppa completo, como o de Jon Severinsson, o método de Rmano de usar uma construção estática agora é mais fácil. As atualizações devem ser verificadas e feitas manualmente.

  1. Após acessar a página oficial de download do ffmpeg , clique no link em Linux Static Builds . (O destino pode mudar, por isso não está vinculado diretamente aqui.)
  2. Clique no release apropriado (32 ou 64 bits) e desejado (instantâneo ou numerado) para fazer o download. (Instantâneo é recomendado.)
  3. Se a versão libav do ffmpeg foi instalada, remova-a. Os dois não podem residir na mesma máquina. Se o libav não foi instalado anteriormente, pule para 4.

    sudo apt-get remove ffmpeg  
    sudo apt-get purge libav-tools  
    # *Ignore any autoremove message that may appear.*
    
  4. Extraia os arquivos (e dois diretórios) da seguinte maneira:

    • Para sistemas de usuário único: para $ HOME / bin
    • Para configurações multiusuário: para / usr / local / bin

A instalação estática da compilação está concluída e o ffmpeg está pronto para uso.

Para atualizar: Ao verificar e encontrar uma versão mais recente, a pasta de instalação pode ser classificada por data e os arquivos de versão existentes rapidamente identificados e excluídos. (Os carimbos de hora serão todos iguais ao binário ffmpeg.) A atualização pode ser baixada e extraída da mesma forma que na versão anterior.

Se um repo ffmpeg abrangente ressurgir, ele será instalado como antes:

# Replace avconv with the real ffmpeg
#   www.askubuntu.com/a/373509/165265
#
sudo add-apt-repository ppa:<name of ppa here>
sudo apt-get update
sudo apt-get install ffmpeg

Com o ffmpeg real retornando aos lançamentos de 2015 e além, a necessidade dessa solução alternativa acabará desaparecendo.

Muita gratidão à comunidade pela ajuda.

u2n
fonte
4
Ufa. Obrigado. O avconv parece muito próximo do ffmpeg, mas parece ter algumas bandeiras diferentes. Não, obrigado. O FFMPEG funciona muito bem. A única razão pela qual posso pensar para o Ubuntu mudar é alguma razão política. Esqueça esse barulho. ffmpeg ftw!
James T Snell
1
A sudo apt-get dist-upgradelinha me parece desnecessária para o propósito deste post. A maioria das pessoas que estão tentando instalar o ffmpeg provavelmente não gostaria de acionar uma atualização de distribuição como efeito colateral.
Cxrodgers
@cxrodgers, absolutamente certo. Corrigindo agora, obrigado.
U2n
1
Você pode querer atualizar esta resposta agora que jon-severinsson PPA está desaparecido: stackoverflow.com/questions/29585700/...
cxrodgers
1
A ligação simbólica deve apontar para /usr/local/binevitar possíveis conflitos de qualquer pacote de recompra que forneça os arquivos nomeados; notavelmente do pacote libav-tools qt-faststarte do " ffmpeg" falso para 12.04 ou mais antigo. Além disso, outros usuários podem não ter as permissões adequadas para executar qualquer coisa em outro usuário ~/bin(mas eu não investiguei isso). Por fim, acho que toda a seção "/ UPDATE" desta resposta pode ser removida: está desatualizada (o PPA se foi) e não contribui mais.
Llogan
7

Não tive nenhum problema ao usar a compilação estática fornecida pelo projeto FFmpeg. Existem links em http://ffmpeg.org/download.html

Faça o download da versão / compilação necessária (32 ou 64 bits) e, em seguida, coloque o executável no seu $PATH(por exemplo, ~/bin). Se ele estiver inserido, ~/binvocê poderá efetuar logout e, em seguida, efetuar login novamente ou apenas executar . ~/.profile, para que seu shell reconheça que está no $PATH. Agora você pode simplesmente entrar ffmpege a nova compilação estática será usada.

Por exemplo:

% wget http://johnvansickle.com/ffmpeg/builds/ffmpeg-git-64bit-static.tar.xz
% tar xJvf ffmpeg-git-64bit-static.tar.xz
% cd ffmpeg-git-20150427-32bit-static
% ./ffmpeg
ffmpeg version N-45164-g46778ab- http://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.9.2 (Debian 4.9.2-10)
[...]

Ser completamente estático não deve ter problemas com várias versões do Linux (até certo ponto, o kernel não deve ser muito antigo).

Rmano
fonte
1
Obrigado, Rmano. A sua resposta será votada como alternativa assim que eu chegar ao número mágico. "Alternativa" porque, pelo que li, o que torna as construções estáticas confiáveis ​​- com todas as dependências integradas - também as torna "pesadas" (grandes e com muita memória). Por esse motivo, eu estava me esquivando de seguir esse caminho em favor da versão de peso normal e atualizada automaticamente. ... Acho que may've tem, pós próxima ...
U2N
Bem, embora isso geralmente seja verdade para executável estático, nesse caso, o ffmpeg não usa bibliotecas gerais gráficas ou pesadas. Obviamente, você está certo se acabar executando várias cópias do ffmpeg em paralelo.
Rmano
2
A rota PPA de resposta aceita contém a versão 0.1, que é muito antiga. Você vai querer usar o método desta resposta para fazer com que muitos comandos funcionem.
deadghost