It seems that right now there is no browser that supports h.265/HEVC even on hardware that can decode it - "Old Edge" used to, but "New Edge" does not. Neither Chrome nor Firefox support it (actually, both of those refuse to use any form of hardware decoding at all on my Windows box, only Edge uses it for VPx and h.264 - and of course every media player).
The only exception is Apple with Safari.
Why is this? h.265 can do a lot better than h.264 in some scenarios, but certainly isn't worse.
And why, oh why, is debugging hardware video acceleration still such a nightmare, even on Windows? Firefox doesn't even seem to have it in about:support any more!
And why is hardware video acceleration only a problem with browsers? I've never had any kind of problem with it with any media player, regardless of OS. It just works. But browsers - it seems to never work OOTB. Except for Edge, apparently. Which I thought was just a Chromium reskin with MS tracking.
Never to mention the two blatant issues with this, being:
1) video codecs are the exemplary "we'll patent math and there's nothing you can do about it" scam, since that's literally all a video codec is
2) a process being "essential" to a particular outcome (i.e. no other way to do it) was the main motivation mathematics was explicitly excluded from patentability in the first place, so the idea of "essential patents" just underlines the absurdity of the entire system
Anyways, yearly reminder that software patents are a blight to innovation and a scourge on our industry, and no you won't change my mind.
I'm no expert in the field, so I'm actually asking in good faith here...
Practically this means that every encoder / decoder for patent encumbered formats has to have some form of licensing just to interact with the format even if they somehow reverse engineered the specification and built a cleanroom implementation (at least as far as I understand it, IANAL)
https://en.m.wikipedia.org/wiki/Lambda_calculus
Find a single US patent that "claims" maths as GP argued. It doesn't exist.
If you’re gainfully employed doing math things that turn into codecs, no.
Patents suck, but they also serve a purpose.
In fact looking at it this way it would be easier to implement it in hardware as you don't just offload the decoding but the whole licensing rigmarole too.
Edit: oops this was already mentioned. Sorry the thread is so long I lost the overview.
Most software is literally all math.
I really don't understand how the parent commenter fails to see that this makes "X is math" basically a meaningless statement because it is always trivially true and makes their position "math shouldn't be patented" completely untenable.
Also, only decentralizing, open source, individual empowering, tech, isn't anti-human.
A patent covers a way of doing things.
An essential patent covers the way of doing things.
Essential patents in general fail the obviousness test; they cover the solution that most experts in the field would reach in solving the given problem.
Go on then, make a better video codec, as it's just math.
Also, isn't that just AV1? (it does seem optimized for the particular niche of streaming vendors though: minimizing bandwidth at all costs)
If you want a new cross platform video codec, check out AV1.[1]
[0] https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding#P...
[1] https://aomedia.org/av1/
https://news.ycombinator.com/reply?id=31318663&goto=item%3Fi...
Both MPEG-LA and HEVC Advance offer Max Cap per year.
Plus, partial support is a burden - one of the patent holders might come by and ask you to prove you didn’t accidentally violate one of their patents while fastidiously only using that approved hardware. I think there’s a lot of lawyer risk there below the waterline.
2019 https://www.juve-patent.com/news-and-stories/cases/nokia-and...
lenovo had enough in 2020 https://www.theregister.com/2020/12/10/lenovo_seeks_to_rende...
For example the new Rockchip RK3588 (for cheap computers with ARM CPUs and for TV top boxes) has a 4k @ 60 fps hardware AV1 decoder and the new Intel ARC GPUs also have hardware AV1 decoders.
There are some new chips for smartphones that will have hardware AV1 decoders.
The NVIDIA GeForce RTX 30 Series GPUs have hardware AV1 decoders, but I have no experience with them, as the most recent NVIDIA GPU that I use is an older RTX 2060 Super.
It is not known yet for sure whether the next generation of AMD GPUs will have hardware AV1 deoders. If they would not have it, they would remain the only new GPUs without hardware AV1 decoders.
I mean, even if say Chrome started using the hardware decoders, do you think someone from the MPEG-LA would _refrain_ from suing Google since "they're just using the Windows API"? It's already not rare to have to pay both for the hardware _and_ the software in this world.
Is a license also required if the x265 codec is used? Or does that depend on whether the software is for commercial use?
copypaste of previous comment:
The FFmpeg project does not distribute binaries with unlicensed or illegal code. E.g. if you want ffmpeg to use libdvdcss for decrypting DVDs or use libfdk-aac to encode aac/m4a without paying license royalties to Fraunhofer, the end user has to download those components and build a custom ffmpeg binary on their own. No legitimate website will host ffmpeg built with the "illegal/unlicensed" libraries. E.g. When the popular Zeranoe website hosted ffmpeg executables for download, it was only built with the free GNU components and was missing x265.
The VLC project says they can include libdvdcss because they are a French company instead of American. E.g. The USA-based Microsoft removes DVD playback from Windows 8 but France-based VLC does not: https://www.zdnet.com/article/if-vlc-can-ship-a-free-dvd-pla...
Beware that using ffmpeg/x265 may be illegal if you're in a country that recognizes software patents. You need to pay patent fees even if you wrote the software 100% yourself. You need to pay even if you independently invented the same algorithms later than the patent was filed.
To quote Carmack:
> "The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying."
- Most browsers do not deem it worth the risk of relying on host software decoders, as the plug&play infrastructure behind them usually translates into "nobody feels responsible for patching anything" which translates into incalculable vulnerabilities
That leaves MacOS (why bother when Safari exists), iOS (dito), and Android (why bother when Android users don't spend money), and trying to use hardware codecs without stepping on patents enough to make lawyers smell blood (why bother).
There's barely any content though (possibly premium VODs on Netflix etc).
Bilibili (kinda like Chinese youtube) offers HEVC (and AV1) playback, if your browser supports it. Example: https://www.bilibili.com/video/BV1Q44y1372Q
In general it's kind of a moot point by now, just go with AV1.
You don't always get to decide. E.g. IP cameras will generally support both h.264 and h.265 these days, with HEVC doing vastly better than AVC, yet if that output has to go near a browser, instead of through dedicated software... SOL. Can't do anything with it. The hardware can, the software can't.
And AV1 is decode-only anyway, and only supported in the newest platforms. CPU decoding is just not a reasonable solution.
Going with AV1 is not an option for the vast majority of people as it requires hardware support. If you try using AV1 on a computer that didn't come with a hardware decoder for it, your machine will crawl.
I force h264 in YouTube for this reason instead of using VP9.
My computer doesn't have a hardware decoder for AV1 (as shown by "vainfo"), yet AV1 videos play perfectly fine on it, both within the browser (including on Youtube) and outside it. Playing the AV1 demo (https://demo.bitmovin.com/public/firefox/av1/) on the browser at its maximum resolution uses only around half of the CPU.
So, not an issue unless you're using hardware from 2015 or so? In which case you're unlikely watching a ton of 4k+ content anyway.
Safari doesn't support AV1 though. I'll stick with AVC until it does
This makes browser vendors very cautious about adding anything, because even if it's easy now, it's may haunt them later. Maybe they could use HW accell on current-gen GPUs, but what if the next-gen GPUs move to a newer codec and drop H.265? Browsers will still be expected to play existing web content encoded in the old codec, but now with a patent liability and no hardware to subsidize it.
From an arbitrary search "The Matroska project is supported by a non-profit organization and is a fork of the Multimedia Container Format. It was first announced to the public at the end of 2002 and is a completely royalty-free open standard that's free for both private and commercial use."
General MKV support is approximately impossible because the subtitle format is extremely complicated and not specified. libass only implements it by being bug-compatible to an old piece of Windows software.
Also, MKV isn't a great file format; the way it does timestamps is all wrong for instance. It stores them as decimals when they're naturally rational fractions, so it's a strange choice for an archival format since it literally cannot be accurate.
"Many Web browsers support WebM, which is a restricted version of MKV. The most important restriction is in the allowed video codecs. WebM video uses only the VP8 and VP9 codecs, which are open and royalty-free. All WebM files are MKV files, but not all MKV files are consistent with WebM"
So the question comes back to supported codec moreso than container format.
And the used codec also isn't even limited. H265 10bit + flac 96khz? Fine. You can pack it as long as you want. And it's your own problem to play it. And that is basically why you see youtube-dl merges best audio + best video into MKV. Because it is the one only format that allow you to merge something like vp9+opus into playable single file.
It is basically a 'one format rule them all' format. The browser is unlikely to actually properly implement all of them. (In fact, there are only a few players actually implement all of them outside of players on windows) And even browser does want to implement everything, there isn't proper API for browser to expose these capabilities to the DOM and JavaScript to properly control them. (I think we are unlikely to see browser support native multi audio track video)
I think much of it is geopolitical. Browser vendors are mostly in the West, can't just ignore the patents, and don't want to pay for the patents. Camera and chipset makers are mostly in China and simply ignore patents and licensing. (They don't honor LGPL/GPL conditions either.)
Google already pay for it via their hardware business.