native-consumers
Native Consumers
Overview
The NATIVE transport carries encoded video over the network (NVIDIA StreamSDK / NVSS). A consumer connects to a running native server by IP + port, receives the encoded stream, and decodes it client-side via StreamSDK's NvStreamingMedia inbound-video API (which uses NVDEC on NVIDIA GPUs) into host BGRA8 frames. On each wait_frame the consumer gets a zero-copy host view of the decoded pixels.
Unlike SHM and CUDASHM, the native consumer needs neither the same host nor the same GPU as the producer — only an NVIDIA GPU + driver on the consumer machine for the NvStreamingMedia decode. Producer and consumer can run on two different machines. That cross-machine capability is the trade for the encode + decode latency the local transports avoid.
The unified ovstream.Client / ovstream_create_client is backend-agnostic — the transport is chosen by ClientType. This skill covers ClientType.NATIVE; the same Client also speaks ClientType.SHM (host-resident, same machine, see the shm-consumers skill) and ClientType.CUDASHM (GPU-resident, same host, see the cudashm-consumers skill). For the full transport trade-off, see protocol-selection.
Python: ovstream.Client(ovstream.ClientType.NATIVE)
The minimal pattern: