No h264 support on Leap 16.0

Hi all,

I’ve freshly installed Leap 16.0 (gnome) and am having trouble getting h264 video to play.

VLC media player 3.0.21 Vetinari (revision 3.0.21-0-gdd8bfdbabe8)
[000055a560f427b0] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
[000055a560fd3650] main playlist: playlist is empty
[00007fc090c1aa10] gstdecode decoder error: no suitable decoder found
[00007fc090c1aa10] main decoder error: Codec `h264' (H264 - MPEG-4 AVC (part 10)) is not supported.

I believe openh264 was pre-installed by the leap 16.0 installer:

todd@localhost:~> sudo zypper search openh264
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...

S  | Name              | Summary                                  | Type
---+-------------------+------------------------------------------+-----------
i  | libopenh264-8     | H.264 codec library                      | package
   | libopenh264-devel | Development files for openh264           | package
i  | mozilla-openh264  | H.264 codec support for Mozilla browsers | package
   | openh264          | H.264 codec library                      | srcpackage

When following the instructions at OpenH264 - openSUSE Wiki, I receive the following error:

todd@localhost:~> sudo zypper in gstreamer-1.24-plugin-openh264 mozilla-openh264
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...
'mozilla-openh264' is already installed.
No update candidate for 'mozilla-openh264-2.6.0-2.suse1600.2.x86_64'. The highest available version is already installed.
'gstreamer-1.24-plugin-openh264' not found in package names. Trying capabilities.
No provider of 'gstreamer-1.24-plugin-openh264' found.
Resolving package dependencies...
Nothing to do.

What should my next step be in attempting to resolve the issue?

1 Like

Waiting for the Packman Repo being published?

1 Like

Which version of libopenh264? Look at:

zypper se -s libopenh264

Here’s what I see:

todd@localhost:~> zypper se -s libopenh264
Loading repository data...
Reading installed packages...

S  | Name              | Type    | Version                     | Arch   | Repository
---+-------------------+---------+-----------------------------+--------+---------------------
i  | libopenh264-8     | package | 2.6.0-2.suse1600.2          | x86_64 | repo-openh264 (16.0)
i  | libopenh264-8     | package | 2.6.0-2.suse1600.2          | x86_64 | repo-openh264
v  | libopenh264-8     | package | 2.6.0~noopenh264-160000.2.2 | x86_64 | repo-oss (16.0)
   | libopenh264-devel | package | 2.6.0-2.suse1600.2          | x86_64 | repo-openh264 (16.0)
   | libopenh264-devel | package | 2.6.0-2.suse1600.2          | x86_64 | repo-openh264
   | libopenh264-devel | package | 2.6.0~noopenh264-160000.2.2 | x86_64 | repo-oss (16.0)

You have added 2 times the libopen264 repo, I would delete one…

Yes sorry about that, I’m not really familiar with OpenSUSE yet, and have been stumbling around trying to solve this for a few hours. I’ve now removed the duplicate repo.

You can do this also in Myrlyn…

Or with zypper in terminal.

OK, that is correct, so apparently you need either ffmpeg-4 from Packman or possibly a higher version of vlc that can use libavcodec61 instead of libavcodec58_134 (but not being a regular user of vlc I might be wrong).
Other players should be able to use libopenh264-8 though.

For the record, I’m having the same difficulty with the default video player (Totem?)

I’ll definitely look into this though. Thank you for the lead!

So you are on Gnome? I was able to play .mp4 in Leap 16RC, but apparently something is different in the released version… stay tuned.
Meanwhile, at least Firefox with the default install (and the libopenh264-8 you already have) can play (at least some) h264 videos, for instance Big_Buck_Bunny

EDIT: smplayer and the underlying mpv work, while I can confirm that totem and showtime complain about a missing decoder (that cannot be found anywhere).

I can confirm that MPV is working for me too, as well as VLC from flathub. Thank you for your help!

The root problem is that (without Packman and without any HW-provided decoder) gstreamer cannot play h264, while ffmpeg can (using libopenh264-8), so players based on Gstreamer don’t play while player based on ffmpeg play at least the h264 level provided by libopenh264-8.
Try e.g.

gst-launch-1.0 -v playbin3 uri=file:///path/to/some/video.mp4

or

ffplay /path/to/some/video.mp4

Yes, for Leap 16 gstreamer-plugins-bad is built with openh264 disabled. So much about all success stories.

We’ve successfully added noopenh264 into SLES 16, and it will
therefore be available in openSUSE Leap 16.0 as well.

Yes, noopenh264 is available. Great achievement, except the only reason to add it was to actually build packages needing openh264 against it.

Great! As can be easily seen on Leap 16:

bruno@localhost:~> zypper info --provides gstreamer-plugins-bad |grep openh264
bruno@localhost:~>

while on Tumbleweed (for instance):

LT-B:~ # zypper --no-refresh info --provides gstreamer-plugins-bad |grep openh264
    gstreamer1(element-openh264dec)()(64bit)
    gstreamer1(element-openh264enc)()(64bit)
    libgstopenh264.so()(64bit)
    gstreamer-1.20-plugin-openh264 = 1.22.0
    gstreamer-plugin-openh264 = 1.26.6
LT-B:~ #

even if in the reference you linked I read:

  • Thanks to Bjorn gst-bad 1.26+ in openSUSE:Factory is already built
    directly against noopenh264, avoiding the need to use the restricted
    openSUSE:Factory:openh264 project for most builds

I’m a little lost here, is it just an overlooked config that can be easily fixed by a bug report or …?

1 Like

Sure, you can make a bug report.

The change log shows Leap 16 has this version of gstreamer-plugins-bad, from June 1st:

So Jun 01 2025 bjorn.lie@gmail.com

  • Update to version 1.26.2:

The change to gstreamer-plugins-bad to use noopenh264 was made some weeks later, on June 26th:

Thu Jun 26 13:02:47 UTC 2025 - Bjørn Lie bjorn.lie@gmail.com

  • Build with noopenh264, move plugin to main package.

So the change missed Leap16 by a few days, which is unfortunate. But Tumbleweed has the new version.

Something is wrong anyway. The OpenH264 Wiki page doesn’t even mention packman for Leap 16 any longer. So following the instructions there to install openh264 wouldn’t work, even once the Leap16 packman repo was available. Looks to me as if either the Wiki needs to be fixed (document adding packman repo and gstreamer vendor switch), or the gstreamer plugin needs to be updated…(?)

2 Likes

The latter.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.