Search


Tuesday, October 25, 2011

ffmpeg Installation

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:
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 :-)




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 etc


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


/scripts/installruby

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

gem install flvtool2

4. Install MP4Box


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 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:

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)”,
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:

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 paths


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!

Tuesday, October 11, 2011

Check Curl is working

Save the below codes a php page and try to execute the script by using the command "php -q filename".  If the curl is working a file named " rss.xml" will be created with contents in it.


<?php
/**
* Initialize the cURL session
*/
$ch = curl_init();
/**
* Set the URL of the page or file to download.
*/
curl_setopt($ch, CURLOPT_URL,
'http://news.google.com/news?hl=en&topic=t&output=rss');
/**
* Create a new file
*/
$fp = fopen('rss.xml', 'w');
/**
* Ask cURL to write the contents to a file
*/
curl_setopt($ch, CURLOPT_FILE, $fp);
/**
* Execute the cURL session
*/
curl_exec ($ch);
/**
* Close cURL session and file
*/
curl_close ($ch);
fclose($fp);
?>

Wednesday, October 5, 2011

Cloud Linux


Cloud Linux  Installation and updating Licence Key

=======================
wget http://repo.cloudlinux.com/cloudlinux/sources/cln/cpanel2cl
sh cpanel2cl -k $key
Replace $key with your license key.
reboot
/scripts/easyapache --build
=======================

More details at http://docs.cpanel.net/twiki/bin/view/AllDocumentation/InstallationGuide/InstallingOs


Updating Licence 

 rhnreg_ks --activationkey=<newkey> --forcev used this command

Tuesday, October 4, 2011

PHP handler in cpanel

How  to find current  PHP handler in Cpanel server using command?


The following command will let you know the current php core version and php handler.

# /usr/local/cpanel/bin/rebuild_phpconf --current
Here is an example of the output:

Code:
# /usr/local/cpanel/bin/rebuild_phpconf --current
Available handlers: suphp dso fcgi cgi none
DEFAULT PHP: 5
PHP4 SAPI: suphp
PHP5 SAPI: suphp
SUEXEC: enabled