| Video Web Hosting: How to Install FFmpeg Server |
| Monday, 15 February 2010 07:27 |
|
FFmpeg is so important if you are planning to run a video website with streaming with conversion of video files to different video formats. FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video. It includes libavcodec - the leading audio/video codec library. This tutorial is intended for Centos/Redhat versions of Linux where any novice user can install ffmpeg without compiling the source which is a more traditional way of installing the FFmpeg software on linux servers. In this tutorial i will show you the easy way to install ffmpeg and ffmpeg-php (php extension) with just yum rather than compiling ffmpeg from source files. Platform: OS Linux CentOS 5.3 This installation will also include installation of Mplayer, FLVtool2, and Yamdi.
IMPORTANTFor beginners before continue this tutorial, you need to have knowledge of SSH or you may ruin your server. Login with SSH and Enter as RootMake sure the correct lib directories are setup in ldconfig. Edit the /etc/ld.so.conf file and add the following lines. After you save it, run the command ldconfig 1./usr/local/lib 2./usr/lib
Install Compiler
Because in many cases no compiler or maybe other incompatbile compiler is installed, so you can get "fails sanity check" for example. 1.yum install gcc-c++
Initial Librariesinstall Yum because it is easier 1.yum install libogg libvorbis zlib-devel libtool 2.rpm -ivh http://rpm.livna.org/livna-release.rpm
FAAC (http://sourceforge.net/projects/faac/files/)FAAC is an Advanced Audio Coder (MPEG2-AAC, MPEG4-AAC). The goal of FAAC is to explore the possibilities of AAC and exceed the quality of the currently best MP3 encoders. 1.wget http://superb-west.dl.sourceforge.net/sourceforge/faac/faac-1.28.tar.gz 2.tar xvfz faac-1.28.tar.gz 3.cd faac-1.28/ 4../bootstrap 5../configure --enable-shared 6.make 7.make install 8.ldconfig
X264 (ftp://ftp.videolan.org/pub/videolan/x264/snapshots/)x264 is a free library for encoding H264/AVC video streams. 1.yum install yasm 2.wget ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20090926-2245.tar.bz2 3.tar xjvf x264-snapshot-20090926-2245.tar.bz2 4.cd x264-snapshot-20090926-2245 5../configure --enable-shared --disable-asm 6.make 7.make install 8.ldconfig
OpenJPEG (http://code.google.com/p/openjpeg/downloads/list)The OpenJPEG library is an open-source JPEG 2000 codec written in C language. It has been developed in order to promote the use of JPEG 2000, the new still-image compression standard from the Joint Photographic Experts Group (JPEG). In addition to the basic codec, various other features are under development, among them the JP2 and MJ2 (Motion JPEG 2000) file formats, an indexing tool useful for the JPIP protocol, JPWL-tools for error-resilience, a Java-viewer for j2k-images, ... 1.wget http://openjpeg.googlecode.com/files/openjpeg_v1_3.tar.gz 2.tar zxvf openjpeg_v1_3.tar.gz 3.cd openJPEG_v1_3 4.make 5.make install 6.ldconfig
LibTheora (http://downloads.xiph.org/releases/theora/)Theora is a free and open video compression format from the Xiph.org Foundation. Like all our multimedia technology it can be used to distribute film and video online and on disc without the licensing and royalty fees or vendor lock-in associated with other formats. Theora scales from postage stamp to HD resolution, and is considered particularly competitive at low bitrates. It is in the same class as MPEG-4/DiVX, and like the Vorbis audio codec it has lots of room for improvement as encoder technology develops. 1.wget http://downloads.xiph.org/releases/theora/libtheora-1.1.0.tar.gz 2.tar xjvf libtheora-1.1.0.tar.bz2 3.cd libtheora-1.1.0 4../configure --enable-shared 5.make 6.make install
XVid (http://www.xvid.org/Downloads.43.0.html)The Xvid video codec implements MPEG-4 Simple Profile and Advanced Simple Profile standards. It permits compressing and decompressing digital video in order to reduce the required bandwidth of video data for transmission over computer networks or efficient storage on CDs or DVDs. Due to its unrivalled quality Xvid has gained great popularity and is used in many other GPLed applications, like e.g. Transcode, MEncoder, MPlayer, Xine and many more. 1.wget http://downloads.xvid.org/downloads/xvidcore-1.2.2.tar.gz 2.tar zxvf xvidcore-1.2.2.tar.gz 3.cd xvidcore 4.cd build/generic 5../configure --enable-shared 6.make 7.make install
Yamdi (http://downloads.sourceforge.net/project/yamdi/yamdi/)yamdi stands for Yet Another MetaData Injector and is a metadata injector for FLV files. It adds the onMetaData event to your FLV files. yamdi should run under *BSD, Linux and Win32 1.wget "http://downloads.sourceforge.net/project/yamdi/yamdi/1.4/yamdi-1.4.tar.gz?use_mirror=garr" 2.tar zxvf yamdi-1.4.tar.gz 3.cd yamdi-1.4 4.gcc yamdi.c -o yamdi -O2 -Wall -D_FILE_OFFSET_BITS=647 5.cp yamdi /usr/bin/
Lame MP3 encoder (http://nchc.dl.sourceforge.net/sourceforge/lame/)Pure install of FFmpeg is not enough, the FLV (Flash Video Files) converted has no audio, because FLV audio codec is mp3, so you need LAME support. 1.wget "http://downloads.sourceforge.net/project/lame/lame/3.98.2/lame-398-2.tar.gz?use_mirror=garr" 2.tar xvzf lame-398-2.tar.gz 3.cd lame-398-2 4../configure –-enable-shared 5.make 6.make install
FLVTool2 (http://rubyforge.org/frs/?group_id=1096&release_id=9694)FLVTool2 is a manipulation tool for Macromedia Flash Video files (FLV). It can calculate a lot of meta data, insert an onMetaData tag, cut FLV files, add cue points (onCuePoint), show the FLV structure and print meta data information in XML or YAML. Type flvtool2 in command line to see help after install succeed. 1.yum install ruby 2.wget http://rubyforge.org/frs/download.php/17497/flvtool2-1.0.6.tgz 3.tar xvzf flvtool2-1.0.6.tgz 4.cd flvtool2-1.0.6/ 5.ruby setup.rb config 6.ruby setup.rb setup 7.ruby setup.rb install
FFmpegFFmpeg is a complete, cross-platform solution to record, convert and stream audio and video. It includes libavcodec - the leading audio/video codec library. 1.yum install subversion 2.svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg 3.cd ffmpeg 4../configure --enable-libfaac --enable-shared --enable-memalign-hack --enable-gpl --enable-libtheora --enable-libmp3lame --enable-libopenjpeg --enable-libvorbis --enable-libx264 --enable-libxvid --enable-nonfree Symlink some libraries if needed (ignore file exists errors):1.ln -s /usr/local/lib/libavformat.so.50 /usr/lib/libavformat.so.50 2.ln -s /usr/local/lib/libavcodec.so.51 /usr/lib/libavcodec.so.51 3.ln -s /usr/local/lib/libavutil.so.49 /usr/lib/libavutil.so.49 4.ln -s /usr/local/lib/libmp3lame.so.0 /usr/lib/libmp3lame.so.0 5.ln -s /usr/local/lib/libavformat.so.51 /usr/lib/libavformat.so.51 Install FFmpeg-php (http://downloads.sourceforge.net/project/ffmpeg-php/)ffmpeg-php is an extension for PHP that adds an easy to use, object-oriented API for accessing and retrieving information from video and audio files. It has methods for returning frames from movie files as images that can be manipulated using PHP's image functions. This works well for automatically creating thumbnail images from movies. ffmpeg-php is also useful for reporting the duration and bitrate of audio files (mp3, wma...). ffmpeg-php can access many of the video formats supported by ffmpeg (mov, avi, mpg, wmv...) 2.tar xjvf ffmpeg-php-0.6.0.tbz2 3.cd ffmpeg-php-0.6.0 4.phpize 5../configure 6.make 7.make install Now you need to copy the ffmpeg.so file that was created from it’s location (from the build) to /usr/local/lib/php/extensions/, it should look something like: cp /usr/local/lib/php/extensions/no-debug-non-zts-????????????/ffmpeg.so /usr/local/lib/php/extensions/ This creates the ffmpeg.so file. Create a file /etc/php.d/gdffmpeg.ini It is important to name it as gdffmpeg.ini because seems try to load this before gd.ini and then will work. Restart Apache (service httpd restart).
Mplayer & Codecs (http://www1.mplayerhq.hu/MPlayer/releases/)MPlayer is a movie player which runs on many systems (see the documentation). It plays most MPEG/VOB, AVI, Ogg/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, RealMedia, Matroska, NUT, NuppelVideo, FLI, YUV4MPEG, FILM, RoQ, PVA files, supported by many native, XAnim, and Win32 DLL codecs. You can watch VideoCD, SVCD, DVD, 3ivx, DivX 3/4/5, WMV and even H.264 movies. 1.wget http://www.mplayerhq.hu/MPlayer/releases/codecs/essential-20071007.tar.bz2 2.tar xjvf essential-20071007.tar.bz2 3.mv /usr/local/src/essential-20071007/ /usr/local/lib/codecs/ 4.chmod -R 755 /usr/local/lib/codecs/
1.wget http://www1.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc2.tar.bz2 2.tar xjvf MPlayer-1.0rc2.tar.bz2 3.cd MPlayer-1.0rc2/ 4../configure 5.make 6.make install This solutions work when run on a CentOS 5.3 at 64 bit (same for 32 bit). This might applicable to other Linux OS too. When you try find the newest components from sourforge or other site. If you want to start a new FFmpeg web hosting server, better start with FFmpeg on shared hosting environment, than upgrade to semi-dedicated hosting, grow to full dedicated server. You can find list of web hosting which provide these services here and list of recommended FFmpeg webhosting here. ---
|










