IMPORTANT NOTE FOR BEGINNERS
Before getting started, make sure you have solid knowledge of SSH or you may irreversibly ruin your server.
Want to skip to the easy part? We’ll setup everything below for a $150 one-time fee.
If you have the time and feel adventurous, carry on reading.
Login with SSH and enter as root.
We need to make 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
Because in many cases there is no compiler or maybe other incompatible compiler is installed, you can get “fails sanity check” for example.
yum install gcc-c++ make rpm -Uhv http://dl.atrpms.net/el6-x86_64/atrpms/testing/cmake-2.8.4-1.el6.x86_64.rpm
Some initial libraries
We like to install with yum because it is the easiest.
yum install libogg zlib-devel libtool rpm -ivh http://rpm.livna.org/livna-release.rpm
FAAC = become FFAD in new version (http://downloads.sourceforge.net/faac/faad2-2.7.tar.gz) if you want to use it. 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. If you’re missing the package, go to sourceforge and download the latest version.
wget "http://downloads.sourceforge.net/project/faac/faac-src/faac-1.28/faac-1.28.tar.gz" tar xvfz faac-1.28.tar.gz cd faac-1.28/ ./bootstrap ./configure --enable-shared make make install ldconfig
If you get an error (mpeg4ip.h:126: error: new declaration ‘char* strcasestr(const char*, const char*)’) remove line 126 containing strcasestr from mpeg4ip.h found in the common folder,—this is a temporary workaround. It seems that it does not properly exclude its own prototype when it is already included by means of glibc’s strcasestr (#define _GNU_SOURCE 1). Then “make clean” then “make”.
x264 is a free library for encoding H264/AVC video streams. If missing from YUM, use link below, or find the latest one (or correct OS).
rpm -ivh http://pkgs.repoforge.org/yasm/yasm-1.0.1-1.el6.rf.x86_64.rpm yum install yasm wget ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20130616-2245.tar.bz2 tar xjvf x264-snapshot-20121021-2245.tar.bz2 cd x264-snapshot-20100607-2245 ./configure --enable-shared --disable-asm make make install ldconfig
The OpenJPEG library is an open-source JPEG 2000 codec written in C. 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, …
wget "https://openjpeg.googlecode.com/files/openjpeg-1.5.1.tar.gz" tar zxvf openjpeg-1.5.1.tar.gz cd openjpeg-1.5.1 cmake . make install ldconfig
Theora is a free and open video compression format from the Xiph.org Foundation. 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 the 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.
yum install libogg libogg-devel libvorbis libvorbis-devel wget http://downloads.xiph.org/releases/theora/libtheora-1.1.0.tar.gz tar zjvf libtheora-1.1.0.tar.gz cd libtheora-1.1.0 ./configure --enable-shared make make install
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.
wget http://downloads.xvid.org/downloads/xvidcore-1.2.2.tar.gz tar zxvf xvidcore-1.2.2.tar.gz cd xvidcore cd build/generic ./configure --enable-shared make make install
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
wget "http://downloads.sourceforge.net/project/yamdi/yamdi/1.9/yamdi-1.9.tar.gz" tar zxvf yamdi-1.9.tar.gz cd yamdi-1.9 gcc yamdi.c -o yamdi -O2 -Wall -D_FILE_OFFSET_BITS=647 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.
wget "http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz" tar xvzf lame-3.99.5.tar.gz cd lame-3.99.5 ./configure –-enable-shared make make install
FLVTool2 is a manipulation tool for Macromedia Flash Video files (FLV). It can calculate a lot of metadata, insert an onMetaData tag, cut FLV files, add cue points (onCuePoint), show the FLV structure and print metadata information in XML or YAML. Type flvtool2 in the command line to see help after the install succeeded.
yum install ruby wget http://rubyforge.org/frs/download.php/17497/flvtool2-1.0.6.tgz tar xvzf flvtool2-1.0.6.tgz cd flvtool2-1.0.6/ ruby setup.rb config ruby setup.rb setup ruby setup.rb install
FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video. It includes libavcodec – the leading audio/video codec library.
yum install subversion svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg cd ffmpeg ./configure --enable-libfaac --enable-shared --enable-memalign-hack --enable-gpl --enable-libtheora --enable-libmp3lame --enable-libopenjpeg --enable-libvorbis --enable-libx264 --enable-libxvid --enable-nonfree --enable-postproc --enable-avfilter --enable-swscale make make install
Symlink some libraries if needed (ignore file exists errors):
ln -s /usr/local/lib/libavformat.so.50 /usr/lib/libavformat.so.50 ln -s /usr/local/lib/libavcodec.so.51 /usr/lib/libavcodec.so.51 ln -s /usr/local/lib/libavutil.so.49 /usr/lib/libavutil.so.49 ln -s /usr/local/lib/libmp3lame.so.0 /usr/lib/libmp3lame.so.0 ln -s /usr/local/lib/libavformat.so.51 /usr/lib/libavformat.so.51 ln -s /usr/local/lib/libavdevice.so.52 /usr/lib/libavdevice.so.52 ln -s /usr/local/lib/libavdevice.so.52.2.3 /usr/lib/libavdevice.so.52.2.3
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…)
wget "http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2?use_mirror=garr" tar xjvf ffmpeg-php-0.6.0.tbz2 cd ffmpeg-php-0.6.0 phpize ./configure make make install
When encountering this error compiling ffmpeg-php:
/root/ffmpeg-php-0.6.0/ffmpeg_frame.c:421: error: 'PIX_FMT_RGBA32' undeclared (first use in this function) make: *** [ffmpeg_frame.lo] Error 1 "
do this and after make command again:
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
; Enable ffmpeg extension module (please use the correct path)
extension_dir = "/usr/lib64/php/modules/" extension=ffmpeg.so
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.
wget http://www.mplayerhq.hu/MPlayer/releases/codecs/essential-20071007.tar.bz2 tar xjvf essential-20071007.tar.bz2 mkdir /usr/local/lib/codecs/ mv essential-20071007/ /usr/local/lib/codecs/ chmod -R 755 /usr/local/lib/codecs/
wget http://www1.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc3.tar.bz2 tar xjvf MPlayer-1.0rc3.tar.bz2 cd MPlayer-1.0rc3/ ./configure make make install
Let us do it for you!
Tight on time or scared not to break something? We’ll install all the above for a low one-time fee of $150.