Expand description
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§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()?);§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:
- Documentation: https://docs.rs/videostream
- Repository: https://github.com/EdgeFirstAI/videostream
- Professional support: support@au-zone.com
Modules§
- camera
- The camera module provides camera capture capabilities.
- client
- The client module provides the frame subscription functionality.
- decoder
- The encoder module provides accelerated video decoding from h.264 and h.265
- encoder
- The encoder module provides accelerated video encoding to h.264 and h.265
- fourcc
- The fourcc module provides portable handling of fourcc codes.
- frame
- The frame module provides the common frame handling functionality.
- host
- The host module provides the frame sharing functionality.
Macros§
- vsl
- Helper macro for modules to get library reference and call functions All functions must return Result<T, Error> to use this macro
Enums§
- Error
- Error type for VideoStream library operations