Objectiu:
L’objectiu d’aquesta entrada és facilitar la compilació i execució del conversor d’audio i vídeo ffmpeg amb els complements libx264 i libfaac (entre d’altres). Aquest tutorial està copiat de diverses fonts d’Internet que he recollit i resumeixo aquí, sobretot, per recordar-ho en un futur.
Instal·lacions prèvies:
Algunes de les llibreries que instal·larem a continuació requereixen de yasm per a compilar. A continuació instal·lem aquest programari.
$ curl -#LO http://www.tortall.net/projects/yasm/releases/yasm-1.1.0.tar.gz $ tar zxf yasm-1.1.0.tar.gz $ cd yasm-1.1.0 $ ./configure $ make && sudo make install $ cd ..
Procediment:
Seguidament ja podem descarregar les llibreries dels diferents codecs als que volem que l’ffmpeg tingui accés i pugui utilitzar:
FAAC (aac Audio Encoder):
$ curl -#LO http://downloads.sourceforge.net/project/faac/faac-src/faac-1.28/faac-1.28.tar.gz $ tar zxf faac-1.28.tar.gz $ cd faac-1.28 $ CFLAGS="-D__unix__" ./configure $ make && sudo make install $ cd ..
LAME MP3 (mp3 Audio Encoder):
$ curl -#LO http://downloads.sourceforge.net/project/lame/lame/3.98.4/lame-3.98.4.tar.gz $ tar zxf lame-3.98.4.tar.gz $ cd lame-3.98.4 $ ./configure $ make && sudo make install $ cd ..
Xiph.org family of codecs:
$ curl -#LO http://downloads.xiph.org/releases/ogg/libogg-1.2.2.tar.gz $ curl -#LO http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.2.tar.gz $ curl -#LO http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.bz2 $ curl -#LO http://downloads.xiph.org/releases/flac/flac-1.2.1.tar.gz $ tar zxvf libogg-1.2.2.tar.gz $ cd libogg-1.2.2 $ ./configure $ make && sudo make install $ cd .. $ tar zxf libvorbis-1.3.2.tar.gz $ cd libvorbis-1.3.2 $ ./configure --disable-oggtest $ make && sudo make install $ cd .. $ tar jxf libtheora-1.1.1.tar.bz2 $ cd libtheora-1.1.1 $ ./configure --disable-oggtest --disable-vorbistest --disable-examples --disable-asm $ make && sudo make install $ cd .. $ tar zxf flac-1.2.1.tar.gz $ cd flac-1.2.1 $ ./configure --disable-thorough-tests --disable-oggtest --disable-asm-optimizations $ make && sudo make install $ cd ..
VPX (VP8 video encoder):
$ curl -#LO http://webm.googlecode.com/files/libvpx-v0.9.6.tar.bz2 $ tar jxf libvpx-v0.9.6.tar.bz2 $ cd libvpx-v0.9.6 $ ./configure --enable-vp8 --enable-psnr --enable-postproc --enable-multithread --enable-runtime-cpu-detect --disable-install-docs --disable-debug-libs --disable-examples $ make && sudo make install $ cd ..
libx264 (264 video encoder):
$ curl -#LO ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2 $ tar jxf last_x264.tar.bz2 $ cd x264-* $ CFLAGS="-I. -fno-common -read_only_relocs suppress" ./configure --prefix=/usr/local --enable-static --enable-shared $ make -j3 && sudo make install $ cd ..
XVID Codec (Xvid video encoder):
$ curl -#LO http://downloads.xvid.org/downloads/xvidcore-1.3.2.tar.gz $ tar zxf xvidcore-1.3.2.tar.gz $ cd xvidcore/build/generic $ ./configure --disable-assembly $ make && sudo make install $ cd ../../..
FFMPEG 0.8:
Un cop compilades i instal·lades totes les llibreries (aquesta selecció no és completa, n’hi ha més que es poden instal·lar, la llista completa es pot veure fent un ./configure –help) podem procedir a instal·lar l’ffmpeg:
$ curl -#LO http://www.ffmpeg.org/releases/ffmpeg-0.8.tar.gz $ tar zxf ffmpeg-0.8.tar.gz $ cd ffmpeg-0.8 $ CFLAGS="-DHAVE_LRINTF" ./configure --enable-nonfree --enable-gpl --enable-version3 --enable-postproc --enable-swscale --enable-avfilter --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libfaac --enable-libxvid --enable-libx264 --enable-libvpx --enable-shared --enable-pthreads --disable-indevs $ make && sudo make install $ cd ..
A partir d’aquest moment ffmpeg està instal·lat i ja podem començar a utilitzar-lo. Com a exemple mostro dues comandes que fan conversions simples:
Convertir vídeo a x264:
$ ffmpeg -i infile.mov -acodec libfaac -ab 192k -sameq -vcodec libx264 -threads 2 -f mp4 outfile.avi
Extreure audio d’un vídeo:
$ ffmpeg -i infile.mov -acodec libfaac -ab 192k -f mp4 -vn outfile.m4a
Convertir un mp4 a avi (per a reproductors antics):
$ ffmpeg -i infile.mp4 -vcodec libxvid -acodec libmp3lame -sameq -vcodec libxvid output.avi
Documentació
Com sempre els manuals són una bona font d’informació. El manual d’ffmpeg és molt extens i pot semblar aterridor de bon principi. Paciència.
man ffmpeg