This article describes installation of ffmpeg, flvtool2, mplayer, mencoder, MP4Box, ffmpeg-php and many other video conversion tools on a CentOS cpanel server.
1. Enable RPM Fusion yum repository
The CentOS rpm packages of ffmpeg, mplayer, mencoder and MP4Box are available on RPM Fusion YUM repository. RPM Fusion repo depends on packages from EPEL repo. So enable these repositories by installing following
RPM packages:
2. Install ffmpeg, mplayer and mencoder
Install these packages using following yum command:
3. Install flvtool2
This rpm package is available on RPM Fusion repo. But it also requires ruby rpms. However, it is not recommend to install ruby rpms on a cpanel server. Cpanel has its own ruby installer script. So install ruby using following cpanel script
MP4Box is provided by gpac package. Install gpac and its library packages:
Ffmpeg-php requires ffmpeg development package. Install this package using yum:
Error 1: During ./configure step if you get an error like “ffmpeg headers not found. Make sure ffmpeg is compiled as shared libraries using the --enable-shared option”, then run following three commands and after that re-run
./configure:
then run following command in ffmpeg-php source directory and run ‘make’ command again:
Add following line just below extension_dir and this will enable ffmpeg PHP extension:
Following are the installation paths of tools that we installed:
1. Enable RPM Fusion yum repository
The CentOS rpm packages of ffmpeg, mplayer, mencoder and MP4Box are available on RPM Fusion YUM repository. RPM Fusion repo depends on packages from EPEL repo. So enable these repositories by installing following
RPM packages:
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
rpm -Uvh http://download1.rpmfusion.org/free/el/updates/testing/5/i386/rpmfusion-free-release-5-0.1.noarch.rpm
rpm -Uvh http://download1.rpmfusion.org/nonfree/el/updates/testing/5/i386/rpmfusion-nonfree-release-5-0.1.noarch.rpm
Note: for following ‘yum‘ commands, use the switch --exclude “*.i386″ on 64-bit systems so as to avoid installing both 64-bit and 32-bit packages. Of course, DO NOT use this switch on 32-bit systems rpm -Uvh http://download1.rpmfusion.org/free/el/updates/testing/5/i386/rpmfusion-free-release-5-0.1.noarch.rpm
rpm -Uvh http://download1.rpmfusion.org/nonfree/el/updates/testing/5/i386/rpmfusion-nonfree-release-5-0.1.noarch.rpm
2. Install ffmpeg, mplayer and mencoder
Install these packages using following yum command:
yum install ffmpeg mplayer mencoder
This will also install various dependency packages like libtheora, libvorbis, libogg, lame, opencore-amr, x264, xvidcore etc3. Install flvtool2
This rpm package is available on RPM Fusion repo. But it also requires ruby rpms. However, it is not recommend to install ruby rpms on a cpanel server. Cpanel has its own ruby installer script. So install ruby using following cpanel script
/scripts/installruby
Flvtool2 is available as a Ruby Gems package. Use following gem command to install flvtool2:gem install flvtool2
4. Install MP4BoxMP4Box is provided by gpac package. Install gpac and its library packages:
yum install gpac gpac-libs
5. Install ffmpeg-phpFfmpeg-php requires ffmpeg development package. Install this package using yum:
yum install ffmpeg-devel
Now download the latest ffmpeg-php package:wget http://downloads.sourceforge.net/ffmpeg-php/ffmpeg-php-0.6.0.tbz2
Untar this package, build and install it with following commands:tar xjf ffmpeg-php-0.6.0.tbz2
cd ffmpeg-php-0.6.0
phpize
./configure
make
make install
Common errors:cd ffmpeg-php-0.6.0
phpize
./configure
make
make install
Error 1: During ./configure step if you get an error like “ffmpeg headers not found. Make sure ffmpeg is compiled as shared libraries using the --enable-shared option”, then run following three commands and after that re-run
./configure:
mkdir /usr/local/include/ffmpeg/
cp -par /usr/include/ffmpeg/* /usr/local/include/ffmpeg/
find /usr/include/ffmpeg/ -name “*.h” -exec cp {} /usr/local/include/ffmpeg/ \;
Error 2: during ‘make’ step, if you get the error “error: ‘PIX_FMT_RGBA32’ undeclared (first use in this function)”,cp -par /usr/include/ffmpeg/* /usr/local/include/ffmpeg/
find /usr/include/ffmpeg/ -name “*.h” -exec cp {} /usr/local/include/ffmpeg/ \;
then run following command in ffmpeg-php source directory and run ‘make’ command again:
sed -i 's/PIX_FMT_RGBA32/PIX_FMT_RGB32/g' ffmpeg_frame.c
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:Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20060613/
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:
extension=”ffmpeg.so”
Restart Apache to make this change effective:/scripts/restartsrv_httpd
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
ffmpeg-php version => 0.6.0-svn
ffmpeg-php built on => Oct 5 2010 22:14:58
ffmpeg-php gd support => enabled
ffmpeg libavcodec version => Lavc52.20.1
ffmpeg libavformat version => Lavf52.31.0
ffmpeg swscaler version => SwS0.7.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 pathsffmpeg
ffmpeg-php version => 0.6.0-svn
ffmpeg-php built on => Oct 5 2010 22:14:58
ffmpeg-php gd support => enabled
ffmpeg libavcodec version => Lavc52.20.1
ffmpeg libavformat version => Lavf52.31.0
ffmpeg swscaler version => SwS0.7.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
Following are the installation 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
Thats all!mplayer -> /usr/bin/mplayer
mencoder -> /usr/bin/mencoder
flvtool2 -> /usr/bin/flvtool2
MP4Box -> /usr/bin/MP4Box
No comments:
Post a Comment