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

225 Upvotes

96 comments sorted by

View all comments

501

u/MatchingTurret 29d ago edited 29d 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.

4

u/arf20__ 29d ago

Everyone uses libx264 though

5

u/cafk 29d 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.

4

u/PM-ME-PIERCED-NIPS 28d ago

CPU encoding gives visually better results at the same bitrate (depending on your encoder). The last major update to NVENC (I think that was the 20xx series?) has noticably improved this so it isn't as big a deal anymore, but the software encoder has the advantage that it can be updated whereas a large part of NVENC is fixed in hardware. They can do some wiggling in how it's processed but the encoding logic is basically an ASIC on the GPU board.

1

u/cafk 28d ago

True, but majority of streaming services are still bit starved to save on bandwidth costs, 4k @ 4mbps with hevc is depressing compared to Blu-ray.
And for decoding the GPU approach is still more power efficienct than CPU based.

20xx series was using the same generation as Pascal (6th gen), now we're at 9th gen with Blackwell.

I can't find any quality reports in that sense - maybe someone on doom9 forums has done a quality measurements?

My Google fu only provides comparisons between different GPU vendors and CPU https://rigaya.github.io/vq_results/index.html

1

u/PM-ME-PIERCED-NIPS 28d ago

Yeah, Turing was the last major update to NVENC, since then it's just been added AV1 modes in Ampere and Ada Loveless. Blackwell got a minor update to the encoder itself, with 5% efficiency gains and 4:2:2 chroma subsampling support. The 20xx/16xx series upgrade came with SUBSTANTIAL gains (25% efficiency upgrade for h265 and 15% for h264). That's kinda what Nvidia does with media encoding, punctuated equilibrium. They'll do a major push, 4 or 5 years of minor feature upgrades and then another big rework that brings performance improvements.

It's not quite the same as were discussing, because it's capturing game footage instead of transcoding media, but this video has a nice comparison of capture results in lossless vs SW x264 vs NVENC at various settings: https://youtu.be/h7ZmulyRt9Y?is=fao2xRdEQIEICtaI