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

8 Likes

More for reference at this point

Thank you, this resolved the issue for me!

It help me! but i have one more problem

command : rpm-ostree override remove mesa-va-drivers --install mesa-va-drivers-freeworld

Problem: package mesa-va-drivers-freeworld-23.0.2-1.fc38.i686 requires mesa-filesystem(x86-32) >= 23.0.2, but none of the providers can be installed
  - conflicting requests
  - mesa-filesystem-23.0.2-2.fc38.i686 has inferior architecture
  - package mesa-va-drivers-freeworld-23.0.2-1.fc38.x86_64 requires mesa-filesystem(x86-64) >= 23.0.2, but none of the providers can be installed
  - cannot install both mesa-filesystem-23.0.2-2.fc38.x86_64 and mesa-filesystem-23.0.1-2.fc38.x86_64
  • i don’t have any i686 package installed

Edit : Today was repo update and system update from Fedora and problem was resolved itself.

I’ve had issues with not being able to update my system after I removed all those base packages and installed ffmpeg-libs. Every time I ran rpm-ostree upgrade I would just get the message No upgrade available, even though running rpm-ostree upgrade --preview showed that there were updates available.

I reinstalled the base packages in addition to installing libavcodec-freeworld. Videos are playing back normally and I’m going to run this build for a while to see whether my system will update.

1 Like

It’s possible that I simply misunderstood how rpm-ostree works. I noticed again that I appeared to have an update available today when I ran rpm-ostree status, but rpm-ostree upgrade just produced No upgrade available. What I think happened is that my system auto-updated in the background, which caused a newer deployment to be available and ready to be used at the next reboot. After I rebooted rpm-ostree status showed that I was on the latest deployment.