Skip to content

Codecs

Installing Codecs⚓︎

Warning

The packman repository is not officially supported, not an openSUSE maintained repository, contains software that is not compatible with the GPL, and can potentially break multimedia in the system such as pipewire or wireplumber.

You need to play online or offline multimedia content, but the content does not play or you receive errors. Usually this is a sign of missing codecs. Due to legal limitations proprietary codecs can't be stored and served directly from the openSUSE/SUSE infrastructure. To install proprietary codec packages you will need to add the Packman repository and install the required software from there. Some commonly used and installed codecs are:

  • ffmpeg
  • gstreamer-plugins-good
  • gstreamer-plugins-bad
  • gstreamer-plugins-libav
  • gstreamer-plugins-ugly
  • libavcodec-full
  • vlc-codecs

Info

Tumbleweed users who only occasionally use codecs (for example through a web browser or a handful of dedicated applications such as VLC or OBS Studio) might find it convenient to avoid the addition of external repositories by using a version of these applications shipping with their own codecs. On Tumbleweed the advantage of this approach is more salient as codecs will be kept separate from system libraries, securing extra stability for the user. Interested readers may refer to this page for explanations.

You could get codecs using Zypper or YaST but you should get them with OBS Package Installer (opi) as there are complications and risks associated with the alternative methods.

Installing the Open Build Service Package Installer (opi)⚓︎

opi can be used to search and install software from the Open Build Service (OBS) and it works on Leap and Tumbleweed. The only limitation is that this method will consider Packman as the unique provider of all codecs — not just the proprietary ones which openSUSE cannot provide. Proceed if this limitation is acceptable for you. If it is not acceptable, consider using flatpaks (see the Info above).

From a terminal:

  1. Install opi, the Open Build Service command line utility: sudo zypper install opi
  2. Run the installer for Packman-provided codecs: opi codecs
  3. Confirm the prompt (y — if your system language is English — and then ENTER).

As of this writing, opi performs the following operations behind the curtains (see here for reference):

  1. Add the Packman repository suited to the user's distribution with a higher priority than the official repositories.
  2. Upgrade the system exclusively using the Packman repository.
  3. sudo zypper dist-upgrade --from packman --allow-downgrade --allow-vendor-change
  4. Install the codecs to the system.
  5. `sudo zypper in --from packman ffmpeg pipewire-aptx libavcodec-full vlc-codecs gstreamer-plugins-bad-codecs gstreamer-plugins-ugly-codecs gstreamer-plugins-libav
  6. sudo zypper in gstreamer-plugins-good gstreamer-plugins-good-extra gstreamer-plugins-bad gstreamer-plugins-ugly

Upgrading and installing packages using the option --from packman tells the system to set Packman as their unique, permitted provider. This means that updates from the openSUSE official repositories targeting the same packages will no longer be applied. This behaviour is intended for users who agree to have all their codecs provisioned by Packman.


Last update: 2022-06-14