Estava utilizando o avconv (Que pretende ser o substituto do ffmpeg em algumas distros Linux) para converter alguns arquivos de vídeo e áudio, até que precisei usar o avserver e não encontrava material decente na internet de como utiliza-lo, além de uma mensagem dizendo:
WARNING: avserver is unmaintained, largely broken and in need of a complete rewrite. It probably won’t work for you. Use at your own risk
Mediante isso resolvi compilar o ffmpeg manualmente pois o ffmpeg que acompanha o Raspbian funciona, mas informa que devo usar o avconv em seu lugar.
Para minha surpresa, após compilar o ffmpeg o mesmo chega a ser 2x ou mais rápido que o avconv rodando no mesmo hardware.
Antes de começar vou postar as 2 fontes que utilizei que dão o passo a passo de como compilar o ffmpeg no Raspberry. Fonte 1 e Fonte 2
Originalmente eu iria utilizar o passo a passo da fonte 2 mas alguns links estão quebrados então utilizei a fonte 1. MAS, a fonte 2 foi necessária pois eu preciso do suporte ao alsa (Advanced Linux Sound Architecture) e a fonte 1 não adiciona esse suporte.
Seguindo os meus passos você também terá o suporte ao filtro drawtext do ffmpeg pois em ambas as fontes acima esse filtro não é adicionado e no meu caso eu também preciso deles.
Se você olhar a fonte 1, perceberá que aqui é basicamente um copiar/colar dele com apenas alguns adicionais do suporte ao alsa e do filtro drawtext.
Mãos a obra.
Removendo o ffmpeg e algumas libraries para recompila-las manualmente
1 | sudo apt-get remove --purge libmp3lame-dev libtool libssl-dev libaacplus-* libx264 libvpx librtmp ffmpeg |
Download das dependências
1 | sudo apt-get install libmp3lame-dev autoconf libtool checkinstall libssl-dev |
Criando uma pasta para guardar todos os arquivos
1 2 3 | cd ~ mkdir ffsource cd ffsource |
Baixando e compilando o LibaacPlus
1 2 3 4 5 6 | cd ~ /ffsourcewget http: //tipok .org.ua /downloads/media/aacplus/libaacplus/libaacplus-2 .0.2. tar .gz tar -xzf libaacplus-2.0.2. tar .gz cd libaacplus-2.0.2 . /autogen .sh --with-parameter-expansion-string-replace-capable-shell= /bin/bash --host=arm-unknown-linux-gnueabi -- enable -static make sudo make install |
Baixando e compilando o Libx264
1 2 3 | cd ~ /ffsourcegit clone git: //git .videolan.org /x264cd x264. /configure --host=arm-unknown-linux-gnueabi -- enable -static --disable-opencl make sudo make install |
Baixando e compilando o LibVPX
1 2 3 4 5 6 | cd ~ /ffsourcegit clone http: //git .chromium.org /webm/libvpx .git cd libvpx . /configure make sudo checkinstall --pkgname=libvpx --pkgversion= "1:$(date +%Y%m%d%H%M)-git" --backup=no --deldoc= yes --fstrans=no --default |
Baixando e compilando o LibRTMP
1 2 3 4 | cd ~ /ffsource git clone git: //git .ffmpeg.org /rtmpdump cd rtmpdump make SYS=posixsudo checkinstall --pkgname=rtmpdump --pkgversion= "2:$(date +%Y%m%d%H%M)-git" --backup=no --deldoc= yes --fstrans=no --default |
Baixando e compilando o ALSA
1 2 3 4 5 6 7 | cd ~ /ffsource wget http: //mirrors .zerg.biz /alsa/lib/alsa-lib-1 .0.25. tar .bz2 tar xjf alsa-lib-1.0.25. tar .bz2 cd alsa-lib-1.0.25/ . /configure --host=arm-unknown-linux-gnueabi --prefix= /my/path/were/i/keep/built/arm/stuff make make install |
Instalando as bibliotecas necessárias para o filtro drawtext
1 | sudo apt-get install libfreetype6-dev libfontconfig1-dev |
Baixando e compilando o ffmpeg
1 2 3 4 5 6 7 | sudo ldconfig cd ~ /ffsource git clone --depth 1 git: //git .videolan.org /ffmpeg cd ffmpeg . /configure --arch=armel --target-os=linux -- enable -gpl -- enable -libx264 -- enable -nonfree -- enable -libaacplus -- enable -librtmp -- enable -libmp3lame -- enable -libfreetype -- enable -libfontconfig make sudo make install |
Pronto. 🙂
Agora você tem o ffmpeg com suporte aos principais codecs, ao alsa e ao filtro drawtext.
Essa página vai ser útil para mim caso eu necessite compila-lo novamente e espero que seja útil também para você.
Abraços.