If you use either Mozilla Firefox or Chromium, web browsers that come out-of-the-box with Linux Kamarada 15.2 RC, you may have come across a video that they can’t play. Error messages vary from site to site. Here are some examples:
Twitter: The media could not be played.
Facebook: Something Went Wrong. We're having trouble playing this video.
To put it shortly, this happens because your system is missing proprietary codecs. Today’s tip probably can help you solve this problem.
In case you didn’t know, Linux Kamarada is a Linux distribution based on openSUSE Leap, so the following tip also applies to openSUSE. Other distributions may present a similar problem and provide a similar way to solve it. If you use other distribution, check its documentation.
How to solve this problem
For Linux Kamarada and openSUSE users, the solution to this problem boils down to:
- Add the Packman repository, if you don’t have it already added to your system;
- Refresh the list of available packages from the online repositories; and
- Update the system packages allowing vendor change, that should cause some packages provided by openSUSE to be replaced by packages from Packman, which contains the missing proprietary codecs.
There are at least two ways to do this: through the graphical user interface, which can be more friendly especially for beginners, or through the command line interface.
Solving via the command line interface
The command line solution involves the zypper package manager. As explaining it is shorter, I’m going to start by it.
Run the following 3 commands, which correspond to the 3 steps above respectively, as administrator (root user):
1
2
3
# zypper ar -cfp 90 http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_15.2/ packman
# zypper ref
# zypper up --allow-vendor-change
Solving via the graphical user interface
Although it is more user friendly, the GUI solution requires a few clicks and goes through more screens. But the easiness more than makes up for the longer path.
Adding the Packman repository
Start the YaST Control Center by opening the Activities menu, on the top-left screen corner, typing yast
and clicking the corresponding icon:
Within the Software category (the first one), click Software Repositories:
On the Configured Software Repositories screen, click the Add button:
Select the Community Repositories option and click Next:
Enable the Packman Repository and click OK:
YaST itself takes care of refreshing the list of available packages from the repositories.
YaST asks for confirmation before importing the new repository’s key, click Trust:
Back to the Configured Software Repositories screen, click OK to close it.
Switching packages to the Packman repository
Back to the YaST main screen, click Software Management.
Open the View menu and click Repositories:
By the left, select the Packman Repository, and by the right, click Switch system packages:
Note that many already installed packages, provided by openSUSE, have been marked to be updated to versions provided by Packman. Click the Accept button:
YaST warns you that additional packages are going to be installed, click Continue:
YaST downloads and installs the packages:
It can take more or less time depending on your Internet connection speed.
In the end, click Finish to close this window and then close YaST:
That’s it!
When you are finished with the above procedures, restart your browser.
The videos that were not playing before can be played now:
In case you want to know more
MP4 and H.264 have become common video formats on the web. Strictly speaking, MP4 is a container format, which can store video tracks, audio tracks, embedded subtitles and other data in a single file. H.264, in its turn, is a high definition video compression format, that is, it encodes just the visual data (the video itself) and requires a container (such as MP4) to host the encoded video. Most of the time, an “H.264 video file” is a file with the .mp4
extension that contains a video track encoded with the H.264 codec.
The problem is that the H.264 codec is not a free software. It is a proprietary software licensed by the Moving Picture Experts Group Licensing Administration (MPEG LA) and therefore cannot be provided by Linux distributions such as Linux Kamarada and openSUSE.
If you visit a website that has an H.264 video, but the H.264 codec is not installed on your system — and it is not installed by default on both openSUSE and Linux Kamarada — then the video will not be played, as I showed earlier in this text.
Fortunately, in the case of these two distros, there is the Packman repository that provides H.264 and other proprietary codecs in the form of packages that can be easily installed.
Note that this problem does not occur in the Google Chrome browser. Google probably made a commercial deal with MPEG LA to distribute the H.264 codec within Google Chrome.
What about the OpenH264 plugin in Firefox?
If you use Firefox, you may have noticed that it has a plugin called “OpenH264 Video Codec”, which is automatically installed:
OpenH264 is the name of Cisco’s implementation of the H.264 codec. Although it’s open source, it’s not free software as well, since its binaries are released under a license from Cisco, which covers MPEG LA licensing fees to provide this codec for free. Therefore, they must be downloaded from Cisco.
Mozilla has partnered with Cisco so that Firefox can use OpenH264. When you use Firefox for the first time, it automatically downloads the OpenH264 plugin from Cisco and installs it.
OpenH264 implements only the most basic part of the H.264 format, the baseline profile, so it’s used by Firefox only to support video calls such as those made using WebRTC. Examples of video calling services that depend on WebRTC include Google Meet, Google Hangouts, Facebook Messenger and Discord.
Shortly, the Firefox OpenH264 plugin does not enable video playback, only video calls. I just wanted to clarify that.
References
- Twitter says “The media could not be played”. | Firefox Support Forum | Mozilla Support
- SDB:Firefox MP4/H.264 Video Support - openSUSE Wiki
- Information about the H.264 patent license - Free Software Foundation
- Why is there an OpenH264 plugin in Firefox? | Firefox Help
- [opensuse-factory] Status of x264 libraries in the standard distribution
- OpenH264 - Fedora Project Wiki
- MP4 vs H.264, difference between MP4 and H.264 format - iOrgsoft
- 10 Massive Applications Using WebRTC - BlogGeek.me