FFmpeg is a free software project that produces libraries and programs for handling multimedia data. FFmpeg includes libavcodec, an audio/video codec library used by several other projects, libavformat, an audio/video container mux and demux library, and the ffmpeg command line program for transcoding multimedia files.
You will need to login to your server with root user in order to perform the installation
Before we start installing FFMPEG update your rpmforge.
for CentOS i386:
wget https://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm
rpm -ivh rpmforge-release-0.5.3-1.el6.rf.i686.rpm
for CentOS x86_64:
wget https://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
rpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
Install the utilites of ffmpeg.
RedHat/Centos:
yum groupinstall -y “Development Tools”
or
yum install zlib-devel automake autoconf gcc gmake make libcpp libgcc libstdc++ gcc4 gcc4-c++ gcc4-gfortran gcc-c++ mesa-libGL-devel mesa-libGLU-devel libXi-devel libXmu-devel freeglut-devel freeglut libtool ncurses-devel
For Ubuntu:
apt-get install build-essential
Dynamic Linked Libraries Path
Linux operating system uses a system of shared libraries, similar to Windows dlls, for the efficient use of space and resources, and modularity.
Add those below entry in /etc/ld.so.conf
/usr/local/lib
/usr/lib
ldconfig
Installing libogg
Libogg contains necessary functionality to create, decode, and work with Ogg bitstreams.
-
cd /usr/local/src
-
wget https://downloads.xiph.org/releases/ogg/libogg-1.2.2.tar.gz
-
tar zxvf libogg-1.2.2.tar.gz
-
cd /usr/local/src/libogg-1.2.2
-
./configure && make clean && make && make install
-
ldconfig
Install libvorbis
The libvorbis reference implementation provides both a standard encoder and decoder under a BSD license.
-
cd /usr/local/src
-
wget https://downloads.xiph.org/releases/vorbis/libvorbis-1.3.3.tar.gz
-
tar zxvf libvorbis-1.3.3.tar.gz
-
cd libvorbis-1.3.3
-
./configure && make clean && make && make install
Install Yasm
Yasm is a software program that attempts to be a complete rewrite of the NASM assembler
-
wget https://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
-
tar zfvx yasm-1.2.0.tar.gz
-
cd yasm-1.1.0
-
./configure && make && make install
Install libx264
x264 is a free software library for encoding video streams into the H.264/MPEG-4 AVC format. It is released under the terms of the GNU
General Public License.
-
cd /usr/local/src
-
wget ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-`date -d “-1 days” +%Y%m%d`-2245-stable.tar.bz2
-
tar jxf x264-snapshot-`date -d “-1 days” +%Y%m%d`-2245-stable.tar.bz2
-
cd /usr/local/src/x264-snapshot-`date -d “-1 days” +%Y%m%d`-2245-stable
-
./configure –enable-shared && make clean && make && make install
Install amr
3GP is a simplified version of the MPEG-4 Part 14 (MP4) container format, designed to decrease storage and bandwidth requirements in order to accommodate mobile phones.
-
cd /usr/local/src
-
wget https://downloads.sourceforge.net/project/opencore-amr/opencore-amr/0.1.2/opencore-amr-0.1.2.tar.gz
-
tar zxf opencore-amr-0.1.2.tar.gz
-
cd opencore-amr-0.1.2
-
./configure && make clean && make && make install
Install neroAacEnc
neroAacEnc is Improved multichannel encoding and Multipass encoding, Solved issue with very long files and -2pass.
-
cd /usr/local/src
-
wget ftp://ftp6.nero.com/tools/NeroDigitalAudio.zip
-
unzip NeroDigitalAudio.zip -d nero
-
cd nero/linux
-
sudo install -D -m755 neroAacEnc /usr/local/bin
Install mediainfo
MediaInfo is a convenient unified display of the most relevant technical and tag data for video and audio files.
cd /usr/local/src
For x86_64 Centos6
-
wget https://downloads.sourceforge.net/zenlib/libzen0-0.4.29-1.x86_64.CentOS_6.rpm
-
rpm -ivh libzen0-0.4.29-1.x86_64.CentOS_6.rpm
-
wget https://sourceforge.net/projects/mediainfo/files/binary/libmediainfo0/0.7.64/libmediainfo0-0.7.64-1.x86_64.CentOS_6.rpm
-
rpm -ivh libmediainfo0-0.7.64-1.x86_64.CentOS_6.rpm
-
wget https://sourceforge.net/projects/mediainfo/files/binary/mediainfo/0.7.64/mediainfo-0.7.64-1.x86_64.CentOS_6.rpm
-
rpm -ivh mediainfo-0.7.64-1.x86_64.CentOS_6.rpm
Install faac
FAAC is an MPEG-4 and MPEG-2 AAC encoder.
-
cd /usr/local/src
-
wget https://downloads.sourceforge.net/faac/faac-1.28.tar.gz
-
tar zxvf faac-1.28.tar.gz
-
cd /usr/local/src/faac-1.28
-
./configure && make clean && make && make install
Some times you may face errors as
“In file included from mp4common.h:29, from 3gp.cpp:28:mpeg4ip.h:126: error: new declaration ‘char* strcasestr(const char*, const char*)’”
to sort out you have the file /usr/local/src/faac-1.28/common/mp4v2/mpeg4ip.h and remove the content “char *strcasestr(const char *haystack, const char *needle); ” found in line 126
And then run
make clean && ./configure && make && make install
Install lame
libmp3lame is an open source application used to encode audio into the MP3 file format.
-
cd /usr/local/src
-
wget https://downloads.sourceforge.net/project/lame/lame/3.98.4/lame-3.98.4.tar.gz
-
tar zxvf lame-3.98.4.tar.gz
-
cd lame-3.98.4
-
./configure && make clean && make && make install
Install gpac and MP4Box
MP4Box is a MP4 multiplexer. It can import MPEG-4 video, DivX, XviD, 3ivx, h264 etc, audio streams and subtitles into the .mp4 container.
-
cd /usr/local/src
-
wget https://downloads.sourceforge.net/gpac/gpac-0.5.0.tar.gz
-
wget https://downloads.sourceforge.net/gpac/gpac_extra_libs-0.5.0.tar.gz
-
tar zxvf gpac-0.5.0.tar.gz
-
tar zxvf gpac_extra_libs-0.5.0.tar.gz
-
cd gpac
-
cp -r ../gpac_extra_libs/* extra_lib/
-
chmod +x configure
-
./configure
-
make lib
-
make apps
-
make install-lib
-
make install
-
cp bin/gcc/libgpac.so /usr/lib
Install flvtool2
FLVTOOL2 can calculate a lot of meta data and insert on MetaData tag. It can cut FLV files and add cue Points (onCuePoint).
-
cd /usr/local/src
-
wget https://rubyforge.org/frs/download.php/17497/flvtool2-1.0.6.tgz
-
tar zxvf flvtool2-1.0.6.tgz
-
cd /usr/local/src/flvtool2-1.0.6/
-
ruby setup.rb config && ruby setup.rb setup && ruby setup.rb install
Install 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
-
cd /usr/local/src
-
wget “https://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/
Install FFmpeg
FFMPEG is a command line tool that is composed of a collection of free software / open source libraries. It includes libavcodec, an audio/video codec library used by several other projects, and libavformat, an audio/video container mux and demux library. The name of the project comes from the MPEG video standards group, together with “FF” for “fast forward”.
-
cd /usr/local/src
-
mkdir /usr/local/src/tmp
-
chmod 777 /usr/local/src/tmp
-
export TMPDIR=/usr/local/src/tmp
-
wget https://ffmpeg.org/releases/ffmpeg-0.7.11.tar.gz
-
tar xzf ffmpeg-0.7.11.tar.gz
-
cd ffmpeg-0.7.11
-
make distclean
-
./configure –enable-gpl –enable-version3 –enable-nonfree –enable-shared –enable-libmp3lame –enable-libx264 –enable-libfaac –enable-libvorbis –enable-libopencore-amrnb
-
make clean && make && make install
-
make tools/qt-faststart
-
cp tools/qt-faststart /usr/local/bin/
-
ldconfig
Install MPLAYER (MENCODER)
MENCODER is a free command line video decoding, encoding and filtering tool released under the GNU General Public License.
-
cd /usr/local/src
-
wget https://www.mplayerhq.hu/MPlayer/releases/codecs/all-20110131.tar.bz2
-
tar jxvf all-20110131.tar.bz2
-
mv /usr/local/src/all-20110131 /usr/local/lib/codecs/
-
chmod -R 755 /usr/local/lib/codecs/
-
mkdir /usr/local/src/tmp
-
chmod 777 /usr/local/src/tmp
-
export TMPDIR=/usr/local/src/tmp
-
wget https://www.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc4.tar.bz2
-
tar jxf MPlayer-1.0rc4.tar.bz2
-
cd MPlayer-1.0rc4
-
make clean
-
./configure && make && make install && ldconfig
Install 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.
-
cd /usr/local/src
-
wget https://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2
-
tar jxf ffmpeg-php-0.6.0.tbz2
-
perl -i -p -e “s/PIX_FMT_RGBA32/PIX_FMT_RGBA/g;” ffmpeg_frame.c
-
phpize
-
./configure && make clean && make && make install
Then add extension of ffmpeg in php.ini file
echo “extension=ffmpeg.so” >> /etc/php.ini
Check all the installed modules with below command.
which php ffmpeg mplayer mencoder flvtool2 yamdi MP4Box neroAacEnc mediainfo