Fedora 39: nothing provides libopenh264

I recently had a fresh F39 install. After a while, I tried to play a video in nautilus for the first time, but I encountered the error: “H.264 (High Profile) is required to play the file, but is not installed”

I tried to install it via Software, but needed things seem to be already installed in Software.
I also tried to follow instructions for enabling RPM Fusion on Fedora and install needed codecs from there, but it failed to install each time encountering an error like:

nothing provides libopenh264.so.7

And a few errors like:

package X from rpmfusion-free requires libswscale.so.7 (LIBSWSCALE_7) (64bit), but none of the providers can be installed.

I have tried removing all uninstallable gstream* stuff and removing everything from rpmfusion and everything uninstallable, media related from fedora and then installing rpmfusion repos and codecs again, but the error keeps popping up.
Now, I can’t even install obs-studio and vlc and telegram-desktop.
I was able to get videos played using the flatpak version of vlc, but seems like everything media-related native in fedora is broken.

For a detailed view of how the errors look when trying to install a media-depending app, take telegram-desktop for example, which gives the following output when trying to install:

user@pc:~$ sudo dnf install telegram-desktop -y
[sudo] password for user: 
Last metadata expiration check: 2:15:01 ago on Sat 06 Jan 2024 07:52:46 AM +0330.
Error: 
 Problem: conflicting requests
  - package telegram-desktop-4.11.3-1.fc39.x86_64 from rpmfusion-free requires libswscale.so.7()(64bit), but none of the providers can be installed
  - package telegram-desktop-4.11.3-1.fc39.x86_64 from rpmfusion-free requires libswscale.so.7(LIBSWSCALE_7)(64bit), but none of the providers can be installed
  - package telegram-desktop-4.13.1-1.fc39.x86_64 from rpmfusion-free-updates requires libswscale.so.7()(64bit), but none of the providers can be installed
  - package telegram-desktop-4.13.1-1.fc39.x86_64 from rpmfusion-free-updates requires libswscale.so.7(LIBSWSCALE_7)(64bit), but none of the providers can be installed
  - package ffmpeg-libs-6.0.1-3.fc39.i686 from @System conflicts with libswscale-free provided by libswscale-free-6.0-11.fc39.x86_64 from fedora
  - package ffmpeg-libs-6.0.1-3.fc39.i686 from @System conflicts with libswscale-free provided by libswscale-free-6.0.1-2.fc39.x86_64 from fedora-cisco-openh264
  - package ffmpeg-libs-6.0.1-3.fc39.i686 from @System conflicts with libswscale-free provided by libswscale-free-6.0.1-2.fc39.x86_64 from updates
  - problem with installed package ffmpeg-libs-6.0.1-3.fc39.i686
  - ffmpeg-libs-6.0-16.fc39.i686 from rpmfusion-free  does not belong to a distupgrade repository
  - ffmpeg-libs-6.0.1-3.fc39.i686 from rpmfusion-free-updates  does not belong to a distupgrade repository
  - nothing provides libopenh264.so.7()(64bit) needed by ffmpeg-libs-6.0-16.fc39.x86_64 from rpmfusion-free
  - nothing provides libopenh264.so.7()(64bit) needed by ffmpeg-libs-6.0.1-3.fc39.x86_64 from rpmfusion-free-updates
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip

I spotted similar threads such as this and this, but they weren’t so useful for my case and none gives a definitive answer.

It is provided by the package openh264 from the repository fedora-cisco-openh264.

1 Like

@vekruse
I ran:

sudo dnf config-manager --set-enabled fedora-cisco-openh264

and then,

