HOW-TO install ffmpeg, Mplayer, mencoder,FLVtool2 and Yamdi on Plesk Linux based server

Date: 25 September 2009
[del.icio.us] [Slashdot] [Digg] [Reddit] [Facebook] [Technorati] [Google] [StumbleUpon]

A hosting client made a request for some additional server requirement for AdultVideoScript. I’ve found some tutorials on the internet about how to install ffmpeg and other codecs for it. I’ve tried them but there is always something that doesn’t work. I’ve tried to find the best solution and to adapt it to what happens on a CentOS 5.3 at 64 bit (same for 32 bit). This might help others too. All the times you can try to see if no new version is out on the market and download the newest version.

IMPORTANT FOR BEGGINERS

Before continue this tutorial, you need to have knowledge of SSH or you may ruin your server.
If you need installation support, better order this service from us, we will do this job for you for only 50USD. Usually could take aprox 2 hours.
We will need to get from you SSH access with root access.

So 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

/usr/local/lib
/usr/lib

Compiler install

Because in many cases no compiler or maybe other incompatbile compiler is installed, so you can get "fails sanity check" for example.

yum install gcc-c++ 

Some initial libraries

We like to install with yum because it is more easy like this.

yum install libogg zlib-devel libtool
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. If missing the package, go to sourceforge and download latest version or from mirror.

wget  http://superb-west.dl.sourceforge.net/sourceforge/faac/faac-1.28.tar.gz
tar xvfz faac-1.28.tar.gz
cd faac-1.28/
./bootstrap
./configure --enable-shared
make
make install
ldconfig

x264 (ftp://ftp.videolan.org/pub/videolan/x264/snapshots/)

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://dag.wieers.com/rpm/packages/yasm/yasm-0.6.2-1.el5.rf.x86_64.rpm  
yum install yasm
wget  ftp://ftp.videolan.org/pub/x264/snapshots/x264-snapshot-20100607-2245.tar.bz2
tar xjvf  x264-snapshot-20100607-2245.tar.bz2
cd x264-snapshot-20100607-2245
./configure --enable-shared  --disable-asm
make
make install
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, ...

wget  http://openjpeg.googlecode.com/files/openjpeg_v1_3.tar.gz
tar zxvf openjpeg_v1_3.tar.gz
cd OpenJPEG_v1_3
make
make install
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.

yum install libogg libogg-devel libvorbis libvorbis-devel
wget  http://downloads.xiph.org/releases/theora/libtheora-1.1.0.tar.gz
tar xjvf  libtheora-1.1.0.tar.gz
cd libtheora-1.1.0
./configure --enable-shared
make
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.

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

wget  "http://downloads.sourceforge.net/project/yamdi/yamdi/1.4/yamdi-1.4.tar.gz?use_mirror=garr"
tar zxvf yamdi-1.4.tar.gz
cd yamdi-1.4
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.98.2/lame-398-2.tar.gz?use_mirror=garr"
tar xvzf lame-398-2.tar.gz
cd lame-398-2
./configure –-enable-shared
make
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.

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

Finally FFMPEG

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-avfilter-lavf --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

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:

vim ffmpeg_frame.c
:%s/PIX_FMT_RGBA32/PIX_FMT_RGB32/g
:wq

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

IMPORTANT FOR BEGGINERS

Before continue this tutorial, you need to have knowledge of SSH or you may ruin your server.
If you need installation support, better order this service from us, we will do this job for you for only 50USD. Usually could take aprox 2 hours.
We will need to get from you SSH access with root access.




Other items
HOW-TO Setup a PLESK Dedicated Server - 30 July 2011
HOW-TO setup Plesk with Samba Share and OpenVPN on CentOS - 15 April 2010
HOW-TO - Not get Plesk Certificate Error or get rid off "This Connection is Untrusted" message. - 23 March 2010
HOW-TO configure PLESK with NGinx (proxy reverse) - 15 March 2010
HOW-TO restart automatically on Linux Kernel Panic if hanging on boot - 23 September 2009
Web Site hacked, iframe inserted, where to start? - 10 August 2009
Spam blacklist unlisting from sorbs.net - 31 July 2009
How to find out PLESK admin password? - 12 July 2009
Plesk 9.2.x - Postfix SMTP authentication error - 16 May 2009
Automated Remote FTP Backup shell script - 26 October 2008


| Adobe Dreamweaver Extensions | Code Faster | Company Website Builder | Control Panel Addons | Fast Template | G-Dating | GraFX Press | MiniCWB | Star Rating System |