Remix.run Logo
Thaxll 5 days ago

There is the creator of VLC that is working on something similar, very cutting edge.

https://streaminglearningcenter.com/codecs/an-interview-with...

Ultra low latency for streaming.

https://www.youtube.com/watch?v=0RvosCplkCc

torginus 5 days ago | parent | next [-]

Having worked in the space, I'd have to say hardware encoders and H.264 is pretty dang good - NVENC works with very little latency (if you tell it to, and disable the features that increase it, such as multiple frame prediction, B-frames).

The two things that increase latency are more advanced processing algorithms, giving the encoder more stuff to do, and schemes that require waiting multiple frames. If you go disable those, the encoder can pretty much start working on your frame the nanosecond the GPU stops rendering to it, and have it encoded in <10ms.

Wowfunhappy 4 days ago | parent | next [-]

> have it encoded in <10ms.

For context, OP achieved 0.13 ms with his codec.

pjc50 4 days ago | parent | next [-]

"0.13 ms on a RX 9070 XT on RADV."

"interesting data point is that transferring a 4K RGBA8 image over the PCI-e bus is far slower than compressing it on the GPU like this, followed by copying over the compressed payload."

"200mbit/s at 60 fps"

It's certainly a very different set of tradeoffs, using a lot more bandwidth.

theshackleford 4 days ago | parent [-]

> It's certainly a very different set of tradeoffs, using a lot more bandwidth.

Wasnt that the point?

> These use cases demand very, very low latency. Every millisecond counts here

> When game streaming, the expectation is that we have a lot of bandwidth available. Streaming locally on a LAN in particular, bandwidth is basically free. Gigabit ethernet is ancient technology and hundreds of megabits over WiFi is no problem either. This shifts priorities a little bit for me at least.

torginus 4 days ago | parent | prev | next [-]

I don't have the timings right now but you can go significantly below 10ms.

There's a tradeoff between quality and encoding time - for example, if you want your motion vector reference to go back 4 frames, instead of 2, then the encoder will take longer to run, and you get better quality at no extra bitrate, but more runtime.

If your key to-screen latency has an irreducible 50-60ms part of rendering, processing, data transfer, decoding and display, then the extra 10ms is just 15% more latency, but you have to find the correct tradeoff for yourself.

your_challenger 4 days ago | parent | prev [-]

But isn't the OP talking about local network while Jean-Baptiste Kempf is talking about the internet?

dishsoap 4 days ago | parent | prev | next [-]

10ms is quite long in this context.

RobRivera 4 days ago | parent | prev [-]

>10 ms

Do not shame this dojo.

latchkey 4 days ago | parent | prev [-]

Sadly appears to be unavailable.