Issues installing ffmpeg Fedora 39

Hello,
I have enabled rpmfusion repositories using this command:

sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

However, when I try to install ffmpeg via sudo dnf install ffmpeg I get this error:

Error: 
 Problem: package ffmpeg-6.0.1-3.fc39.x86_64 from rpmfusion-free-updates requires ffmpeg-libs(x86-64) = 6.0.1-3.fc39, but none of the providers can be installed
  - conflicting requests
  - nothing provides libx264.so.164()(64bit) needed by ffmpeg-libs-6.0.1-3.fc39.x86_64 from rpmfusion-free-updates
  - nothing provides libx265.so.199()(64bit) needed by ffmpeg-libs-6.0.1-3.fc39.x86_64 from rpmfusion-free-updates
(try to add '--skip-broken' to skip uninstallable packages)

What could be the cause of this? Thank you in advance.

Hi, Fedora Linux comes with free codec that conflicts with ffmpeg-libs. You have two options: You can install ffmpeg-free and libavcodec-freeworld using sudo dnf install ffmpeg-free libavcodec-freeworld, or you can replace the free codec with ffmpeg by using sudo dnf install ffmpeg --allowerasing.

However, I’m confused about the error message you’re encountering. Typically, you should see an error like this:

Error: 
 Problem: problem with installed package libswscale-free-6.0-11.fc39.x86_64
  - package ffmpeg-libs-6.0-16.fc39.x86_64 from rpmfusion-free conflicts with libswscale-free provided by libswscale-free-6.0-11.fc39.x86_64 from @System
  - package ffmpeg-libs-6.0-16.fc39.x86_64 from rpmfusion-free conflicts with libswscale-free provided by libswscale-free-6.0-11.fc39.x86_64 from fedora
  - package ffmpeg-libs-6.0-16.fc39.x86_64 from rpmfusion-free conflicts with libswscale-free provided by libswscale-free-6.0.1-2.fc39.x86_64 from updates
  - package ffmpeg-6.0-16.fc39.x86_64 from rpmfusion-free requires ffmpeg-libs(x86-64) = 6.0-16.fc39, but none of the providers can be installed
  - conflicting requests
  - package ffmpeg-6.0.1-3.fc39.x86_64 from rpmfusion-free-updates requires ffmpeg-libs(x86-64) = 6.0.1-3.fc39, but none of the providers can be installed
  - package ffmpeg-libs-6.0.1-3.fc39.x86_64 from rpmfusion-free-updates conflicts with libswscale-free provided by libswscale-free-6.0-11.fc39.x86_64 from @System
  - package ffmpeg-libs-6.0.1-3.fc39.x86_64 from rpmfusion-free-updates conflicts with libswscale-free provided by libswscale-free-6.0-11.fc39.x86_64 from fedora
  - package ffmpeg-libs-6.0.1-3.fc39.x86_64 from rpmfusion-free-updates conflicts with libswscale-free provided by libswscale-free-6.0.1-2.fc39.x86_64 from updates
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages)
1 Like

The RPM Fusion howto page for this suggests sudo dnf swap ffmpeg-free ffmpeg --allowerasing as the solution.

Can you please post:
sudo dnf repolist
sudo dnf list installed x26[45]\*

Thanks

This probably comes from not having the fedora-cisco-openh264 repo enabled.
Is that not one of the repos that is enabled when a user enables the 3rd party repos during first boot but is disabled by default?

To check the status of that repo one could use dnf repolist to list the enabled repos or dnf repolist all to show the status of all repos that are installed.

A simple way to enable that repo if it is currently disabled would be to use the command sudo dnf config-manager --enable fedora-cisco-openh264

1 Like

This strange as all packages that was mentioned comes from rpmfusion-free or from rpmfusion-free-updates.

ffmpeg.x86_64                               6.0.1-3.fc39                                   @rpmfusion-free-updates
ffmpeg-libs.x86_64                          6.0.1-3.fc39                                   @rpmfusion-free-updates
x264-libs.x86_64                            0.164-10.20231001git31e19f92.fc39              @rpmfusion-free        
x265-libs.x86_64                            3.5-6.fc39                                     @rpmfusion-free        

That could mean that some repository has been disable, or perhaps some packages are excluded in /etc/dnf/dnf.conf.

It appears that disabling the fedora-cisco-openh264 repository leads to this error, which I can confirm by reproducing the error after disabling it.

fedora-cisco-openh264 is always enabled by default, even if users opt out of enabling third-party repositories during setup. Testing on a virtual machine indicates that opting out only affects PyCharm, Google Chrome, Nvidia drivers, Steam, and Flathub.

Please ensure the fedora-cisco-openh264 repository is enabled before installing related codecs. You can also enable it from software center → software repositories.

@ Konstantin

You might have a previous (broken) installation of the rpmfusion repository or you might have disabled the rpmfusion-free repository where x264/x265 packages are provided (along rpmfusion-free-updates).

