These steps walk through installing a static binary of any ffmpeg version on to your linux machine. If you want to compile from source, there are several ways to do so. Here's the official guide. Tested and works on an AWS EC2 Ubuntu instance, but should work on any Linux machine.
-
SSH into your instance and become root
$ sudo su -
-
cd to the the
/usr/local/bin
directory$ cd /usr/local/bin
-
Inside the
/usr/local/bin
directory, create an/ffmpeg
directory$ mkdir ffmpeg
-
cd into the new directory
$ cd ffmpeg
-
Check the static build directory at:
- http://johnvansickle.com/ffmpeg/
- http://ffmpeg.gusari.org/static/64bit/
- select a version of ffmpeg or use the latest version alias, and
wget
it. Other FFmpeg static builds available here.
$ wget http://johnvansickle.com/ffmpeg/releases/ffmpeg-release-64bit-static.tar.xz
-
The file should now be in
/usr/local/bin/ffmpeg
. Untar it...$ tar xf ffmpeg-release-64bit-static.tar.xz
-
Run it and check what the latest version is
$ ./ffmpeg -version
The output should look something like this
ffmpeg version N-60675-g8fe1076
built on Feb 16 2014 05:45:47 with gcc 4.6 (Debian 4.6.3-1)
configuration: --prefix=/root/ffmpeg-static/64bit --extra-cflags='-I/root/ffmpeg-
static/64bit/include -static' --extra-ldflags='-L/root/ffmpeg-static/64bit/lib -static' --
extra-libs='-lxml2 -lexpat -lfreetype' --enable-static --disable-shared --disable-ffserver --
disable-doc --enable-bzlib --enable-zlib --enable-postproc --enable-runtime-cpudetect --
enable-libx264 --enable-gpl --enable-libtheora --enable-libvorbis --enable-libmp3lame --
enable-gray --enable-libass --enable-libfreetype --enable-libopenjpeg --enable-libspeex --
enable-libvo-aacenc --enable-libvo-amrwbenc --enable-version3 --enable-libvpx
libavutil 52. 64.100 / 52. 64.100
libavcodec 55. 52.102 / 55. 52.102
libavformat 55. 32.101 / 55. 32.101
libavdevice 55. 9.101 / 55. 9.101
libavfilter 4. 1.102 / 4. 1.102
libswscale 2. 5.101 / 2. 5.101
libswresample 0. 17.104 / 0. 17.104
libpostproc 52. 3.100 / 52. 3.100
- Move the contents of your static untarred folder into the parent
/ffmpeg
dir
$ mv * ../
- If you want to be able to execute
$ ffmpeg
from any directory, you'll need to create a symlink inside/usr/bin
:
$ ln -s /usr/local/bin/ffmpeg/ffmpeg /usr/bin/ffmpeg
$ ln -s /usr/local/bin/ffmpeg/ffprobe /usr/bin/ffprobe #for ffprobe
done. You are now able to run the $ ffmpeg
command from anywhere.
credit: this AWS forum thread
Thank you, you saved me a lot of hassle.