 |
|
 |
Email to friend
|
 |
Add comment
|
|
|
|
Views: 4202
Votes: 3
Comments: 0
|
Posted: 15 Jul, 2007
by: Customer Service :: S.
* * * * *
Updated: 05 Jun, 2010
by: Customer Service :: S. |
|
is a complete solution to record, convert and stream audio and video segments. It includes libavcodec, the leading audio/video codec library.
NOTES:
- This guide had been used effectively on several Web production servers with CentOS v5.x and Red Hat v4/5, however there are some which might not be compatible. Moreover, this guide will install an OLD version of FFmpeg and FFmpeg-Php. To install the most recent and up-to-date versions of FFmpeg, FFmpeg-Php, and related modules/libraries sign up for the xPress (hourly) Plan.
- Although this guide is designed for a Linux
i386 powered server
, it might work on a 86_64 system -- (proceed at your own risk.)
- Please, do NOT publish this guide on any forum and/or a Web site without getting our written permission.
- If you experience technical issues with FFmpeg and FFmpeg-Php, search our Knowledgebase for a solution.
- If you experience any problems installing FFmpeg and FFmpeg-Php on your server and need help, we suggest you sign up for the xPress (hourly) Plan. Our engineers are ready to fix any installation problems you might have with your server.
There are two methods to install FFmpeg and FFmpeg-Php, their libraries, and modules:
- Using Yum
on systems including Red Hat, CentOS, and Fedora Core.
- Manually, from source archives/packages
Method #1: Yum
- *** Caution
- You must remove all previous installation of FFmpeg and FFmpeg-Php, then follow installation instructions below.
- Follow these steps (in that order):
First, make sure the following binary packages are installed on your server:
gcc, gcc4, gcc4-c++, gcc4-gfortran, gd, gd-devel, gmake, ImageMagick, ImageMagick-devel, libcpp, libgcc, libstdc++, make, ncurses, ncurses-devel, ruby, subversion
If any of these packages are missing, install them using Yum
. For example:
- Install RPMForge Respository
- rpm -Uhv ftp://ftp.pbone.net/mirror/dag.wieers.com/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
- Install ffmpeg, mplayer, mencoder with all supported libraries/modules
- yum
-y install ffmpeg ffmpeg-devel mplayer mencoder flvtool2
- Manually, install FFmpeg-Php
- cd /usr/local/src
- wget http://garr.dl.sourceforge.net/sourceforge/ffmpeg-php/ffmpeg-php-0.6.0.tbz2
- tar jxvf ffmpeg-php-0.6.0.tbz2
- cd ffmpeg-php-0.6.0
- phpize
- ./configure
- make
- make install
If FFmpeg-Php is compiled successfully, an ffmpeg.so module will be generated and copied into the default Php directory. Next, run the following command to enable FFmpeg-Php. By running this command you will be adding ffmpeg.so module into the php.ini file:
echo 'extension=ffmpeg.so' >> /local_path_to_your/php.ini
Final step, restart apache
service httpd restart
OR
/etc/init.d/httpd restart
- Testing FFmpeg
Verify that FFmpeg is working properly by running the following two commands:
- php -r 'phpinfo();' | grep ffmpeg
You will get a few lines similar to the following:
ffmpeg
ffmpeg-php version => 0.6.0-svn
ffmpeg-php built on => April 15 2010 15:31:45
ffmpeg-php gd support => enabled
ffmpeg libavcodec version => Lavc51.62.0
ffmpeg libavformat version => Lavf52.18.0
ffmpeg swscaler => disabled
ffmpeg.allow_persistent => 0 => 0
ffmpeg.show_warnings => 0 => 0
This is the second command to make sure that FFmpeg is working properly:
If you do not get any errors after running the test commands above, FFmpeg, FFmpeg-Php, MPlayer, MEncoder, and FLV2tool are working properly on your server. CONGRATULATIONS!
Method #2: Source archives/packages
- *** Caution
- You must remove all previous installation of FFmpeg and FFmpeg-Php, then follow installation instructions below.
- Follow these steps (in that order):
First, make sure the following binary packages are installed on your server:
gcc, gcc4, gcc4-c++, gcc4-gfortran, gd, gd-devel, gmake, ImageMagick, ImageMagick-devel, libcpp, libgcc, libstdc++, make, ncurses, ncurses-devel, ruby, subversion
If any of these packages are missing, install them using Yum
. For example:
*** Caution
- The following source packages are always updated with newer versions. You might experience technical issues if you download
and install a newer/older version of any of these applications.
- You must remove all previous installation of FFmpeg and FFmpeg-Php, then follow installation instructions below.
To install FFmpeg from source, execute the following commands (in that order).
- Let's create a directory to do our work in:
- mkdir /usr/local/src
- cd /usr/local/src
- Download source packages
- wget http://liba52.sourceforge.net/files/a52dec-0.7.4.tar.gz
- wget http://ftp.penguin.cz/pub/users/utx/amr/amrnb-7.0.0.2.tar.bz2
- wget http://ftp.penguin.cz/pub/users/utx/amr/amrwb-7.0.0.2.tar.bz2
- wget http://www3.mplayerhq.hu/MPlayer/releases/codecs/essential-ppc-20071007.tar.bz2
- wget http://downloads.sourceforge.net/project/faac/faac-src/faac-1.28/faac-1.28.tar.bz2
- wget http://downloads.sourceforge.net/project/faac/faad2-src/faad2-2.7/faad2-2.7.tar.gz
- wget http://biznetnetworks.dl.sourceforge.net/sourceforge/ffmpeg-php/ffmpeg-php-0.6.0.tbz2
- wget http://rubyforge.org/frs/download.php/17497/flvtool2-1.0.6.tgz
- wget http://downloads.sourceforge.net/project/lame/lame/3.98.4/lame-3.98.4.tar.gz
- wget http://downloads.xiph.org/releases/ogg/libogg-1.1.4.tar.gz
- wget http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.bz2
- wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.2.2.tar.gz
- wget http://downloads.sourceforge.net/project/re2c/re2c/0.13.5/re2c-0.13.5.tar.gz
- wget http://download.m0k.org/handbrake/contrib/xvidcore-1.1.3.tar.gz
- wget http://downloads.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20080324-2245.tar.bz2
- Extract source packages
- tar xzf a52dec-0.7.4.tar.gz
- tar jxvf amrnb-7.0.0.2.tar.bz2
- tar jxvf amrwb-7.0.0.2.tar.bz2
- tar jxvf essential-ppc-20071007.tar.bz2
- tar jxvf faac-1.28.tar.bz2
- tar xzf faad2-2.7.tar.gz
- tar jxvf ffmpeg-php-0.6.0.tbz2
- tar zxvf flvtool2-1.0.6.tgz
- tar xzf lame-3.98.4.tar.gz
- tar xzf libogg-1.1.4.tar.gz
- tar jxvf libtheora-1.1.1.tar.bz2
- tar xzf libvorbis-1.2.2.tar.gz
- tar xzf re2c-0.13.5.tar.gz
- tar xzf xvidcore-1.1.3.tar.gz
- tar jxvf x264-snapshot-20080324-2245.tar.bz2
- Create the codecs directory & export files
- mkdir /usr/local/lib/codecs
- mv /usr/local/src/essential-ppc-20071007/* /usr/local/lib/codecs
- chmod -R 755 /usr/local/lib/codecs
- echo "/usr/local/lib" >> /etc/ld.so.conf
- ldconfig
- Install SVN and Ruby (for RedHat/CentOS v5.x)
- yum
install subversion
- yum
install ruby
OR (if you are using the cPanel control panel
)
- /scripts/installruby
- /usr/local/cpanel/bin/ror_setup
- yum
install ncurses-devel
- Compile and install FLVtool2
- cd /usr/local/src/flvtool2-1.0.6/
- ruby setup.rb config
- ruby setup.rb setup
- ruby setup.rb install
- Compile and install LAME
- cd /usr/local/src/lame-3.98.4
- ./configure
- make
- make install
- Compile and install libOGG
- cd /usr/local/src/libogg-1.1.4
- ./configure
- make
- make install
- PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
- export PKG_CONFIG_PATH
- Compile and install LibVorbis
- cd /usr/local/src/libvorbis-1.2.2
- ./configure
- make
- make install
- Compile and install Libtheora
- cd /usr/local/src/libtheora-1.1.1
- ./configure --with-ogg-libraries=/usr/local/lib/
- make
- make install
- Compile and install amrNB
- cd /usr/local/src/amrnb-7.0.0.2
- ./configure
- make
- make install
- Compile and install amrWB
- cd /usr/local/src/amrwb-7.0.0.2
- ./configure
- make
- make install
- Compile and install Liba52
- cd /usr/local/src/a52dec-0.7.4
- ./bootstrap
- ARCh='arch'
- ./configure --enable-shared
- make
- make install
- Compile and install FAAC
- cd /usr/local/src/faac-1.28
- ./bootstrap
- ./configure --with-mp4v2
- make
- make install
- Compile and install FAAD
- cd /usr/local/src/faad2-2.7
- ./configure --with-mpeg4ip
- make
- make install
- Compile and install XVIDCore
- cd /usr/local/src/xvidcore/build/generic/
- ./configure
- make
- make install
- Compile and Install X264 Snapshot
- cd /usr/local/src/x264-snapshot-20080324-2245
- ./configure --enable-shared
- make
- make install
- Compile and install RE2C
- cd /usr/local/src/re2c-0.13.5
- ./configure
- make
- make install
- cp -aP /usr/local/bin/re2c /usr/bin/
- Download the latest release for FFmpeg and MPlayer from svn.mplayerhq.hu
- cd /usr/local/src
- svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg -r 15594
- svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer
- svn update
- Compile and install MPlayer
- cd /usr/local/src/mplayer
- ./configure
- make
(STOP here.) Make sure MPlayer has been compiled successfully with NO errors. Do NOT proceed any further unless the MPlayer package has been compiled successfully.
- Compile and install FFmpeg
- cd /usr/local/src/ffmpeg/
- mkdir /usr/local/src/ffmpeg/tmp
- export TMPDIR=/usr/local/src/ffmpeg/tmp
(The following ./configure command is one single line)
- ./configure --enable-shared --enable-nonfree --enable-gpl --enable-pthreads --enable-liba52 --enable-libamr-nb --enable-libamr-wb --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-cross-compile
- make
(STOP here.) Make sure FFmpeg has been compiled successfully with NO errors. Do NOT proceed any further unless the FFmpeg package has been compiled successfully.
- make install
- export LD_LIBRARY_PATH=/usr/local/lib/
- Finalize the codec setups:
(Create symbolic links
for the following modules. FYI: the number which comes after the extension *.so might differ from one server to another. The X's represent numbers. The number after *.so.5 must match the number after the *.so.5 at the end of the line.)
- ln -s /usr/local/lib/libavformat.so.5X.XX.0 /usr/lib/libavformat.so.5X
- ln -s /usr/local/lib/libavcodec.so.5X.XX.0 /usr/lib/libavcodec.so.5X
- ln -s /usr/local/lib/libavutil.so.49.X.0 /usr/lib/libavutil.so.49
- ln -s /usr/local/lib/libmp3lame.so.0 /usr/lib/libmp3lame.so.0
- /sbin/ldconfig
- Compile and install FFmpeg-Php
- cd /usr/local/src/ffmpeg-php-0.6.0/
- /usr/bin/phpize
- ./configure
- make
(STOP here.) Make sure FFmpeg-Php has been compiled successfully with NO errors. Do NOT proceed any further unless the FFmpeg-Php package has been compiled successfully.
- make install
Verify that ffmpeg-php module is saved in the Php extensions directory by running:
- ls -al /usr/local/lib/php/extensions/no-debug-non-zts-20060613/ffmpeg.so
- Add FFmpeg-Php module directive in php.ini file: (make sure the local path to your php.ini is correct.)
- echo 'extension=ffmpeg.so' >> /usr/local/lib/php.ini
- Restart Apache to load FFmpeg-Php (for RedHat/CentOS v5.x)
- Testing FFmpeg
Verify that FFmpeg is working properly by running the following two commands:
- php -r 'phpinfo();' | grep ffmpeg
You will get a few lines similar to the following:
ffmpeg
ffmpeg-php version => 0.6.0-svn
ffmpeg-php built on => April 15 2010 15:31:45
ffmpeg-php gd support => enabled
ffmpeg libavcodec version => Lavc51.62.0
ffmpeg libavformat version => Lavf52.18.0
ffmpeg swscaler => disabled
ffmpeg.allow_persistent => 0 => 0
ffmpeg.show_warnings => 0 => 0
This is the second command to make sure that FFmpeg is working properly:
If you do not get any errors after running the test commands above, FFmpeg, FFmpeg-Php, MPlayer, MEncoder, FLV2tool, LAME MP3 encoder & libOGG are working properly. CONGRATULATIONS!
|