Unable to install ffmpeg-libs on Fedora 38 Silverblue beta

I’m unable to install ffmpeg-libs from the rpmfusion-free repo due to a package conflict with libavcodec-free:

[michael@fedora ~]$ rpm-ostree install ffmpeg-libs
Checking out tree 5bbcba5... done
Enabled rpm-md repositories: fedora-cisco-openh264 fedora-modular updates-modular updates-testing-modular updates-testing updates fedora rpmfusion-free-updates-testing rpmfusion-free updates-archive
Importing rpm-md... done
rpm-md repo 'fedora-cisco-openh264' (cached); generated: 2023-03-14T10:56:46Z solvables: 4
rpm-md repo 'fedora-modular' (cached); generated: 2023-03-18T09:26:05Z solvables: 1082
rpm-md repo 'updates-modular' (cached); generated: 2018-02-20T19:18:14Z solvables: 0
rpm-md repo 'updates-testing-modular' (cached); generated: 2018-02-20T19:18:14Z solvables: 0
rpm-md repo 'updates-testing' (cached); generated: 2023-03-18T04:47:38Z solvables: 9221
rpm-md repo 'updates' (cached); generated: 2018-02-20T19:18:14Z solvables: 0
rpm-md repo 'fedora' (cached); generated: 2023-03-18T09:33:36Z solvables: 68997
rpm-md repo 'rpmfusion-free-updates-testing' (cached); generated: 2023-03-18T10:55:16Z solvables: 12
rpm-md repo 'rpmfusion-free' (cached); generated: 2023-03-18T11:06:37Z solvables: 471
rpm-md repo 'updates-archive' (cached); generated: 2022-11-11T05:17:33Z solvables: 0
Resolving dependencies... done
error: Could not depsolve transaction; 1 problem detected:
 Problem: conflicting requests
  - package ffmpeg-libs-6.0-4.fc38.i686 conflicts with libavcodec-free provided by libavcodec-free-6.0-1.fc38.x86_64
  - package ffmpeg-libs-6.0-4.fc38.x86_64 conflicts with libavcodec-free provided by libavcodec-free-6.0-1.fc38.x86_64

What is the right way to solve this issue? Should I remove libavcodec-free? And what is libavcodec-free anyway?

One of those conflicts is an i686 package.
Yes you can remove libavcodec-free
I would recommend that you remove libavcodec-free (provided from fedora & codec limited) and replace it with libavcodec-freeworld (provided from rpmfusion & with almost all av codecs available)
ffmpeg-libs is also from rpmfusion.
dnf swap libavcodec-free libavcodec-freeworld --allowerasing should manage that.

libavcodec is a library providing audio & visual codecs for encoding and decoding av files. Libavcodec-free has only part of the available codecs due to the restriction within fedora about distributing software with copyright, patent, or licensing restrictions. The one from rpmfusion does not have those limitations.

Ok, but I can’t use dnf because I’m on Fedora Silverblue. Is there an equivalent variant for rpm-ostree?

something like
rpm-ostree upgrade --install ffmpeg-libs --uninstall libavcodec-free
or
rpm-ostree override remove libavcodec-free --install ffmpeg-lbs

Can you try rpm-ostree install libavcodec-freeworld? libavcodec-freeworld also provides codec like ffmpeg but does not need to override it.

This one doesn’t work because libavcodec-free is not a layered package:

[michael@fedora ~]$ rpm-ostree upgrade --install ffmpeg-libs --uninstall libavcodec-free
error: Package/capability 'libavcodec-free' is not currently requested

This one unfortunately results in two package conflicts:

[michael@fedora ~]$ rpm-ostree override remove libavcodec-free --install ffmpeg-libs
Checking out tree 5bbcba5... done
Enabled rpm-md repositories: fedora-cisco-openh264 fedora-modular updates-modular updates-testing-modular updates-testing updates fedora rpmfusion-free-updates-testing rpmfusion-free updates-archive
Importing rpm-md... done
rpm-md repo 'fedora-cisco-openh264' (cached); generated: 2023-03-14T10:56:46Z solvables: 4
rpm-md repo 'fedora-modular' (cached); generated: 2023-03-18T09:26:05Z solvables: 1082
rpm-md repo 'updates-modular' (cached); generated: 2018-02-20T19:18:14Z solvables: 0
rpm-md repo 'updates-testing-modular' (cached); generated: 2018-02-20T19:18:14Z solvables: 0
rpm-md repo 'updates-testing' (cached); generated: 2023-03-19T03:18:24Z solvables: 9297
rpm-md repo 'updates' (cached); generated: 2018-02-20T19:18:14Z solvables: 0
rpm-md repo 'fedora' (cached); generated: 2023-03-18T09:33:36Z solvables: 68997
rpm-md repo 'rpmfusion-free-updates-testing' (cached); generated: 2023-03-18T10:55:16Z solvables: 12
rpm-md repo 'rpmfusion-free' (cached); generated: 2023-03-18T11:06:37Z solvables: 471
rpm-md repo 'updates-archive' (cached); generated: 2022-11-11T05:17:33Z solvables: 0
Resolving dependencies... done
error: Could not depsolve transaction; 2 problems detected:
 Problem 1: package libavformat-free-6.0-1.fc38.x86_64 requires libavcodec-free(x86-64) = 6.0-1.fc38, but none of the providers can be installed
  - conflicting requests
 Problem 2: conflicting requests
  - package ffmpeg-libs-6.0-4.fc38.i686 conflicts with libavfilter-free provided by libavfilter-free-6.0-1.fc38.x86_64
  - package ffmpeg-libs-6.0-4.fc38.x86_64 conflicts with libavfilter-free provided by libavfilter-free-6.0-1.fc38.x86_64

I’m able to install libavcodec-freeworld without any issues, but videos are still not playing in Firefox. I’ve made sure to reboot after the install.

Looks like Firefox lacks support for ffmpeg 6.0: https://bugzilla.mozilla.org/show_bug.cgi?id=1823074

That might be why installing libavcodec-freeworld doesn’t solve the issue. Version 112 of Firefox will have ffmpeg 6.0 support, so I’ll check whether video playback works once it’s available for Fedora 38.

EDIT: I just tried out Firefox beta 112 using Flatpak, and I can confirm that H.264 works after installing libavcodec-freeworld.

More for reference at this point:
rpm-ostree override remove libavcodec-free libavfilter-free libavformat-free libavutil-free libpostproc-free libswresample-free libswscale-free --install ffmpeg

2 Likes