J’avais publié un article sur l’installation de FFMPEG sur les serveurs CentOS de 1and1 via YUM.
J’ai ensuite rencontré quelques soucis d’encodage au format FLV avec du MP3.J’ai donc tout réinstallé presque à la main en me servant de plusieurs tutos que j’ai mixé à ma sauce suivant les erreurs que je rencontrai (tout le monde n’a pas les même librairies installées sur son serveur…).
Bref c’est parti
Préparation du système :
On met le system à jour
yum update
On supprime les anciennes installation s’il y en avait
yum remove ffmpeg x264 faad2 faad2-devel
On ajoute EPEL (qui nous permetera d’installer git et yasm)
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
On installe les outils de dev
yum install gcc gcc-c++ automake autoconf libtool yasm git subversion zlib-devel
On se prépare un petit répertoire pour les sources
mkdir /usr/src/ffmpeg-packages
cd /usr/src/ffmpeg-packages
Nous sommes prêt à installer !
Installation des différents codecs et outils
Installation de GPAC
wget http://downloads.sourceforge.net/gpac/gpac-0.4.4.tar.gz
tar -xzvf gpac-0.4.4.tar.gz
cd gpac
chmod 777 configure (je ne sais pas pourquoi il n'a pas les bons droits)
./configure
make
make install
make install-lib
echo '/usr/local/lib/' > /etc/ld.so.conf.d/gapc-1386.conf
ldconfig
Installation de Faad2
wget http://downloads.sourceforge.net/faac/faad2-2.6.1.tar.gz
tar zxf faad2-2.6.1.tar.gz
cd faad2
autoreconf -vif
./configure --disable-drm --disable-mpeg4ip
make && make install
cd ..
Installation de Faac
wget http://downloads.sourceforge.net/faac/faac-1.26.tar.gz
tar zxfv faac-1.26.tar.gz
cd faac
./bootstrap
./configure --disable-mp4v2
make && make install
cd ..
Installation de Lame
wget http://superb-east.dl.sourceforge.net/sourceforge/lame/lame-3.98b8.tar.gz
tar zxfv lame-3.98b8.tar.gz
cd lame-3.98b8
./configure
make && make install
cd ..
Installation de x264
git clone git://git.videolan.org/x264.git
cd x264
./configure --enable-pthread --enable-mp4-output --enable-shared
make
make install
Installation de Xvid
wget http://downloads.xvid.org/downloads/xvidcore-1.1.3.tar.gz
tar zxfv xvidcore-1.1.3.tar.gz
cd xvidcore-1.1.3/build/generic
./configure
make && make install
cd ../../..
Installation de FFMPEG
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
cd ffmpeg
./configure --enable-gpl --enable-postproc --enable-nonfree --enable-postproc --enable-libfaad --enable-avfilter --enable-pthreads --enable-libxvid --enable-libx264 --enable-libmp3lame --enable-libfaac --disable-ffserver --disable-ffplay --enable-shared
make
make install
Voilà FFMPEG est installé et vous permettra de faire pas mal de choses
Execution de FFMPEG depuis un script PHP initialisé par Apache
Sur les serveurs virtuels de 1and1 Il manque les répertoires /usr/local/bin:/usr/local/sbin au PATH d’apache et je n’ai trouvé qu’une méthode brutale pour mettre à jour le PATH.
Vous pouvez essayer, en temps normal il suffit dans httpd.conf d'ajouter :
setEnv PATH /sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
Mais sur mon serveur virtuel cela ne modifiait pas la variable d’environnement PATH du serveur apache.
J’ai donc édité le fichier /etc/init.d/httpd
et j’ai ajouté juste après les lignes :
# Source function library.
. /etc/rc.d/init.d/functions
La ligne de définition du PATH suivante :
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
export PATH
Pourquoi après cette ligne ?
Parce qu’elle fait appel à un fichier qui met à jour le PATH et qui écraserai mes modifications.
Pourquoi ne pas mettre à jour directement le fichier /etc/rc.d/init.d/functionsfunctions ?
Parce qu’il n’est pas utilisé que par le démon httpd (je suis brutus mais pas complètement quand même !)
Cet article a été réalisé sur la base de deux bons articles avec mes corrections sur les bugs rencontrés :
http://gregorytomlinson.com/encoded/2008/06/11/a-robust-ffmpeg-install-for-centos-5/
http://www.austenconstable.com/tag/centos/
Installation de FFMPEG-PHP
cd /usr/src/ffmpeg-packages
wget http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2?use_mirror=freefr
tar zxvf ffmpeg-php-0.6.0.tbz2
cd ffmpeg-php-0.6.0
phpize (si erreur yum install php-devel)
./configure
make && make install
Si vous rencontrez une erreur au MAKE (sur la constante PIX_FMT_RGBA32), il faut éditer le fichier ffmpeg_frame.c
et remplacer « PIX_FMT_RGBA32″ par « PIX_FMT_RGB32″ (présent 3 fois dans el fichier) et relancer la commande MAKE.
Ajouter ensuite extension=ffmpeg.so dans le php.ini
et redémarrer le serveur apache : /etc/init.d/httpd restart
Pour aller plus loin
Pour des exemples de scripts PHP pour convertir vos vidéos je vous renvoi vers cet article