videostream 1.5.4

Safe Rust bindings for VideoStream Library - zero-copy video frame management and distribution
Documentation

VideoStream Library for Rust

Safe Rust bindings for the VideoStream Library, providing zero-copy video frame management and distribution across processes and containers.

The VideoStream Library enables efficient frame sharing through DMA buffers or shared-memory with signaling over UNIX Domain Sockets, optimized for edge AI and computer vision applications on resource-constrained embedded devices.

Quick Start

Publishing Frames (Host)

use videostream::host::Host;
use videostream::frame::Frame;

let host = Host::new("/tmp/video.sock")?;
let frame = Frame::new(1920, 1080, 1920 * 2, "YUYV")?;
frame.alloc(None)?;
// Register and publish frame to clients
# Ok::<(), Box<dyn std::error::Error>>(())

Subscribing to Frames (Client)

use videostream::client::Client;
use videostream::frame::Frame;

let client = Client::new("/tmp/video.sock", true)?;
let frame = Frame::wait(&client, 1000)?;
// Process the frame here
println!("Received frame: {}x{}", frame.width()?, frame.height()?);
# Ok::<(), Box<dyn std::error::Error>>(())

Features

  • Zero-copy frame sharing across process boundaries
  • DMA buffer support for hardware-accelerated access
  • Hardware video encoding/decoding (H.264, H.265)
  • V4L2 camera capture integration
  • Multi-subscriber support (one publisher, many subscribers)

Support

For questions and support: