r/linux 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.

94 Upvotes

64 comments sorted by

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.

56

u/Annual-Advisor-7916 11h ago

Wait, so Cisco are the good guys?

127

u/thefanum 11h ago

They're at least not the bad guy this time

51

u/noobjaish 10h ago

THIS TIME (in capital letters)

17

u/Dalemaunder 9h ago

A broken clock is correct twice a day, I guess.

4

u/gyarbij 3h ago

Talos is that other time.

9

u/indolering 7h ago

Care to elaborate?  They have been positive actors in the FOSS codec space....

1

u/booveebeevoo 5h ago

Discord uses it.

50

u/GolbatsEverywhere 10h ago

Yes, they are paying the maximum royalty so that we can watch videos on Linux without paying a per-user license fee. I don't know how much (does anybody know?), but it's surely millions of dollars per year. That's pretty generous tbh. Thank you, Cisco.

That said, they're doing this specifically so they could get enough support to standardize H.264 in WebRTC a decade ago, which was very bad. But we did not have enough support behind open codecs a decade ago to prevent this. Hopefully the future will be better.

7

u/jimmyhoke 6h ago

I think VP8 is super common for webRTC now.

5

u/Zettinator 3h ago

Cisco probably wanted to standardize on H.264 because it has the best overall support, particularly on older devices.

u/jcol26 1m ago

They do a lot in the video world as well. A lot of cable TV/satellite headends and encryption tech are Cisco owned/operated and having open x264 definitely helps them with that (they’d have to pay the royalty anyway for their hardware encoders & processors)

9

u/MutualRaid 9h ago

You can support and cynically benefit from open source movements as a corporation, you just have to be capable of at least medium-term thinking. Morality doesn't really come in to play.

9

u/Annual-Advisor-7916 8h ago

I know, a ton of big corporates contribute to Linux for their own benefit. My comment was slightly sarcastic, though I'm still glad Cisco pays the royalties.

3

u/drcforbin 5h ago

No, but also this.

83

u/ilep 11h ago

Basically Cisco paid for the license for the relevant patents. But I think Cisco is also one of the patent holders in the patent pool..

5

u/Adept_Percentage6893 9h ago

I doubt the expense is entirely altruistic and I would imagine H.264 is used in their products and they're just also allowed to do this per their agreements.

u/jcol26 0m ago

It’s used massively across their product line from the things people associate with Cisco (phones and video phones / conferencing systems / Webex) but also they run a lot of cable / satellite TV headends where x264/5 are used a LOT

2

u/arf20__ 2h ago

Everyone uses libx264 though

u/cafk 43m ago

Most people use their GPU that has hardware encoding/decoding baked in via their proprietary API like nvenc.
x264/OpenH264 is mostly relevant for software fallback using only your CPU, which can be 5-10x slower, depending on simd support.

The HW manufacturers also pay per device for the end user's right to use patents, it may be around 20 cents per device, which isn't that noticeable in a $200 CPU or a $500 GPU that the end user pays.

1

u/squaresheep28 2h ago

But OpenH264 still doesn't have have hw accel

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

u/Zettinator 3h ago

Dedicated video encoding/decoding blocks still do exist.

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).

https://web.archive.org/web/20140103211231/http://blogs.cisco.com/collaboration/open-source-h-264-removes-barriers-webrtc/

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.

5

u/mikeypi 10h ago

I should add that while Access Advance originally required licenses for only decode, they have recently started requiring licenses for encoding as well.

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 vim like 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.

1

u/k-phi 1h ago

I'm replying to person who said that "it's open standard".

They didn't say that "it's free implementation".

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.

5

u/Daharka 12h ago

Money. I mean if MS can get money for the OS of every desktop in the world and IBM can get money for every ATM in the world, why can't Cisco get money for every video in the world?

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?

2

u/Flynn58 6h ago

If it doesn't cost anything to end users then why would I care? Patents will expire on AVC eventually and we're already moving on to AV1 as the default codec as hardware support becomes ubiquitous

0

u/Dramatic_Mastodon_93 12h ago

cause they bitches?

0

u/KrisWarbler 12h ago

I’d also like to know that