Install Latest libheif 1.18.2 in Ubuntu 24.04 | 22.04

Last updated: October 17, 2024 — 4 Comments

This simple tutorial shows how to install the latest version of libheif library, for better HEIF and AVIF image formats support, in Ubuntu 24.04, Ubuntu 22.04 and/or Ubuntu 20.04 LTS.

Libheif is a popular free open-source library for encoding and decoding HEIF and AVIF. Which, also has partial support for JPEG-in-HEIF, JPEG2000, uncompressed (ISO/IEC 23001-17:2023) capabilities.

It supports libde265 and/or ffmpeg for decoding HEIC images, and x265/kvazaar for encoding. For AVIF images, it uses either AOM/dav1d for decoding, and AOM/rav1e/svt-av1 for encoding support.

As well, it has command line tools to convert HEIF/HEIC to other images, and convert images to HEIF/HEIC.

Many popular applications, including GIMP, Darktable, ImageMagick, Krita, and gThumb, use libheif for HEIF and/or AVIF support. And, the library is usually installed as dependency along with them.

gThumb use libheif for AVIF support

However, libheif in Ubuntu system repositories is always old! While it has 1.6.1 (for 20.04) and 1.12.0 (for 22.04), the latest release is now 1.18.x with iOS 18 support.

So, if you want to use the library for new encoders/decoders, improved performances, and bug-fixes. Or, you just run into issue with current version. Then, installing the latest version is a good choice before reporting or asking for help!

And, with the latest release (1.18.x) so far, you’ll get following new features:

  • reads images generated by iOS 18
  • experimental codec plugins for VVC (vvenc/vvdec and uvg266)
  • experimental codec plugin for OpenJPH (High-throughput JPEG2000)
  • support ISO 23001-17 version 1 uncC minimized headers
  • support ISO 23001-17 images with ‘deflate’, ‘zlib’ and Brotli compression
  • heif-enc can read TIFF images
  • API functions to read/write raw items and item properties
  • For more, see github releases page.

Install Latest Libheif in Ubuntu via PPA

UPDATE: The official Ubuntu PPA for libheif seems no longer being updated!

For the more recent v1.18.2, I’ve uploaded it into this unofficial PPA for Ubuntu 20.04, Ubuntu 22.04, and Ubuntu 24.04 on amd64, arm64/armhf CPU platforms.

The package is backported from Debian upstream. However, due to outdated system libraries, there’s:

  • No kvazaar, no Rav1e/SVT AV1 encoder for Ubuntu 20.04.
  • No Rav1e AV1 encoder for Ubuntu 22.04

1. First, press Ctrl+Alt+T key combination on keyboard to open terminal. When it opens, run command to add the PPA:

sudo add-apt-repository ppa:ubuntuhandbook1/libheif

Type user password (no asterisk feedback) when it asks and hit Enter to continue.

2. Then, you can either use Software Updater (Update Manager) to upgrade your current library to the latest:

Or, run command in terminal to install/upgrade it:

sudo apt install libheif1 libheif-plugin-libde265

Linux Mint user need to run sudo apt update to refresh package cache first.

As you see in last screenshot, there are some encoder/decoder plugins NOT installed by default. Run sudo apt install plus the package name to install as you want.

At the moment, the plugins (encoder/decoders) include:

  • libheif-plugin-aomdec
  • libheif-plugin-j2kdec
  • libheif-plugin-libde265
  • libheif-plugin-aomenc
  • libheif-plugin-j2kenc
  • libheif-plugin-svtenc
  • libheif-plugin-dav1d
  • libheif-plugin-jpegdec
  • libheif-plugin-x265
  • libheif-plugin-ffmpegdec
  • libheif-plugin-jpegenc

There are as well heif-gdk-pixbuf for image loading, and libheif-examples package that provides heif-convert command (it’s no a link to heif-enc) to convert HEIC/HEIF image to other formats, and heif-enc to convert image to HEIC/HEIF.

Uninstall:

For any issue, you may purge the Ubuntu PPA, so to remove PPA repository, and downgrade all installed packages to the stock versions in system repository.

To do so, first open terminal (Ctrl+Alt+T) and run command to install ppa-purge tool:

sudo apt install ppa-purge

Then, purge the PPA (as well as downgrade packages) via command:

sudo ppa-purge ppa:ubuntuhandbook1/libheif

Tips: the ppa-purge may fail if you did something to PPA or the installed packages before purging. In the case, try installing synaptic package manager (from Ubuntu Software), then use it to search & force libheif1 package to old version (select the package, then press Ctrl+E).

After force downgrading the package, use the commands below to remove PPAs:

sudo add-apt-repository --remove ppa:ubuntuhandbook1/libheif

Twitter

I'm a freelance blogger who started using Ubuntu in 2007 and wishes to share my experiences and some useful tips with Ubuntu beginners and lovers. Please comment to let me know if the tutorial is outdated! And, notify me if you find any typo/grammar/language mistakes. English is not my native language. Contact me via ubuntuhandbook1@gmail.com Buy me a coffee: https://ko-fi.com/ubuntuhandbook1 |

4 responses to Install Latest libheif 1.18.2 in Ubuntu 24.04 | 22.04

  1. sudo apt install libheif1

    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:
    libheif1 : Depends: libheif-plugin-libde265 (= 1.17.6-1~ppa1~ubuntu20.04) but it is not going to be installed

    • Thank you for pointing out the issue.

      The package in that PPA now has a dependency library available in another PPA. So, you also need to run command below to add the dependency PPA before being able to install the package:

      sudo add-apt-repository ppa:strukturag/libde265
  2. Iphone 15 with iOS18 needs libheif 1.18+ to work. Any hope of getting this with 1.18?

Leave a Reply

Text formatting is available via select HTML.

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

*