How do I play videos and livestreams of websites in Firefox?

Since I first installed Fedora 38 Workstation (meanwhile I upgraded to Fedora 39 Workstation), I couldn’t play videos and livestreams of almost all websites that I tried in Firefox. I remeber that I got an error message on one website but on most websites, I don’t get an error message, it just doesn’t work.

I told the problem the support of one of the websites which I tried. They informed me, that their technical department told them, that the support of HLS (whatever this means) isn’t available by default in most Linux versions because of patent law reasons. To play the streams without problems, I’d need to install the necessary Fedora packages.

Is it a (Fedora) package or a Firefox problem?

I found this Can't play videos in Firefox - #10 by computersavvy but I don’t want to install the flatpak version of Firefox, if possible.

How can I play videos and livestreams?

Note that the fedora version of firefox is codec limited by the way fedora is codec limited.

Following the steps shown here may help

2 Likes

From a quick search, HLS isn’t widely supported in browsers (including Chrome), but websites can use a JS ‘polyfill’ implementation, so any patent issues should be irrelevant.

I’d guess that codec support is the issue. You need libavcodec-freeworld from RPM Fusion for H.264 and H.265.

2 Likes

And also ffmpeg-libs and its dependencies. Also get openh264, gstreamer1-plugin-openh264 and mozilla-openh264 from fedora-cisco-openh264.

You need either libavcodec-freeworld or ffmpeg-libs. Installing both is harmless but unnecessary, and installing the latter requires removing several Fedora packages.

I almost mentioned openh264, but it seems that mozilla-openh264 isn’t used for video playback and Firefox doesn’t support GStreamer anymore.

@computersavvy @chrisawi @vekruse Before, almost all videos and livestreams couldn’t even be started. Then I executed the 3 commands specified on Installing plugins for playing movies and music :: Fedora Docs. After I did that, I could at least start the videos and livestreams. However, after approx. 1 min. either the video gets stuck and the audio continues to play or the whole video is cancelled directly. So this improved the problem but wasn’t the breakthrough.

Is RPM Fusion or RPM Fusion for H.264 and H.265 a non-default repo that needs to be added first?

Yes.
Instructions at Configuration - RPM Fusion

On

I’d like to do the Command Line Setup using rpm.

Does ‘Fedora with dnf’ or ‘On Fedora, we default to use the openh264 library, so you need the repository to be explicitely enabled’ or both paragraphs apply to me and can I ignore ‘Silverblue with rpm-ostree’?

Do both of those. And you can ignore the Silverblue instructions.

1 Like

@chrisawi @vekruse @computersavvy I’ve thought about it again. Possibly I made the second step before the first:

On the whole website

libavcodec-freeworld doesn’t appear.

In order to install libavcodec-freeworld, is it necessary to execute any of the commands on this website, at all, and if applicable, is it these commands that I need to execute:

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
sudo dnf config-manager --enable fedora-cisco-openh264

?

Yes.

fedora-cisco-openh264 should already be enabled, but doing it again won’t hurt.

1 Like

And what about libavcodec-freeworld? Does the package need to be installed separately or is it included in the above 2 commands, although it doesn’t appear within the command lines?

Yes, it needs to be installed separately.

rpmfusion-free-release is a package that contains the repo configuration (/etc/yum.repos.d/rpmfusion-free*.repo) for RPM Fusion Free. Once that is installed, you can install packages in that repo such as libavcodec-freeworld.

1 Like

@chrisawi I installed libavcodec-freeworld. First, the problem wasn’t solved. Then I opened ‘Software’>Updates and clicked the circular arrow (Refresh) and a few updates were displayed. I downloaded all these updates and clicked Restart and Install Updates. After the restart, I checked again on several websites, whether it’s possible to play videos and livestreams. All worked.

For the case that there might be further problems, I leave this topic open for a few days.

I usually install VLC music and video player which also installs most (all?) of the codecs I could ever require.
Fedora Docs does mention this at the foot of the page about Installing plugins for playing music and video

It may not be the granular, purist approach, but it is very easy and it just works. And I always need a music and video player anyway and vlc is a decent choice of graphical player.

Unfortunately for many, with the release of fedora 39 VLC and MPV have both been moved from rpmfusion to fedora for distribution. As such many codecs previously included in those packages have been stripped out because of the restrictions fedora has about distributing those codecs.

It seems a user must now either install ffmpeg and ffmpeg-libs or install libavcodec-freeworld (both from rpmfusion) to have those extra codecs that were previously included when installing either VLC or MPV.

That documentation page has not yet caught up to the actual conditions. Older versions of fedora still use the fully contained MPV and VLC.

Why did RPMFusion stop delivering the package?

❯ sudo dnf whatprovides vlc

Gives me…

Last metadata expiration check: 0:03:34 ago on Thu 25 Jan 2024 21:20:24 GMT.
vlc-1:3.0.19-1.fc39.x86_64 : The cross-platform open-source multimedia framework, player and server
Repo        : rpmfusion-free
Matched from:
Provide    : vlc = 1:3.0.19-1.fc39

vlc-1:3.0.20-7.fc39.x86_64 : The cross-platform open-source multimedia framework, player and server
Repo        : @System
Matched from:
Provide    : vlc = 1:3.0.20-7.fc39

vlc-1:3.0.20-9.fc39.x86_64 : The cross-platform open-source multimedia framework, player and server
Repo        : updates
Matched from:
Provide    : vlc = 1:3.0.20-9.fc39

So I’m guessing the first listing is where I installed it from in Fedora 37, ie rpmfusion-free.

The second is my currently installed version (@system) and the third shows that vlc is now sourced from updates ie the main Fedora repository updates. It will update vlc next update to 1:3.0.20-9.fc39

I went from Fedora 37 direct to 39, so I’m guessing that I am not necessarily updating all of my codecs each time I …

sudo dnf upgrade --refresh

I think I probably need to “reassess” when we got to 40 and do a fresh install under the new regime.

Sometimes I applaud Fedora’s “sticking to principles”, it makes it a distinctive and principled distribution that has “all of the options”, just not necessarily in the places you might expect them.

Other times it’s just a pain in the @?$£ (UK spellings).

The first listing is simply because vlc was in rpmfusion-free when F39 was released. That repo is ‘frozen’ with updates appearing in rpmfusion-free-updates, just like fedora and updates.

Anyone on F39 with RPM Fusion enabled would see the same.

It appears that fedora decided to include the packages. I think they previously were only available from rpmfusion because they included all the available codecs so fedora could not distribute them. Apparently it was decided to strip out the offending codecs and package the apps for distribution by fedora.

This means that the restricted codecs now must be added separately from the multimedia players with either ffmpeg or libavcodec-freeworld when users want the extra codecs.