FFmpeg è una estensione molto importante che deve essere installata sui server che ospitano siti web che richiedano per lo streaming la conversione di file in diversi formati video.
Questo tutorial vi guiderà passo per passo all’installazione di FFMPEG e di ffmpeg-php su sistemi Linux/CentOS 6, installazione che si potrà eseguire facilmente e con risultato sicuro.
La prima operazione da eseguire è quella di installare il repository RPMforge (la versione indicata è l’ultima alla data di questo post, verificare se non ne sono state rilasciate altre consultando questa pagina):
A secondo del proprio sistema operativo CentOS , 32 o 64 bit, scegliere la versione:
rpmforge-release-0.5.3-1.el6.rf.i686.rpm 20-Mar-2013 RHEL6 and CentOS-6 x86 32bit
rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm 20-Mar-2013 RHEL6 and CentOS-6 x86 64bit
e proseguire seguendo questa procedura:
[scaricare i file digitando da console per sistemi a 32 bit:]
# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm
[oppure per sistemi a 64 bit:]
# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
Quando il file è stato scaricato si deve procedere alla installazione con il comando rpm:
[sistemi 32 bit]
# rpm -ivh rpmforge-release-0.5.3-1.el6.rf.i686.rpm
[sistemi 64 bit]
# rpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
[Importare chiave rmforge]
# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
ATTENZIONE: con l’installazione di questo repository può verificarsi la proposta (o l’obbligo) di aggiornare PHP alla versione 5.4.x: questo potrebbe causare dei problemi ai siti web presenti sul server se non sono predisposti per questa nuova versione di PHP, quindi sarebbe meglio evitare l’aggiornamento inserendo nel file /etc/yum.conf la seguente riga:
exclude=php-*5.4* exclude=php-*5.5* exclude=php-*5.6*
Controllare che il repository rpmforge sia attivato prima di procedere alla installazioen di FFMPEG.
Installazione di FFMPEG
1. da console digitare:
# yum install ffmpeg ffmpeg-devel ffmpeg-libpostporc
2. installare anche, se non già presenti sul server:
# yum install php-devel php-gd
Installazione dell’estensione FFMPEG-PHP
1. posizionarsi nella directory /usr/local/src:
# cd /usr/local/src
2. scaricare il file compresso ffmpeg-php-0.6.0.tbz2 (controllare che sia l’ultima versione disponibile):
# wget http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2?use_mirror=nchc
3. procedere alla decompressione e alla sua installazione:
[estrazione dei file compressi]
# tar -xjf ffmpeg-php-0.6.0.tbz2
[entriamo nella direcotry dove si trovano i file per l’installazione di ffmpeg-php]
# cd ffmpeg-php-0.6.0 # phpize
[lanciamo la configurazione e l’installazione di ffmpeg-php]
# ./configure
[compiliamo ffmpeg-php]
# make
[installiamo ffmpeg-php]
# make install
Attenzione, potrebbero verificarsi questi errori:
bash: make: command not found
questo capita se non è installato make, quindi procedere alla sua installazione con il comando da console:
# yum install make
altro errore è la mancata compilazione (dopo aver lanciato il comando make) che viene indicata di solito così:
Error: /usr/src/ffmpeg-php-0.6.0/ffmpeg_frame.c: In function ‘zif_ffmpeg_frame_toGDImage’: /usr/src/ffmpeg-php-0.6.0/ffmpeg_frame.c:336: error: ‘PIX_FMT_RGBA32′ undeclared (first use in this function) /usr/src/ffmpeg-php-0.6.0/ffmpeg_frame.c:336: error: (Each undeclared identifier is reported only once /usr/src/ffmpeg-php-0.6.0/ffmpeg_frame.c:336: error: for each function it appears in.) /usr/src/ffmpeg-php-0.6.0/ffmpeg_frame.c: In function ‘zif_ffmpeg_frame_ffmpeg_frame’: /usr/src/ffmpeg-php-0.6.0/ffmpeg_frame.c:421: error: ‘PIX_FMT_RGBA32′ undeclared (first use in this function)
Si tratta di un BUG che si può correggere modificando il file ffmpeg_frame.c cambiando tutte le stringhe:
PIX_FMT_RGBA32
in
PIX_FMT_RGB32
Dopo che si è modificato il file ffmpeg_frame.c – e cancellato i file che il precedente comando # make aveva creato – lanciare nuovamente i comandi:
# make # make install
per terminare l’installazione.
Per rendere attivo ffmpeg-php è necessario creare il file /etc/php.d/ffmpeg.ini con al suo interno:
[ffmpeg] extension=ffmpeg.so
quindi eseguire il restart di httpd (di Apache)
Se tutto è andato a buon file, nella pagina phpinfo di potrà vedere: