Friday, May 10, 2013

FFMPEG on CentOS 6 cPanel Server

FFMPEG on CentOS 6 cPanel server

This article describes installation of ffmpeg, flvtool2, mplayer, mencoder, MP4Box, ffmpeg-php and many other video conversion tools on a CentOS 6 server with cPanel hosting control panel.

1. Enable and EPEL yum repositories

The CentOS 6 RPM packages of ffmpeg, mplayer and MP4Box packages are available on These RPM packages are copied from ATrpms and RPM Fusion YUM repositories for a simplified installation.

Some packages on YUM repo depend on EPEL repo. To enable EPEL repo, install the epel-release RPM package:

rpm -Uvh

To enable YUM repository, create the file /etc/yum.repos.d/subhosting.repo and add following repository configuration:

name=SubHosting Packages CentOS 6 - $basearch

Note: with following 'yum' commands, use the switch --exclude "*.i386" on 64-bit systems so as to avoid installing 32-bit packages along with 64-bit packages. Of course, DO NOT use this switch on 32-bit systems.

2. Install ffmpeg mplayer and mencoder

Install these packages using following yum command:

yum install ffmpeg mplayer

Note: there is no separate package for mencoder. It is also provided by mplayer package.

This will also install various dependency packages like libtheora, libvorbis, libogg, lame, opencore-amr, x264, xvidcore etc.

3. Install flvtool2

cPanel has its own ruby installer script. So install ruby using following cPanel script:


Flvtool2 is available as a Ruby Gems package. Use following gem command to install flvtool2:

gem install flvtool2

4. Install MP4Box2

MP4Box is provided by gpac package. Install gpac and its library packages:

yum install gpac gpac-libs

5. Install ffmpeg-php

Ffmpeg-php requires ffmpeg development package. Install it using yum:

yum install ffmpeg-devel

Now download the latest ffmpeg-php package:


Untar this package, build and install it with following commands:

tar xjf ffmpeg-php-0.6.0.tbz2
cd ffmpeg-php-0.6.0
sed -i ‘s/PIX_FMT_RGBA32/PIX_FMT_RGB32/g’ ffmpeg_frame.c
make install

The make install command will show PHP extensions path where ffmpeg PHP extension is installed:

root@server [~/ffmpeg-php-0.6.0]# make install
Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20060613/

Now edit php.ini file (/usr/local/lib/php.ini) and make sure that value of extension_dir is set to PHP extension directory as given by above make install command:

extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20060613"

Add following line just below extension_dir and this will enable ffmpeg PHP extension:


Restart Apache to make this change effective:


You can verify the status of ffmpeg extension on a PHP info web page or from command line as given below:

root@server [~]# php -i | grep ffmpeg
ffmpeg-php version => 0.6.0-svn
ffmpeg-php built on => Jun 2 2012 20:48:04
ffmpeg-php gd support => enabled
ffmpeg libavcodec version => Lavc52.123.0
ffmpeg libavformat version => Lavf52.111.0
ffmpeg swscaler version => SwS0.14.1
ffmpeg.allow_persistent => 0 => 0
ffmpeg.show_warnings => 0 => 0
OLDPWD => /root/ffmpeg-php-0.6.0
_SERVER["OLDPWD"] => /root/ffmpeg-php-0.6.0
_ENV["OLDPWD"] => /root/ffmpeg-php-0.6.0

6. Installation paths

Following are the file system paths of tools that we installed:

ffmpeg: /usr/bin/ffmpeg
mplayer: /usr/bin/mplayer
mencoder: /usr/bin/mencoder
flvtool2: /usr/bin/flvtool2
MP4Box: /usr/bin/MP4Box

No comments:

Post a Comment