#FFmpeg codecs libs compilation

#Required dependences yum groupinstall "Development Tools" -y

#Dynamic Linked Libraries Path grep /usr/local/lib /etc/ld.so.conf || echo "/usr/local/lib" >> /etc/ld.so.conf

#yasm cd /usr/local/src/yasm-1.2.0 ./configure && make && make install

--- Yasm check ---

yasm --version yasm 1.2.0 (this is how the result should look)

#Codecs and video conversion tools

#LIBOGG cd /usr/local/src/libogg-1.3.0 make distclean ./configure && make clean && make && make install

--- LIBOGG Check ---

ls /usr/local/lib/libogg* Results in /usr/local/lib/libogg.a /usr/local/lib/libogg.so.0 /usr/local/lib/libogg.la /usr/local/lib/libogg.so.0.8.0

#LIBVORBIS cd /usr/local/src/libvorbis-1.3.3 make distclean ./configure && make clean && make && make install

--- LIBVORBIS Check --- ls /usr/local/lib/libvorbis* Resutls in /usr/local/lib/libvorbis.a /usr/local/lib/libvorbisfile.so /usr/local/lib/libvorbisenc.a /usr/local/lib/libvorbisfile.so.3 /usr/local/lib/libvorbisenc.la /usr/local/lib/libvorbisfile.so.3.3.5 /usr/local/lib/libvorbisenc.so /usr/local/lib/libvorbis.la /usr/local/lib/libvorbisenc.so.2 /usr/local/lib/libvorbis.so /usr/local/lib/libvorbisenc.so.2.0.9 /usr/local/lib/libvorbis.so.0 /usr/local/lib/libvorbisfile.a /usr/local/lib/libvorbis.so.0.4.6 /usr/local/lib/libvorbisfile.la

#LibXvid

cd /usr/local/src/xvidcore/build/generic ./configure make make install

--- LibXvid Check ---

ls /usr/local/lib/libxvid*

/usr/local/lib/libxvidcore.a /usr/local/lib/libxvidcore.so.4@ /usr/local/lib/libxvidcore.so@ /usr/local/lib/libxvidcore.so.4.3

#Theora cd /usr/local/src/libtheora-1.1.1 ./configure && make clean && make && make install

--- Theora Check ---

ls /usr/local/lib/libtheora*

/usr/local/lib/libtheora.a /usr/local/lib/libtheoraenc.so /usr/local/lib/libtheoradec.a /usr/local/lib/libtheoraenc.so.1 /usr/local/lib/libtheoradec.la /usr/local/lib/libtheoraenc.so.1.1.2 /usr/local/lib/libtheoradec.so /usr/local/lib/libtheora.la /usr/local/lib/libtheoradec.so.1 /usr/local/lib/libtheora.so /usr/local/lib/libtheoradec.so.1.1.4 /usr/local/lib/libtheora.so.0 /usr/local/lib/libtheoraenc.a /usr/local/lib/libtheora.so.0.3.10 /usr/local/lib/libtheoraenc.la

#LIBX264

cd /usr/local/src/x264-snapshot-* make distclean ./configure --enable-shared && make clean && make && make install

--- LIBX264 Check ---

ls /usr/local/lib/libx264*

/usr/local/lib/libx264.so /usr/local/lib/libx264.so.124

#libfaac cd /usr/local/src/faac-1.28 ./configure && make clean && make && make install

ls /usr/local/lib/libfaac* /usr/local/lib/libfaac.a /usr/local/lib/libfaac.so /usr/local/lib/libfaac.so.0.0.0 /usr/local/lib/libfaac.la /usr/local/lib/libfaac.so.0

  • COMMON PROBLEM ALERT - In recent Linux distrubutions (Centos 6, Debian 6) the compilation may fail with the following error: In file included from mp4common.h:29, from 3gp.cpp:28:mpeg4ip.h:126: error: new declaration ‘char* strcasestr(const char*, const char*)’ That is because the C function strcasestr declared in the libfaac sources is already declared in a system-wide library. To solve it: Edit the file /usr/local/src/faac-1.28/common/mp4v2/mpeg4ip.h and delete the following line (around line 126)

    char *strcasestr(const char *haystack, const char *needle);

-- Then run --

make clean && ./configure && make && make install

#libfdk-aac yum install unzip cd /usr/local/src/mstorsjo-fdk-aac* autoreconf -fiv ./configure make make install make distclean

-- libfdk-aac Check --

ls /usr/local/lib/libfdk-aac* Results in /usr/local/lib/libfdk-aac.a /usr/local/lib/libfdk-aac.la* /usr/local/lib/libfdk-aac.so@ /usr/local/lib/libfdk-aac.so.1@ /usr/local/lib/libfdk-aac.so.1.0.0*

#LAME cd /usr/local/src/lame-3.99.5 make distclean ./configure && make clean && make && make install

--- LAME Check ---

ls /usr/local/lib/libmp3lame* Results in

/usr/local/lib/libmp3lame.a /usr/local/lib/libmp3lame.so.0 /usr/local/lib/libmp3lame.la /usr/local/lib/libmp3lame.so.0.0.0 /usr/local/lib/libmp3lame.so

#libvpx cd /usr/local/src/libvpx-1.5.0 ./configure --disable-examples --enable-shared && make && make install && ldconfig

ls /usr/local/lib/libvpx* /usr/local/lib/libvpx.a /usr/local/lib/libvpx.so.1 /usr/local/lib/libvpx.so.1.1.0 /usr/local/lib/libvpx.so /usr/local/lib/libvpx.so.1.1

#libx265 cd /usr/local/src/x265/build/linux ./make-Makefiles.bash make -j6 make install ldconfig

--- libx265 Check ---

ls /usr/local/lib/libx265* Results in /usr/local/lib/libx265.a /usr/local/lib/libx265.so@ /usr/local/lib/libx265.so.41*

#Install Libass-devel (for the subtitles) yum install /usr/local/src/epel-release-6-8.noarch.rpm yum update yum --enablerepo=epel install libass-devel

#FFMPEG cd /usr/local/src chmod 777 /usr/local/src/tmp export TMPDIR=/usr/local/src/tmp cd ffmpeg make distclean PKG_CONFIG_PATH="/usr/local/lib/pkgconfig" ./configure --disable-static --enable-gpl --enable-version3 --enable-nonfree --enable-shared --enable-libmp3lame --enable-libx264 --enable-libx265 --enable-libfaac --enable-libvpx --enable-libvorbis --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopencore-amrnb --enable-libtheora --enable-libxvid --enable-libfdk_aac --enable-libopus --enable-libass make clean && make && make install make tools/qt-faststart cp tools/qt-faststart /usr/local/bin/ ldconfig