The popular FFmpeg multi-media library released version 5.0 recently. Here’s how to install it in Ubuntu 20.04, Ubuntu 18.04 and/or Ubuntu 16.04 via PPA.
FFmpeg 5.0, codename “Lorentz”, is a new major release that features:
- remove the old encode/decode APIs and replace them with an N:M-based API.
- new easy to use AVframe-based API for libswscale.
- remove the entire libavresample library.
- Many new filters.
- ADPCM IMA Westwood encoder, Apple Graphics (SMC) encoder, VideoToolbox ProRes encoder
- ADPCM IMA Acorn Replay decoder, GEM Raster image decoder.
- DoVi support, and more in ffmpeg.org.
Install FFmpeg 5.0 in Ubuntu:
IMPORTANT: Upgrading FFmpeg is not recommended for beginners! It may conflict with other packages in your system. Use it at your own risk!
Rob Savoury has built the FFmpeg 5.0 packages into PPA for all the current Ubuntu LTS releases. Though the updates is suspend due to lack of donations. The PPA still works, and if you find it’s useful you may help by making donations (see the previous link).
1.) Add the PPAs
Firstly, press Ctrl+Alt+T on keyboard to open a terminal window. When it opens, run command to add the PPA:
sudo add-apt-repository ppa:savoury1/ffmpeg5
Also add the FFmpeg4 PPA which contains the dependency libraries:
sudo add-apt-repository ppa:savoury1/ffmpeg4
2.) Update package cache:
If you’re running Ubuntu 18.04 or Ubuntu 16.04, you need to manually refresh the system package cache by running command:
sudo apt update
3.) Upgrade FFmpeg to 5.0:
Finally, run the command below to install all the available updates including FFmpeg 5:
sudo apt full-upgrade
NOTE: This command may remove some apps on your system due to package conflict! DO CHECK the terminal output before typing ‘y‘ to confirm installation!
When everything’s done successfully, verify via ffmpeg -version
command.
How to Restore:
You may purge the two PPAs which also downgrade all the installed packages. Firstly, install the ppa-purge tool via command:
sudo apt install ppa-purge
Then purge the PPAs via the commands below one by one:
sudo ppa-purge ppa:savoury1/ffmpeg5
sudo ppa-purge ppa:savoury1/ffmpeg4
NOTE: The downgrade process may also remove some other apps. Keep an eye on terminal output before performing the action!
Thanks for the guide, but this doesn’t work. There seems to be a missing dependency on:
“`
libavcodec59 : Depends: libx264-163 (>= 2:0.163.3060+git5db6aa6) but it is not installable
“`
see:
“`
$ sudo apt install ffmpeg
Reading package lists… Done
Building dependency tree
Reading state information… Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
ffmpeg : Depends: libavcodec59 (= 7:5.0-2ubuntu0~20.04.sav1)
Depends: libavdevice59 (= 7:5.0-2ubuntu0~20.04.sav1) but it is not going to be installed
Depends: libavfilter8 (= 7:5.0-2ubuntu0~20.04.sav1)
Depends: libavformat59 (= 7:5.0-2ubuntu0~20.04.sav1)
E: Unable to correct problems, you have held broken packages.
“`
and more specifically:
“`
sudo apt-get install libavcodec59
Reading package lists… Done
Building dependency tree
Reading state information… Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
libavcodec59 : Depends: libx264-163 (>= 2:0.163.3060+git5db6aa6) but it is not installable
E: Unable to correct problems, you have held broken packages.
“`
In my case, to make sure I got all the dependencies right, first I uninstalled
ffmpeg
; then I added Savory’s PPA and installed bothffmpeg4
andffmpeg5
PPAs, as suggested in this article (as well as on Savory’s own instructions).This ensured that there were no ‘dangling dependencies’ around, as seems to be your case.
NOTE FOR ALL: This PPA depends on the FFmpeg 4.4 PPA for building and also install. So do the following steps for successfully installing FFmpeg 5.0:
sudo add-apt-repository ppa:savoury1/ffmpeg4
sudo add-apt-repository ppa:savoury1/ffmpeg5
sudo apt-get update
sudo apt-get upgrade && sudo apt-get dist-upgrade
sudo apt-get install ffmpeg
Read notes at https://launchpad.net/~savoury1/+archive/ubuntu/ffmpeg4 for more information about various multimedia packages that FFmpeg depends on.
@ck: Does not work.
The following packages have unmet dependencies:
ffmpeg : Depends: libavcodec59 (= 7:5.1.3-0ubuntu1~20.04.sav0)
Depends: libavdevice59 (= 7:5.1.3-0ubuntu1~20.04.sav0) but it is not going to be installed
Depends: libavfilter8 (= 7:5.1.3-0ubuntu1~20.04.sav0)
Depends: libavformat59 (= 7:5.1.3-0ubuntu1~20.04.sav0)
E: Unable to correct problems, you have held broken packages.
u
Not working at all
“The following packages have unmet dependencies:
ffmpeg : Depends: libavcodec59 (= 7:5.1.3-0ubuntu1~20.04.sav0)
Depends: libavdevice59 (= 7:5.1.3-0ubuntu1~20.04.sav0) but it is not going to be installed
Depends: libavfilter8 (= 7:5.1.3-0ubuntu1~20.04.sav0)
Depends: libavformat59 (= 7:5.1.3-0ubuntu1~20.04.sav0)
E: Unable to correct problems, you have held broken packages.”
@Gwyneth Llewelyn I did also uninstall ffmpeg and added the ffmpeg4 and ffmpeg5 repositories :
$ apt policy ffmpeg
ffmpeg:
Installed: (none)
Candidate: 7:5.1.3-0ubuntu1~20.04.sav0
Version table:
7:5.1.3-0ubuntu1~20.04.sav0 500
500 http://ppa.launchpad.net/savoury1/ffmpeg5/ubuntu focal/main amd64 Packages
7:4.4.4-0ubuntu1~20.04.sav0 500
500 http://ppa.launchpad.net/savoury1/ffmpeg4/ubuntu focal/main amd64 Packages
7:4.2.7-0ubuntu0.1 500
500 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages
500 http://fr.archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages
7:4.2.2-1ubuntu1 500
500 http://fr.archive.ubuntu.com/ubuntu focal/universe amd64 Packages
and then I did the apt upgrade and dist-upgrade steps.
However, ffmpeg cannot be installed :
sudo apt install -V ffmpeg
[sudo] password for sebastien:
Reading package lists… Done
Building dependency tree
Reading state information… Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
ffmpeg : Depends: libavcodec59 (= 7:5.1.3-0ubuntu1~20.04.sav0)
Depends: libavdevice59 (= 7:5.1.3-0ubuntu1~20.04.sav0) but it is not going to be installed
Depends: libavfilter8 (= 7:5.1.3-0ubuntu1~20.04.sav0)
Depends: libavformat59 (= 7:5.1.3-0ubuntu1~20.04.sav0)
E: Unable to correct problems, you have held broken packages.
By re-reading https://launchpad.net/~savoury1/+archive/ubuntu/ffmpeg5 , I noticed that it now says :
*** Install ***
FFmpeg builds here depend on the public FFmpeg PPA (ppa:savoury1/ffmpeg4), and the new private FFmpeg PPA (ppa:savoury1/ffmpeg) for installation. Any who have donated can contact me requesting access to the private PPA. Once you have been granted private PPA access do these steps for installation:
sudo add-apt-repository ppa:savoury1/ffmpeg4
sudo add-apt-repository ppa:savoury1/ffmpeg5
sudo apt-get update
sudo apt-get upgrade && sudo apt-get dist-upgrade
sudo apt-get install ffmpeg
I guess us guys need to donate in order to add the new “ppa:savoury1/ffmpeg” private PPA to make this work.