https://news.ycombinator.com/item?id=26925307
>It does reduce flexibility when new video formats get released though.
A new video codec is released and adopted once every ten years. So I dont think it would be a problem. Hardware encoding also trade compression quality for speed. And they are compensating it with slightly higher bitrate. It will also reduce their incentives for improving open source encoder.
Although I think even Netflix switched to BEAMR ( Cant really blame them though )
I think the next frontier, for both Audio and Video will be Codec designed with LiveStreaming / Low Latency in mind.
( Or pretty much everything computing, I wish we could focus on latency, from Hardware Input, Display, Network, Disk, etc. Apple is certainly moving in that direction without talking about it. )
sources:
[1] https://www.whats-on-netflix.com/news/how-long-would-it-take...
[2] https://www.comparitech.com/blog/vpn-privacy/netflix-statist...
Convinced?
If we unpack your calculation to slightly more typical human behaviour: Watching 1 stream × 10 hours/day × 365 days non-stop, one person would need 10 years to watch the whole catalog.
Doesn't seem unreasonable to me.
Also, IIUC, they re-encoded about once a month, but the re-encoding didn't necessarily take one month of compute time.
But also this might be more about protocols, but AFAIK streaming protocols have mostly been abandoned to the favor of chunk downloads over HTTPS ?
Also, good video codec engineers can’t be hired for any predictable amount of money, and ones who speak Verilog barely exist.
Even with power savings it was usually more economically efficient to run encodes on a large (12+ core) machine than to deal with limited amount of nvenc slots on GPUs.
NVENC is good at cleaning the noise and fast encoding. ( Or basically Game Streaming ). Which isn't something you want to do if you want to do movies encoding.
Sure, and I think hardware encoders are great when you need speed, certainly for real-time video. But in other cases, well, the medium preset sucks. I always encode videos at `veryslow`, and there's just no way to get close to that with a gpu.
You can mass parallelize it by encoding different clips on different CPUs, this is more optimal because it has less communication overhead.
There's a lot of other free video encoding tools, like avisynth plugins, that are just better than all professional tools. I'm not sure why this is, maybe customers aren't sophisticated enough.
[1] https://arstechnica.com/gadgets/2021/04/youtube-is-now-build...
I've been to a project where, because the development and "hardening" budgets were separate, we knowingly pushed out buggy code so that we could take advantage of the latter.
Had I known that half of the job would be to game the system, I wouldn't have joined.
Bureaucracy is inevitable once a certain number of people join a group.
You should be happy it's only half!
Based on the speed I see from Telestream and Elemental. I think they’re software based as well
YT & FB have a few popular videos, and a ginormous long-tail. That long-tail needs to be encoded, and cheaply as it might not get many views.
The TV/Movie VOD over IP industry stands to benefit optimizing the encoding to have the smallest filesize with highest quality. Spending considerable CPU cycles to find that best quality path.
For those like Netflix, why would you invest with ASICs. You likely don't have a huge infra bill (relatively) when it comes to encoding. And CPU vs ASICs, the ASICs mean you loose flexibility to really fine-tune the quality and use the latest codecs.
For those like YT/FB. You just gotta encode that long tail. Getting something cheap that's 80% the quality of CPU-based encoding is good enough for 99% of the content.
For example, if you want to only annotate 1 in 100 frames and interpolate with optical flow, you can get the flow in the process of doing video compression.
I don't have inside info but there are various other things like this that I can think of for wanting to do it in software.
Also, hardware encoders suck if the company making the hardware decides to suddenly EOL the product. With software encoders you can easily scale the backend whenever you want, at any time in the future, and without succumbing to supply chain issues.
Facebook, which videos will we transcode into what versions.
Google, with this list of videos to transcode how can we do it cheaply on a massive scale.
I didn't spot anything that pitted approaches against each other.
Most big companies with millions of hours of video uploaded each day have realised it's cheaper to stick a bunch of hardware video encoding chips onto an accelerator board and be able to transcode 100 HD streams simultaneously into all the formats and resolutions you need to host.
The power savings on CPU's pay for the custom hardware in a matter of months.
It does reduce flexibility when new video formats get released though.