I prefer ffmpeg. I think their compilation instructions are good, but wish to completely replace libav on my system and use ffmpeg exclusively (not just limited to a single user). This isn't a post about why I make that choice, just a how I made it happen.
I have used the following pages in putting this how-to together:
- https://trac.ffmpeg.org/wiki/UbuntuCompilationGuide
- https://github.com/avxsynth/avxsynth/wiki/System-Setup
- http://www.crucialp.com/resources/tutorials/server-administration/how-to-install-ffmpeg-centos-rhel-redhat-enterprise-easy-way.php
I would love suggestions if there are ways to improve this process.
Compiling and Installation
Preparation
sudo apt-get update sudo apt-get -y install checkinstall autoconf automake build-essential libass-dev libgpac-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libx11-dev libxext-dev libxfixes-dev pkg-config texi2html zlib1g-dev libmp3lame-dev yasm mkdir ~/Downloads/ffmpeg cd ~/Downloads/ffmpeg wget http://download.videolan.org/pub/x264/snapshots/last_x264.tar.bz2 && tar xjvf last_x264.tar.bz2 wget -O fdk-aac.zip https://github.com/mstorsjo/fdk-aac/zipball/master && unzip fdk-aac.zip wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz && tar xzvf lame-3.99.5.tar.gz wget http://downloads.xiph.org/releases/opus/opus-1.1.tar.gz && tar xzvf opus-1.1.tar.gz wget http://webm.googlecode.com/files/libvpx-v1.3.0.tar.bz2 && tar xjvf libvpx-v1.3.0.tar.bz2 wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && tar xjvf ffmpeg-snapshot.tar.bz2 sudo apt-get --purge remove libav-tools
Ubuntu 12.04 ONLY, Installation: yasm 1.2
On Ubuntu 12.04 you need to compile the latest yasm, as the one in the repository is too old to work properly for the rest of the software compilations.
wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz && tar xzvf yasm-1.2.0.tar.gz cd ./yasm-1.2.0 sudo apt-get remove yasm ./configure make sudo checkinstall --pkgname=yasm --pkgversion="2:1.2.0" --backup=no --deldoc=yes --fstrans=no --default cd ../
Installing: libx264
cd ./x264-snapshot* ./configure --enable-static make sudo checkinstall --pkgname=libx264 --pkgversion="20140323-2245" --backup=no --deldoc=yes --fstrans=no --default cd ../
Installing: libfdk-aac
cd mstorsjo-fdk-aac* autoreconf -fiv ./configure --disable-shared make sudo checkinstall --pkgname=libfdk-aac --pkgversion="1.3" --backup=no --deldoc=yes --fstrans=no --default cd ../
Installing: libopus
cd opus-1.1 ./configure --disable-shared make sudo checkinstall --pkgname=libopus --pkgversion="1.1" --backup=no --deldoc=yes --fstrans=no --default cd ../
Installing: libvpx
cd libvpx-v1.3.0 ./configure --disable-examples make sudo checkinstall --pkgname=libvpx --pkgversion="1.3" --backup=no --deldoc=yes --fstrans=no --default cd ../
Installing: ffmpeg
cd ffmpeg ./configure --extra-cflags="-I/usr/local/include" --extra-ldflags="-L/usr/local/lib" --extra-libs="-ldl" --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab --enable-version3 --enable-postproc --enable-avresample --enable-pic --enable-avisynth make sudo checkinstall --pkgname=ffmpeg --pkgversion="7:2.1" --backup=no --deldoc=yes --fstrans=no --default cd ../
Final Adjustments
There is one thing left to do. We need to tell Linux that there are some library files located in /usr/local/lib
sudo gedit /etc/ld.so.conf
- Add the text "/usr/local/lib" on a new line at the bottom of the document.
- Save changes and close gedit
sudo ldconfig -v
Testing
ffmpeg -version
ffmpeg version 2.2.git built on Mar 24 2014 15:22:19 with gcc 4.8 (Ubuntu/Linaro 4.8.1-10ubuntu9) configuration: --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab --enable-version3 --enable-postproc libavutil 52. 69.100 / 52. 69.100 libavcodec 55. 54.100 / 55. 54.100 libavformat 55. 35.100 / 55. 35.100 libavdevice 55. 11.100 / 55. 11.100 libavfilter 4. 3.100 / 4. 3.100 libswscale 2. 5.102 / 2. 5.102 libswresample 0. 18.100 / 0. 18.100 libpostproc 52. 3.100 / 52. 3.100
Success!
Un-install
To Un-install any changes made from this how-to, simply remove the packages like this:
sudo apt-get --purge remove libx264 libfdk-aac libopus libvpx ffmpeg
You may at that point re-install libav-tools if you choose to, like this:
sudo apt-get install libav-tools
End Thoughts
My larger goal is to get avxsynth to install and function. With stability. The options "--enable-avresample --enable-pic --enable-avisynth" is for ffms2 and avxsynth to work properly.
I will be posting a how to when I have got that installation ironed out correctly.