I was randomly browsing the internet and reading about making a website look better and I encountered ffmpeg-php. ffmpeg is a very powerful tool to record, convert and stream audio and video. Its a very rich tool almost supporting every format out there in the world. It can convert any format to any other format provided the codec. ffmpeg-php is an extension for PHP that provides a rich library to access info about audio and video files. The good thing about ffmpeg-php is that it can retrieve all info about any audio/video file subjected to the condition that the particular audio/video format is supported by your ffmpeg installation. So, now you have a clear idea that you can do wonders with audio/videos while showing them on your site 🙂
I tried some of the functionalities and they worked out of the box. Here’s is complete how to on installing ffmpeg and ffmpeg-php.
FFMPEG:
I tried installing ffmpeg from rpms provided by several Fedora repositories but after installation ffmpeg doesn’t seem to work. After several tries, I installed ffmpeg from source rpms and it worked. Below, I will describe how to install ffmpeg from source rpm.
Step 1:
Make sure that you have ‘rpmbuild’ installed by issuing
[root@bordeaux saini]# rpm -q rpmbuild [Enter] |
[root@bordeaux saini]# rpm -q rpmbuild [Enter]
command. If the above says that rpmbuild is not installed, then install it using yum as given below
[root@bordeaux saini]# yum install rpmbuild [Enter] (do as root) |
[root@bordeaux saini]# yum install rpmbuild [Enter] (do as root)
Step 2:
Download the latest src rpm of ffmpeg from rpmfind.net. Issue the command given below
[root@bordeaux saini]# rpm -hiv ffmpeg-x.x.x.xx-xxx.src.rpm [Enter] (do as root) |
[root@bordeaux saini]# rpm -hiv ffmpeg-x.x.x.xx-xxx.src.rpm [Enter] (do as root)
Step 3:
Go to ‘/usr/src/redhat/SPECS/’ directory and issue the command given below
1
2
| [root@bordeaux saini]# cd /usr/src/redhat/SPECS/ [Enter]
[root@bordeaux SPECS]# rpmbuild -ba ffmpeg.spec [Enter] (do as root) |
[root@bordeaux saini]# cd /usr/src/redhat/SPECS/ [Enter]
[root@bordeaux SPECS]# rpmbuild -ba ffmpeg.spec [Enter] (do as root)
If it gives an error like package ‘xyz’ is need by ffmpeg. Then install the package ‘xyz’ using yum as
[root@bordeaux SPECS]# yum install xyz [Enter] (do as root) |
[root@bordeaux SPECS]# yum install xyz [Enter] (do as root)
After installing the dependencies, issue the rpmbuild command ‘rpmbuild -ba ffmpeg.spec’. Now ffmpeg rpms will be build and they will be stored in ‘/usr/src/redhat/RPMS/i386/’.
Step 4:
Go the ‘/usr/src/redhat/RPMS/i386/’ (x86_64 instead of i386 if your OS is 64 bit). Install all the rpms that were built by rpmbuild.
[root@bordeaux saini]# rpm -hiv *.rpm [Enter] (do as root) |
[root@bordeaux saini]# rpm -hiv *.rpm [Enter] (do as root)
Thats it. ffmpeg is now successfully installed on your computer. Half the job is done. Now lets proceed with ffmpeg-php installation.
FFMPEG-PHP:
We will install ffmpeg-php from source bundle.
Step 1:
Make sure that ‘php-devel’ installed on your machine by issuing
[root@bordeaux saini]# rpm -q php-devel [Enter] |
[root@bordeaux saini]# rpm -q php-devel [Enter]
command. If the above command says the ‘php-devel’ is not installed, then install it using the following command.
[root@bordeaux saini]# yum install php-devel [Enter] (do as root) |
[root@bordeaux saini]# yum install php-devel [Enter] (do as root)
Step 2:
Download the latest version of ffmpeg-php from here. Unpack the file you have downloaded.
1
2
| [root@bordeaux saini]# bunzip2 -d ffmpeg-php-0.5.1.tbz2 [Enter]
[root@bordeaux saini]# tar -xvf ffmpeg-php-0.5.1.tar [Enter] |
[root@bordeaux saini]# bunzip2 -d ffmpeg-php-0.5.1.tbz2 [Enter]
[root@bordeaux saini]# tar -xvf ffmpeg-php-0.5.1.tar [Enter]
Step 3:
Issue the following command in sequence if everything goes fine.
1
2
3
4
5
| [root@bordeaux saini]# cd ffmpeg-php-0.5.1 [Enter]
[root@bordeaux ffmpeg-php-0.5.1]# phpize [Enter]
[root@bordeaux ffmpeg-php-0.5.1]# ./configure [Enter]
[root@bordeaux ffmpeg-php-0.5.1]# make [Enter]
[root@bordeaux ffmpeg-php-0.5.1]# make install [Enter] (do as root) |
[root@bordeaux saini]# cd ffmpeg-php-0.5.1 [Enter]
[root@bordeaux ffmpeg-php-0.5.1]# phpize [Enter]
[root@bordeaux ffmpeg-php-0.5.1]# ./configure [Enter]
[root@bordeaux ffmpeg-php-0.5.1]# make [Enter]
[root@bordeaux ffmpeg-php-0.5.1]# make install [Enter] (do as root)
Step 4:
Open ‘/etc/php.ini’ and add a line ‘extension=ffmpeg.so’ in the category ‘Dynamic Extensions’. For help see the image below.
Step 5:
Restart apache web server aka ‘httpd’ service by issuing the command.
[root@bordeaux saini]# service httpd restart [Enter] (do as root) |
[root@bordeaux saini]# service httpd restart [Enter] (do as root)
Step 6:
Write a test php file and test your ffmpeg-php installation.
Save the above code in ‘info.php’ and save the file in ‘/var/www/html/’ and browse http://localhost/info.php . If you see something like this.
Then the ffmpeg-php is successfully installed on your machine. Now you can jump into the world of video manipulation via your website.