[PLUG] Can someone enlighten me on H.265/HEVC
Ted Mittelstaedt
tedm at portlandia-it.com
Tue Feb 28 16:34:12 UTC 2023
What CPU?
Note the following bug (look at the origin date and resolution dates!)
https://bugs.chromium.org/p/chromium/issues/detail?id=460703
Basically Google knew about Chrome's failure to support the underlying already-license-paid-for HEVC decoder hardware in
The CPU for the last 7 years and continued blowing smoke about it even though it was repeatedly pointed out to them that the support people were asking for was NOT to embed the freely available HEVC SOFTWARE decoder libx265 (which would trigger patent demands from MPAA-LA) but to merely support the HARDWARE decoder in the CPU.
The most common excuse was the HEVC codec was patent-encumbered, contrary to the principles of OSS, it would cause the browser developers to have to pay gazillions of dollars to MPAA-LA, blardy blardy blar. Because most people screaming about the lack of support were end users, they did not distinguish between supporting something they had already paid for when they bought their PeeCee, or a software solution, and that created sufficient FUD in the industry to blow most of them off.
But then finally I guess Google decided that enough CPUs were out in the wilderness that supported HEVC decoding in the CPU that they finally gave up the BSing and got to work correcting the "bug" So now, the Chrome code does support the hardware decoder in the CPU - assuming one is present.
All browser projects based on the Chromium engine (including Microsoft's Edge) would have then gotten support. Microsoft then fixed their derivative code in Edge (which broke the older HEVC Extensions For Device Manufacturer) which is why Edge now does not require any HEVC Extensions on a Kaby Lake CPU to decode H.265. Brave fixed their code in November see https://github.com/brave/brave-browser/issues/25683 and Safari (as Apple is wont to do) copied the same idea and added hardware support into their browser under specific CPUs. I don’t know if Opera had to do anything to get HEVC hardware support working in their code, it may have just started working since they use Chromium also. I don’t know WHERE Google inserted hardware codec support whether in the engine or the code around it. So now MPAA-LA is just sticking it to the CPU makers and Intel is very likely not even paying them a cent but instead is cross-licensing some patent or other that MPAA-LA wants, which is usually how the elephants do it when they try sticking it to each other.
Firefox is the lone holdout here. They don't use Chromium but adding hardware support for Kaby Lake and later CPUs should be easy enough, considering they can probably look at the Google code and see how they did it. That's why I am knocking them about them making it a religious war. As long as most CPUs in the field were not Kaby Lake or later, they had a point - enabling hardware support would just be catering to the "elites" who could fork out $2k for a PeeCee so screw them. But now, Kaby Lake and later have been out an embarrassingly long time and you can pick up machines quite cheaply that have hardware codecs so it's no longer about Mozilla sticking it to MPAA-LA. So what IS it about with Mozilla? Google got their crap together on this (abet, quietly) so why don't they?
Libx265 is another holdout which MAY be where the problem is since it may be that Firefox is using OSS libraries to do the heavy lifting. (like libx264, etc.) Right now libx265 only implements HEVC support in software so naturally if Mozilla includes it, Firefox instantly becomes subject to MPAA-LA's patent extortion. It would be nice to have a libhx265 of some sort that would use the hardware codec if available it would be even nicer to have hardware support included in libx265 with a flag to enable hardware only. That would ALSO allow ffmpeg to take advantage of the hardware codec to allow "blessed" distributions of the ffmpeg binary not subject to threats from MPAA-LA. I can dream I guess.
As a sidebar, this nonsense is PRECISELY why I prefer the FreeBSD Ports approach where the code is downloaded and built ON THE SYSTEM. With the HEVC patent, MPAA-LA cannot demand royalties for the libx265 library source code, only for the compiled code. So, Firefox on FreeBSD could EASILY include a flag for libx265 in their source, with it merely disabled. In that case, only the end users building a complete Firefox from source would be able to enable the flag and once they started using the binary they would be liable for patent fees - let the MPAA-LA go demand their 50 cents a pop from millions of FreeBSD users and see how far they get. Which perfectly illustrates the idiocy of software patents and is precisely WHY the Ports exists at all.
But, the Linux community eschews building from source in favor of the Microsoft way of distributing binaries. Which is why this is an issue at all.
Theoretically, Chromium compiled on openSUSE should work - if you are running openSUSE on a Kaby Lake or later CPU If it does not then the Chromium maintainer for openSUSE needs to be informed and a bug filed with their compilation.
The issue though is what the various derivative browser projects do when they are compiled and run on a NON-Kaby lake CPU. As I have discovered with Ubuntu, Brave reports no support, Firefox reports no support (obviously) and Chromium only supports it if you build it with libx265 (the source for that is available that that URL I posted where the Chromium binaries are that have the software support)
I would say it's a bug if Brave, Opera and Chrome all open the video window and just stall out. Instead they should be reporting "codec not available" or "H.265 hardware codec not present in system" some reasonable error message. That's what I get with Brave on Ubuntu, and that's what you SHOUD be getting on openSUSE.
On Ubuntu 20, the specific error message from Brave is "The video could not be loaded, either because the server or network failed or because the format is not supported." This is in fact a duplicate of the Firefox error message on ALL CPUs.
Ted
-----Original Message-----
From: American Citizen <website.reader3 at gmail.com>
Sent: Monday, February 27, 2023 6:04 PM
To: Portland Linux/Unix Group <plug at lists.pdxlinux.org>; Ted Mittelstaedt <tedm at portlandia-it.com>
Cc: Portland Linux/Unix Group <plug at pdxlinux.org>
Subject: Re: [PLUG] Can someone enlighten me on H.265/HEVC
Ted
I am running openSuse Leap 15.4 latest and attempted to run the
https://test-videos.co.uk/bigbuckbunny/mp4-h265 video
Mozilla Firefox gets codec error and aborts
Brave, Opera, and Chrome all open the video window, then stall out.
I wonder if someone should contact the Packman people on this?? They seem to stay updated on all linux media things.
- Randall
More information about the PLUG
mailing list