This is an updated and simplified guide based on a previous blog and the official ffmpeg compilation instructions.
http://interknighterrant.blogspot.com/2014/03/replace-libav-with-ffmpeg-in-lm16.html
https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
As a bonus, I decided to jot down notes as to what some more interesting (to me) commands actually are doing.
Installing Requirements
sudo apt-get update
sudo apt-get 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 libfdk-aac-dev libx264-dev x264 libopus-dev libvpx-dev
Remove libav (not installed by default)
sudo apt-get --purge remove libav-tools
Downloading and Preparing ffmpeg
mkdir $HOME/Downloads/ffmpeg
cd $HOME/Downloads/ffmpeg
wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && tar xjvf ffmpeg-snapshot.tar.bz2
cd ffmpeg
Compiling and Installing 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-makelibtheora --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="2:`./version.sh`" --backup=no --deldoc=yes --fstrans=no --defaultTwo things interesting about this command. (1) checkinstall creates a .deb and installs it, which I thought was VERY cool when I came across it a few years ago. And (2) the `./version.sh` will update with each new release of ffmpeg as it calls the script that will simply print the ffmpeg version... this is a vast improvement over my old tutorial. Can't remember where I stumbled on this, but it stuck in my head and I have been using it for a bit.
Updating ldconfig
We need to tell Linux that there are some library files located in /usr/local/lib. How about we do this and practice using the terminal, shall we? If you prefer to do this via gedit look at the last guide I made for LM16.sudo cp /etc/ld.so.conf /etc/ld.so.conf.buCreate a BU of the configuration file.
cp /etc/ld.so.conf /tmp/ld.so.confCopy (as user) the configuration file into the /tmp folder (which is deleted every boot).
echo "/usr/local/lib" >> /tmp/ld.so.confAdd a new line to the end of the temporary (user owned) configuration file with the text "/usr/local/lib" (this is called "appending" text to a document).
sudo cp /tmp/ld.so.conf /etc/ld.so.confAs root, copy (and replace) the configuration file with the temporary configuration file.
sudo ldconfig -vUpdate library locations with ldconfig.
Testing!
ffmpeg -version
Aww yeah... sweet old success!ffmpeg version 2.6.git Copyright (c) 2000-2015 the FFmpeg developers built with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1) 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 --enable-avresample --enable-pic --enable-avisynth libavutil 54. 22.100 / 54. 22.100 libavcodec 56. 34.100 / 56. 34.100 libavformat 56. 29.100 / 56. 29.100 libavdevice 56. 4.100 / 56. 4.100 libavfilter 5. 13.101 / 5. 13.101 libavresample 2. 1. 0 / 2. 1. 0 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 1.100 / 1. 1.100 libpostproc 53. 3.100 / 53. 3.100
Removing ffmpeg installed with this guide / uninstall ffmpeg
sudo apt-get --purge remove ffmpeg
Re-installing libav after removal of ffmpeg
If desired, libav-tools is not installed by default in Linux Mint and might only be necessary if other software requires it.sudo apt-get install libav-tools
Final Thoughts
I have used these same steps on several Linux Mint 17 and Linux Mint 17.1 builds now (I think this is my 5th time) and I have not had any issues. I use a few utilities tied in with .nemo_action scripts to automate some media tasks (like de-interlacing, adding an intro video, etc). I would love any suggestions on improvement to the process and I have fixed comments (I apologize to past readers who tried to comment and it would never show the comments).The compilation guide for ffmpeg has you compile a lot of programs. After looking at repository versions compared to current stable versions, I found with the latest Linux Mint it just was not worth compiling all these different programs. Maybe if the libraries update in the next year or two I may feel inclined to do that though.
No comments:
Post a Comment