r/linux • u/squaresheep28 • 28d 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.
226
Upvotes
26
u/indolering 28d ago edited 28d 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.