4 ms·
GPU would do transcoding, build network packet and copy data via PCI-E, all using hardware, avoid memory copy. OBS+WebRTC is mostly software doing heavy-liftin
by est 2y ago
GPU would do transcoding, build network packet and copy data via PCI-E, all using hardware, avoid memory copy.
OBS+WebRTC is mostly software doing heavy-lifting.
Imagine if the camera would build WebRTC UDP packets directly and zero-copy to NIC, that would lower latency quite a bit.
- KeplerBoy 2y agoI wouldn't be surprised to learn that Nvidia is doing exactly that on their cloud: Compressing the video on the GPU using NVENC, building a package around it and then passing it to a NIC under the same PCIe switch (mellanox used to call that peerdirect) and sending it on its way. The tech is all there, it just requires some arcane knowledge.
- imtringued 2y ago"arcane knowledge" is too strong of a phrase. You need someone who is familiar with Nvidia hardware and is willing to write software that only works on Nvidia hardware.
- KeplerBoy 2y agoIt is arcane as in information how all of this works on their specific hardware is not publicly available, but probably widespread within.
- kierank 2y agoThis is premature optimisation. The bus bandwidth and latency needed to get a few Mbps of compressed video to the PC is microscopic. It's completely unnecessary to lock yourself into NVIDIA just to create some UDP packets.
- KeplerBoy 2y agoI was talking about Nvidia's Cloud gaming offer (GeForce Now). For them it's certainly not a premature optimization.
- sharpshadow 2y agoExactly this with „…NVIDIA GPUDirect for Video, IO devices are fully synchronized with the GPU and the CPU to minimize wasting cycles copying data between device drivers“.[1] 1. https://developer.nvidia.com/gpudirectforvideo https://developer.nvidia.com/gpudirectforvideo