user@pc:~$ sudo dnf install telegram-desktop
Last metadata expiration check: 0:01:07 ago on Sat 06 Jan 2024 02:08:11 PM +0330.
Error: 
 Problem: conflicting requests
  - package telegram-desktop-4.11.3-1.fc39.x86_64 from rpmfusion-free requires libswscale.so.7()(64bit), but none of the providers can be installed
  - package telegram-desktop-4.11.3-1.fc39.x86_64 from rpmfusion-free requires libswscale.so.7(LIBSWSCALE_7)(64bit), but none of the providers can be installed
  - package telegram-desktop-4.13.1-1.fc39.x86_64 from rpmfusion-free-updates requires libswscale.so.7()(64bit), but none of the providers can be installed
  - package telegram-desktop-4.13.1-1.fc39.x86_64 from rpmfusion-free-updates requires libswscale.so.7(LIBSWSCALE_7)(64bit), but none of the providers can be installed
  - package ffmpeg-libs-6.0.1-3.fc39.i686 from @System conflicts with libswscale-free provided by libswscale-free-6.0-11.fc39.x86_64 from fedora
  - package ffmpeg-libs-6.0.1-3.fc39.i686 from @System conflicts with libswscale-free provided by libswscale-free-6.0.1-2.fc39.x86_64 from fedora-cisco-openh264
  - package ffmpeg-libs-6.0.1-3.fc39.i686 from @System conflicts with libswscale-free provided by libswscale-free-6.0.1-2.fc39.x86_64 from updates
  - problem with installed package ffmpeg-libs-6.0.1-3.fc39.i686
  - ffmpeg-libs-6.0-16.fc39.i686 from rpmfusion-free  does not belong to a distupgrade repository
  - ffmpeg-libs-6.0.1-3.fc39.i686 from rpmfusion-free-updates  does not belong to a distupgrade repository
  - nothing provides libopenh264.so.7()(64bit) needed by ffmpeg-libs-6.0-16.fc39.x86_64 from rpmfusion-free
  - nothing provides libopenh264.so.7()(64bit) needed by ffmpeg-libs-6.0.1-3.fc39.x86_64 from rpmfusion-free-updates
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages)

As you can see, it is still failing.

Of course, I then appended --allowerasing which installed telegram-desktop by erasing existing i686 package of ffmpeg-libs. But, I cannot install ffmpeg yet:

user@pc:~$ sudo dnf install ffmpeg
Last metadata expiration check: 0:07:08 ago on Sat 06 Jan 2024 02:12:02 PM +0330.
Error: 
 Problem: conflicting requests
  - 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
  - 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
  - nothing provides libopenh264.so.7()(64bit) needed by ffmpeg-libs-6.0-16.fc39.x86_64 from rpmfusion-free
  - nothing provides libopenh264.so.7()(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 you want is the rpm openh264-2.3.1-2.fc39.x86_64
this comes from the Repo : fedora-cisco-openh264

how i found it is as follows.

rpm -qal|grep libopenh264.so.7
/usr/lib64/libopenh264.so.7

:~$ dnf provides /usr/lib64/libopenh264.so.7
created by dnf config-manager from https://brave-browser-rpm-release.s3.brave.com/x86_64/ 69 kB/s | 17 kB 00:00
Docker CE Stable - x86_64 20 kB/s | 5.4 kB 00:00
determining the fastest mirror (127 hosts)… done. [ === ] — B/s | 0 B --:-- ETA
Fedora 39 - x86_64 3.6 MB/s | 89 MB 00:24
Fedora 39 openh264 (From Cisco) - x86_64 4.7 kB/s | 2.5 kB 00:00
Fedora 39 - x86_64 - Updates 4.0 MB/s | 27 MB 00:06
determining the fastest mirror (18 hosts)… done. [ === ] — B/s | 0 B --:-- ETA
RPM Fusion for Fedora 39 - Free 721 kB/s | 639 kB 00:00
RPM Fusion for Fedora 39 - Free tainted 6.1 kB/s | 1.9 kB 00:00
RPM Fusion for Fedora 39 - Free - Updates 162 kB/s | 138 kB 00:00
RPM Fusion for Fedora 39 - Nonfree 474 kB/s | 259 kB 00:00
determining the fastest mirror (1 hosts)… done. [ === ] — B/s | 0 B --:-- ETA
RPM Fusion for Fedora 39 - Nonfree tainted 10 kB/s | 5.1 kB 00:00
RPM Fusion for Fedora 39 - Nonfree - Updates 162 kB/s | 72 kB 00:00
Fedora 39 - x86_64 - Updates Archive 5.8 MB/s | 48 MB 00:08
openh264-2.3.1-2.fc39.x86_64 : H.264 codec library
Repo : @System
Matched from:
Filename : /usr/lib64/libopenh264.so.7

openh264-2.3.1-2.fc39.x86_64 : H.264 codec library
Repo : fedora-cisco-openh264
Matched from:
Filename : /usr/lib64/libopenh264.so.7

regards peter

I have enabled fedora-cisco-openh264 and its file looks like this:

$ cat /etc/yum.repos.d/fedora-cisco-openh264.repo

[fedora-cisco-openh264]
name=Fedora $releasever openh264 (From Cisco) - $basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-cisco-openh264-$releasever&arch=$basearch
type=rpm
enabled=1
metadata_expire=14d
repo_gpgcheck=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=True

[fedora-cisco-openh264-debuginfo]
name=Fedora $releasever openh264 (From Cisco) - $basearch - Debug
metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-cisco-openh264-debug-$releasever&arch=$basearch
type=rpm
enabled=0
metadata_expire=14d
repo_gpgcheck=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=True

but I still see the errors when trying to install ffmpeg.

I don’t know why dnf didn’t automatically install oepnh264, but even after installing this rpm with “dnf install openh264-2.3.1-2”, I cannot install ffmpeg, getting the following errors:

sudo dnf install ffmpeg
Last metadata expiration check: 0:05:21 ago on Sat 06 Jan 2024 02:29:59 PM +0330.
Error: 
 Problem: problem with installed package libswscale-free-6.0.1-2.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.1-2.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.1-2.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)