The fedora openh264 repository is also mandatory to provide the openh264 library but isn’t related to libx264/libx265 at all.

Can you provides the output of dnf repolist

and ls -ald /etc/yum.repos.d/*

Sure,

$ sudo dnf repolist
repo id                                                                                        repo name
code                                                                                           Visual Studio Code
copr:copr.fedorainfracloud.org:phracek:PyCharm                                                 Copr repo for PyCharm owned by phracek
copr:copr.fedorainfracloud.org:sunwire:envycontrol                                             Copr repo for envycontrol owned by sunwire
fedora                                                                                         Fedora 39 - x86_64
fedora-cisco-openh264                                                                          Fedora 39 openh264 (From Cisco) - x86_64
google-chrome                                                                                  google-chrome
rpmfusion-free-updates                                                                         RPM Fusion for Fedora 39 - Free - Updates
rpmfusion-nonfree-nvidia-driver                                                                RPM Fusion for Fedora 39 - Nonfree - NVIDIA Driver
rpmfusion-nonfree-steam                                                                        RPM Fusion for Fedora 39 - Nonfree - Steam
rpmfusion-nonfree-updates                                                                      RPM Fusion for Fedora 39 - Nonfree - Updates
updates                                                                                        Fedora 39 - x86_64 - Updates
$ sudo dnf list installed x26[45]\*
Error: No matching Packages to list

Yes,

$ ls -ald /etc/yum.repos.d/*
-rw-r--r--. 1 root root  376 Nov 25 14:53 /etc/yum.repos.d/_copr:copr.fedorainfracloud.org:phracek:PyCharm.repo
-rw-r--r--. 1 root root  392 Nov 26 12:07 /etc/yum.repos.d/_copr:copr.fedorainfracloud.org:sunwire:envycontrol.repo
-rw-r--r--. 1 root root  728 Oct  5 17:00 /etc/yum.repos.d/fedora-cisco-openh264.repo
-rw-r--r--. 1 root root 1239 Oct  5 17:00 /etc/yum.repos.d/fedora.repo
-rw-r--r--. 1 root root 1286 Oct  5 17:00 /etc/yum.repos.d/fedora-updates.repo
-rw-r--r--. 1 root root 1344 Oct  5 17:00 /etc/yum.repos.d/fedora-updates-testing.repo
-rw-r--r--. 1 root root  199 Nov 25 14:53 /etc/yum.repos.d/google-chrome.repo
-rw-r--r--. 1 root root 1264 Dec  8 20:59 /etc/yum.repos.d/rpmfusion-free-updates.repo
-rw-r--r--. 1 root root 1324 Nov  2 17:00 /etc/yum.repos.d/rpmfusion-free-updates-testing.repo
-rw-r--r--. 1 root root 1487 Nov 25 14:53 /etc/yum.repos.d/rpmfusion-nonfree-nvidia-driver.repo
-rw-r--r--. 1 root root 1391 Nov 25 14:53 /etc/yum.repos.d/rpmfusion-nonfree-steam.repo
-rw-r--r--. 1 root root 1309 Dec  8 21:00 /etc/yum.repos.d/rpmfusion-nonfree-updates.repo
-rw-r--r--. 1 root root 1369 Nov  2 17:00 /etc/yum.repos.d/rpmfusion-nonfree-updates-testing.repo
-rw-r--r--. 1 root root  164 Nov 26 21:28 /etc/yum.repos.d/vscode.repo

Where are rpmfusion-free and rpmfusion-nonfree.

You should have all of

/etc/yum.repos.d/rpmfusion-free-updates-testing.repo
/etc/yum.repos.d/rpmfusion-free-updates.repo
/etc/yum.repos.d/rpmfusion-free.repo
/etc/yum.repos.d/rpmfusion-nonfree-updates-testing.repo
/etc/yum.repos.d/rpmfusion-nonfree-updates.repo
/etc/yum.repos.d/rpmfusion-nonfree.repo

The are all installed from rpmfusion-free-release-39-1.noarch and rpmfusion-nonfree-release-39-1.noarch.

1 Like

Thank you for the lead!

It seems that only -updates repos were installed somehow; however most likely it was I who removed non-updates files from yum.repos.d and forgot.

I managed to resolve the issue by removing trailing repos via sudo yum remove rpmfusion-free-release rpmfusion-nonfree-release and installing them again. Then I installed ffmpeg by running sudo dnf swap ffmpeg-free ffmpeg --allowerasing. Thanks again everyone

An additional note:

I installed the RPM Fusion Free and the /etc/yum.repos.d/rpmfusion-free.repo was disabled by default.

To fix, use sudo nano /etc/yum.repos.d/rpmfusion-free.repo and change the “enabled=0” to “enabled=1” then press ctrl+s to save and crtl+x to exit.

After this all packages will be visible.

Added ffmpeg

I would guess this may be related to how you installed those repo packages.
When installing them following the instructions at rpmfusion they have always been enabled by default for me.