Install FFMPEG and FFMPEG-PHP in CentOS 6 with Virtualmin
1 year ago - by Daniel - howto centos virtualmin ffmpeg ffmpeg-php
The other day I was requested to set-up few requirements for a client such as mod_rewrite
, GD library
, PHP Dom
, bcmath
etc.. and among these in the list there was theFFMPEG
library and the FFMPEG-PHP
extension. OK, no big deal, but this box has CentOS 6 (RHEL6) with Virtualmin/Webmin
set-up on top of it using the base repositories only, so let‘s do it I said...
ok, I took the following steps in order to install and set-up FFMPEG and FFMPEG-PHP in CentOS 6 with Virtualmin
- Update the system
- Install Development Tools
- Protect base repositories
- Add dag‘s repository
- Install FFMPEG
- Install FFMPEG-PHP
- Load FFMPEG-PHP extension
1. Make sure the CentOS 6 system is fully up-to-date
yum update
2. Install Development Tools
yum groupinstall "Development tools"
3. Protect the base repositories so the packages don‘t get updated by the unprotected ones
Install the ProtectBase yum plugin
by
yum install yum-protectbase
and then navigate to /etc/yum.repos.d
cd /etc/yum.repos.d/
before doing any changes to the repositories, always do backup of the original ones.
cp -prv ../yum.repos.d{,.orig}
in order for a repository to be protected, a line protect=1
needs to be added to each repository section in CentOS-Base.repo
, CentOS-Media.repo
and virtualmin.repo
.
So, edit these files using your favourite editor or do the sed
if you‘re feeling brave
sed -i ‘/gpgkey=/a\protect=1‘ CentOS-{Base,Media}.repo
sed -i ‘/gpgkey=/a\protect=1‘ virtualmin.repo
4. Add dag‘s repository by adding the following to /etc/yum.repos.d/dag.repo
[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
enabled=1
protect=0
next import dag‘s rpm gpg
key by
wget http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt -P /tmp
rpm --import /tmp/RPM-GPG-KEY.dag.txt
5. Proceed with installing FFMPEG and some development packages
yum install ffmpeg-devel php-devel re2c php-xml ffmpeg
verify FFMPEG
is installed successfully by executing
ffmpeg
you should get something like
FFmpeg version 0.6.5, Copyright (c) 2000-2010 the FFmpeg developers
built on Jan 29 2012 17:52:15 with gcc 4.4.5 20110214 (Red Hat 4.4.5-6)
configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --incdir=/usr/include --disable-avisynth --extra-cflags=‘-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC‘ --enable-avfilter --enable-avfilter-lavf --enable-libdc1394 --enable-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared --enable-swscale --enable-vdpau --enable-version3 --enable-x11grab
libavutil 50.15. 1 / 50.15. 1
libavcodec 52.72. 2 / 52.72. 2
libavformat 52.64. 2 / 52.64. 2
libavdevice 52. 2. 0 / 52. 2. 0
libavfilter 1.19. 0 / 1.19. 0
libswscale 0.11. 0 / 0.11. 0
libpostproc 51. 2. 0 / 51. 2. 0
Hyper fast Audio and Video encoder
6. Compile and install the FFMPEG-PHP extension
mkdir /srv/build
cd /srv/build
wget http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2
tar -xjf ffmpeg-php-0.6.0.tbz2
cd ffmpeg-php-0.6.0/
phpize
./configure
now run the following to prevent compilation failure with something like ffmpeg_frame.c:421: error: ‘PIX_FMT_RGBA32’ undeclared (first use in this function)
sed -i ‘s#PIX_FMT_RGBA32#PIX_FMT_RGB32#‘ ./ffmpeg_frame.c
and compile and install using
make
make install
you should end up with something like
Installing shared extensions: /usr/lib64/php/modules/
7. Load the FFMPEG-PHP extension and reload Apache
echo -e "extension=ffmpeg.so\n" > /etc/php.d/ffmpeg.ini
restart the webserver by
/etc/init.d/httpd restart
verify that the FFMPEG-PHP
extension is loaded
php -i | grep ffmpeg
php -m | grep ffmpeg