But, then appending --allowerasing this time allowed installing ffmpeg by removing individual ffmpeg components already installed from cisco repo. So, the culprit seemed to be having multiple components of ffmpeg available both in fedora, cisco and rpmfusion repos.

Nevertheless, after all these changes, I still can’t play videos in Nautilus :frowning:

Have you tried
sudo dnf install ffmpeg --allowerasing

i use ffmpeg-free-6.0.1-2.fc39.x86_64
try that

regards peter

That is the version missing some codec. The ffmpeg packages is a plugin replacement which includes the missing codecs.

ffmpeg -codecs
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_v4l2m2m h264_qsv libopenh264 h264_cuvid ) (encoders: libx264 libx264rgb libopenh264 h264_amf h264_nvenc h264_qsv h264_v4l2m2m h264_vaapi )

The libavcodec-free etc should indeed be replaced by ffmpeg-libs. They did come from the fedora or updates repository and not from fedora-cisco-openh264.

Actually this worked. But, mp4 files don’t play yet. Now, I’m trying the following command, which amazingly runs in this order unlike previous times:

sudo dnf install gstreamer1-plugins-{bad-\*,good-\*,base} gstreamer1-plugin-openh264 gstreamer1-libav --exclude=gstreamer1-plugins-bad-free-devel

I hope this will be the final solution and the mp4 files will open. I’ll update on this.

dnf remove mesa-vdpau-drivers-23.1.1-1.fc38.x86_64 mesa-va-drivers-23.1.1-1.fc38.x86_64

dnf install qt5-qtwebengine-freeworld.x86_64 audacious-plugins-freeworld.x86_64 gstreamer1-plugins-bad-freeworld.x86_64 libavcodec-freeworld.x86_64 mesa-va-drive
rs-freeworld.x86_64 mesa-vdpau-drivers-freeworld.x86_64 xpra-codecs-freeworld.x86_64 --allowerasing
i play mp4 files with both vlc and mpv no problem on my PC

I confirm that now I’m able to play mp4 videos on Fedora 39 and I have ffmpeg (not ffmpeg-free) installed without any problem. Thanks

1 Like

Probably, an important missing part in all my previous attempts was installing the openh264 package. For years I didn’t have a clue the small fedora-cisco-openh264 repository was so crucial for media support in Fedora :slight_smile:

1 Like