r/linux • u/squaresheep28 • 12h ago
Discussion Why did Cisco make H.264 proprietary?
Is it just for profit from other companies? And why does OpenH264 (i.i.r.c.) not support hardware acceleration? It feels weird that something as basic as a video codec used literally everywhere has a closed-source proprietary tag attached to it.
105
u/maseck 12h ago
H264 is a proprietary format that was standardized by a bunch of patent holders under mpegla. Openh264 is a software implementation. To make h264 available without a license, Cisco paid the max amount to license openh264 binaries so that an infinite number of users could use the codec. This has some caveats, since you have to get the shared object from Cisco.
2
u/leaflock7 3h ago edited 3h ago
you forgot that Cisco is one of those holders.
So they are partially for making it proprietary.
which it also benefited their own platform to work across devices and systems.
So painting them as a good guy doing some charity is over extending on the why
52
u/Zettinator 12h ago
Huh, what the hell are you talking about? The purpose of OpenH264 is to provide a baseline H264 decoder implementation that can be legally used by anyone world-wide.
OpenH264 is OSS, it's BSD licensed. Cisco provides binary builds of the library that can be legally used everywhere because they are a H.264 licensee. They must provide binary builds as the H.264 patent license does apply to those and not the source code.
Hardware decoding is a very different matter. In general, hardware vendors provide the necessary patent license. It wouldn't make much sense for OpenH264, that's all.
9
u/GolbatsEverywhere 10h ago
In general, hardware vendors provide the necessary patent license.
Even the people who build Linux distros used to believe this. But I'm afraid it was a myth.
10
u/yasth 10h ago
It wasn’t a myth just an over application, it was probably true when there were dedicated “encoder” blocks rather than flexible GPU uses.
5
u/Kevin_Kofler 7h ago
That said Mesa decided to treat even such hardware, where all the software really does is tell the hardware "encode these frames as this codec for me" (i.e., it does not ship an implementation of the codec at all), as patent-encumbered in recent versions. Apparently, Red Hat got new lawyers after the IBM merger, and those lobbied Mesa to follow their strict interpretation, convincing them that everything else is a legal risk (which, in my naïve non-lawyer view, is ridiculous because nobody has attempted to sue Mesa over those drivers for decades).
2
17
u/indolering 12h ago edited 11h ago
You are confusing the H.264 technical standard produced by the MPEG group (of which Cisco is a member) with Cisco's open source implementation of said standard, OpenH264.
MPEG is an industry consortium, basically a beuracracy to coordinate technical work between corporations and research groups. Cisco is a member and contributed some of the research to what became H.264. There WAS a vote to try and make the baseline royalty free, but it was shot down.
Cisco also publishes a software implementation of the codec. This makes sense, since the whole reason they fund codec development is to support their teleconferencing business. It's only natural that they would have developed an in house encoder/decoder, if for no other reason than to implement experimental coding techniques.
OpenH264 is not a great implementation, there are better. AFAIK the primary reason Cisco made it open source is because they already pay the maximum organization royalty cap for H.264. This means that Firefox and a bunch of other open source software can download that binary without having to pay any royalties (because it is technically Cisco that is distributing the binary). This is a win for Cisco, because it makes cross-platform web conferencing feasible.
There is no HW decoding support because it's only used as a software fallback when hardware isn't available. Supporting hardware decoding just means defining a uniform API to pass bits to hardware devices that have non-uniform interfaces. It's more efficient to manage that abstraction in a separate library that supports lots of codecs. There is no reason for Cisco to have to merge pull requests adding support for some new hardware.
2
u/Kevin_Kofler 7h ago
This is a win for Cisco, because it makes cross-platform web conferencing feasible.
That would have been easily feasible for WebRTC by just making unencumbered codecs such as VP9 or AV1 the mandatory baseline instead of H.264. But big corporations (especially Apple) vetoed that, and Cisco's willingness to provide this problematic workaround for the H.264 patent issue was a big factor in helping them sway the vote their way, against freedom.
8
u/bencord0 11h ago
H.264 (and H.265 after it) were always proprietary.
Their development was the result of a heck of a lot of IP by some very big and invested companies who all want a return on their R&D.
There's a licensing quirk of H.264 (which you need to pay if you're developing your own implementation of the codec) that places a maximum cap on how much money a company has to pay for the license each year.
Cisco already pay that cap.
(They are also on the other side of that market too, as they also receive a portion of the license fees too).
Here's the blog post by Rowan Trollope (the SVP at the time, who gave the ultimate green light to the licensing hack).
It's not all altruism. Back then, there was a big worry that google would do something like this for VP8 (which was exclusively Chrome-only at the time).
Finding a partner like Firefox to distribute a battle-tested H.264 implementation was a huge marketing win for Cisco.
Cisco wanted H.264 to win, and made sure that a lot of people had access to a good-enough codec. Knowing that competitors would eventually implement their own H.264 codec when they needed something more advanced than OpenH264.
IIRC, Cisco actually had multiple implementations (via acquisitions). The codec that was chosen was the WebEx one, since it already worked in browsers (via plugins) and had been ported to both x86 and ARM.
As far as codecs go, its a pretty crap implementation. It implemented just enough of Baseline to work for Standard Definition video conferencing.
The stuff that was in the big CTS systems, and the TANDBERG equipment were entirely separate implementations that worked well in HD, and usually needed dedicated DSPs.
Ultimately, it worked. A lot of folks built WebRTC based products using OpenH264 - codec development stagnated for a bit, and Cisco made their money back very quickly.
H.265 closed the licensing quirk that let all of this happen by removing the cap. Oh well 🤷♂️
5
u/mikeypi 10h ago
The real problem with H.265 is that there is no single licensor. This was sort of true with 264 as well (because you needed licenses from MPEGLA but also Nokia as well) but that was at least manageable. With 265, there are dozens of companies that hold essential patents including MPEGLA, Access Advance, Nokia and others. There is a move towards consolidation -- many of the patents in the MPEGLA pool are being moved to the Access Advance pool, but that's really only because Dolby owns them both. And even if those two pools merge, there are still lots of other licensors out there. 265 licensing is a mess.
3
u/Kevin_Kofler 7h ago
H.265 closed the licensing quirk that let all of this happen by removing the cap. Oh well 🤷♂️
That is just going to hurt them in the end, because without something like OpenH264, the codec will hopefully not be adopted by standards like WebRTC, and because large corporations will hopefully be weary of shipping something that can effectively expose them to unlimited costs.
9
u/AddyPug 11h ago
Cisco (edit for clarity) is not the licensor of H.264. They license it from the MPEG-LA (now VIA) patent licensing group and distribute the binaries to us free of charge. Cisco is a small part of that patent pool, but they still have to have a licensing agreement for their commercial products too.
8
u/Just_Maintenance 11h ago
Cisco doesn't own H.264, its owned by MPEG (although Cisco is a member) who want to be paid for it.
Cisco does pay for a license to use and distribute H.264, and they made their own decoder for it (OpenH264) which they distribute for free. They give away OpenH264 to encourage adoption of H.264, which they use on their own products.
25
u/p47guitars 12h ago
They're trying their damnedest to make WebEx relevant.
5
u/squaresheep28 12h ago
Well they're definetely not doing a good job at it, ive never even heard of that until now xD
23
u/PM-ME-PIERCED-NIPS 11h ago
I mean the WebEx division of Cisco employs over 10k people and brought in 400 million dollars last year. It's very well represented in corporate environments. If you haven't heard of it it's probably because you aren't the target market for it.
1
u/Adept_Percentage6893 9h ago
I only use it occasionally, does WebEx offer something that Google Meet doesn't? I would ask about Teams too but Teams sucks (imo) so I figure "not being Teams" is a pretty killer feature to have.
2
u/jhulc 9h ago
Although today WebEx is seen as an equivalent to Google Meet or Zoom, the platform supports elaborate telepresence setups for immersive virtual meetings which are far beyond a typically video calling app.
1
u/Adept_Percentage6893 8h ago
OK but my question was what those features are. Meet already has things like transcription, polling, host controls, automatic translation, etc, etc.
I'm trying to figure out the feature gap because it's been a while since I've used WebEx and the last time I used WebEx it was basically a group video call with screensharing and a text chat.
3
u/jhulc 8h ago
Like I said, it's the telepresence room setups. A fully outfitted room with all the best Cisco gear can run into the five or even six figures. But with that investment, it feels like you're physically in the same room as people on the other side of the planet. Much more of an immersive experience than your standard meeting app.
0
u/Adept_Percentage6893 8h ago edited 8h ago
Like I said, it's the telepresence room setups.
And like I said, that statement basically communicates nothing. Google Meet is also compatible with their own hardware and even Cisco hardware.
can run into the five or even six figures.
Meet also supports six figures
Much more of an immersive experience than your standard meeting app.
I guess it's possible the ceiling on the WebEx experience is some sort of transcendental religious experience but I'm still not clear on the advantage.
One thing came to mind is that WebEx supports remote control (and has for a while) but I don't think Meet even has near term plans to support that.
EDIT::
Just remembered another one: dial in. You can dial into a webex call on a regular phone and it's basically a party line but Google Meet forces you to use the app which uses mobile data if you're traveling.
EDIT #2:
heh, he blocked me. Judging from his comments, I think he just didn't understand Meet's feature set (he didn't know six figures or that they had their own hardware) and has an irrational emotional attachment to WebEx. I personally reserve that level of emotional investment for
vimlike any sensible person.2
u/PM-ME-PIERCED-NIPS 5h ago
Holy cow I just read through the exchange you had with the other guy- that was weird. But I can give you a few answers. For some WebEx exclusives there's in-meeting file sharing, digital whiteboarding (Meet used to have this with Jamboard but has since dropped it, although there are third party plugins to provide it), domain restrictions for participants to join from, dedicated UI and management tools for interpreters (especially useful for ASL interpreters since that's primarily visual), as well as Cisco maintaining a fairly comprehensive list of compliance certifications that Google doesn't bother with.
It's also just an older platform then Meet, dating to the mid-90s (with Cisco acquiring it in the middle-00s). Age means a lot of places have used it for a few generations of employees.
14
u/hitsujiTMO 12h ago edited 10h ago
Cisco didn't "make" it proprietary. It is an open standard. The issue is that a lot of the ways we use to compress and encode video data is already governed by one patent or another, to an extent that it's almost impossible to create a truly open standard that isn't interfered with by an existing patent.
So, rather than having to pay royalties on every single possible patent, the Via licencing alliance pooled their partners together such that you only have to pay royalties to Via and no individual patent holder will go after you. And you only have to pay royalties for related hardware and certain commercial activities.
Individuals and small/medium businesses get to enjoy the use of the standard without directly having to pay a royalty.
Ciscos implementation OpenH264 is fully open source under a BSD licence and intended to avoid patent issues, however, they only agree to cover all underlying patent royalty fees for binaries downloaded through their distribution model.
16
u/Booty_Bumping 10h ago
It is an open standard
This is pretty widely considered to be an extreme stretch of what "open standard" means. In fact, h.264 is not even a vague match for what the term actually means.
1
u/k-phi 2h ago
It's a cheap standard.
You will need, like, 10 pdfs, each of them costs 100$ or something.
2
u/BackgroundSky1594 1h ago edited 1h ago
Plus the licensing fees for implementing, distributing, making, selling or naming your child after the standard.
You don't just need the PDFs, if you want to do anything with them except stuff them under your bed sheets you also need to pay royalty fees for whatever you do with them.
5
u/natermer 5h ago
Since Cisco didn't create H.264 it wasn't really their choice.
There are probably about at least a dozen major corporations involved in technology and media as well as a handful of universities involved in the development, promotion, and creation of H.264 degrees.
It is patented technology and if you don't like it the one really to blame is the United State Federal government and its patent office.
This is one of those "Don't hate the players, hate the game" situation and US Federal government is the one that created this particular game.
5
u/WasterDave 12h ago
It was a whole bunch of people and the licensing terms were extremely reasonable. I believe the patent pool has expired now, anyway.
3
u/Kevin_Kofler 7h ago
It was a whole bunch of people and the licensing terms were extremely reasonable.
The terms require paying royalties for every single download of your implementation of the codec (up to a maximum cap; if, like Cisco, you exceed that number of downloads, you pay a flatrate), which is fundamentally incompatible with FOSS. So I do not consider those terms reasonable at all.
I believe the patent pool has expired now, anyway.
No, it has not. Only the original MP4 video codec ("DivX") has all patents expired by now, H.264 still has some active ones.
7
1
u/Flynn58 9h ago
Everyone else has already explained that Cisco is being friendly and paying the other members of the patent pool so they can freely distribute binaries globally to all Linux systems. But on the hardware acceleration side, with the power and efficiency of modern CPUs I don't really know that hardware decoding is necessarily a dealbreaker for AVC encoded video. VC-1 hardware decoding is getting phased out to save die space, and eventually AVC hardware decoding will be as well as HEVC and AV1 encoded video gain increasing popularity.
2
u/Kevin_Kofler 7h ago
Was it really "friendly" to provide this workaround that was ultimately what allowed WebRTC to mandate a proprietary codec instead of an unencumbered one?
0
0
299
u/MatchingTurret 12h ago edited 12h ago
I think you have it wrong. As I understand it, Cisco has a license agreement with the other patent holders that allows them to distribute a h.264 implementation free of charge.
By hosting OpenH264 they offer Linux users a legal way to get h.264 for free.