Recently, I needed to install
ffmpeg on my EC2 instance and I struggled quite a bit to set it up. The issue was that my EC2 instance is running Amazon Linux based AMI which is probably based on some version of CentOS. For Debian and Ubuntu distributions,
ffmpeg is available as a
apt-get package but for other distributions you have to manually compile it. To be fair
ffmpeg has provided a compilation guide for CentOS but for lazy people, it is too much of an effort. :)
Finally, I found a solution that worked perfectly so I thought of sharing it here. Here’s the step by step guide.
Step 1: SSH into your instance and become root
sudo su -
Step 2: Go to the
Step 3: Inside the
/usr/local/bin directory, create an
ffmpeg directory and go inside it.
mkdir ffmpeg && cd ffmpeg
Step 4: Download a static build of
Go to the following link and download a static build relevant for your system.
FFmpeg Static Builds
Welcome! Here you'll find the latest versions of FFmpeg for Linux kernels 2.6.32 and up. For installation instructions…
To check if your system is 32-bit or 64-bit you can execute the following command:
It will output something like:
Linux ip-172-31-1-100 4.9.62-21.56.amzn1.x86_64 #1 SMP Thu Nov 16 05:37:08 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Note: That last
i386 indicates that it’s 32-bit;
x86_64 indicates 64-bit.
Also, by hit and trial, I found out that the processor is AMD and not ARM. Inside the
/usr/local/bin/ffmpeg folder run this command to download the static binaries.
Step 5: Unzip the binaries
Use the following command to unzip the binaries.
tar -xf ffmpeg-release-amd64-static.tar.xz
This will create a folder named
ffmpeg-4.2.1-amd64-static . Go inside this folder to check if
ffmpeg has been installed successfully or not.
It should output something like:
ffmpeg version 4.2.1-static https://johnvansickle.com/ffmpeg/ .
Hyper fast Audio and Video encoder
Now we will move to the outer folder.
cp -a /usr/local/bin/ffmpeg/ffmpeg-4.2.1-amd64-static/ . /usr/local/bin/ffmpeg/
Step 6: Create a symlink to use
ffmpeg from any location
Next, go ahead and create a symlink so that
ffmpeg can be run from any location.
ln -s /usr/local/bin/ffmpeg/ffmpeg /usr/bin/ffmpeg
Note: The first part
/usr/local/bin/ffmpeg/ffmpeg is where the file is located after I untarred the file. The second part
/usr/bin/ffmpeg is where we want the symlink to go
That’s it. You are done with the installation.
I found this solution on AWS forums and have shared it here so that it is easier to find. Here’s a link to the forum post.