Crates.io | rvideo |
lib.rs | rvideo |
version | 0.5.1 |
source | src |
created_at | 2024-06-07 21:39:58.610808 |
updated_at | 2024-08-27 21:52:11.677243 |
description | Real-time video server for embedded apps |
homepage | |
repository | https://github.com/roboplc/rvideo |
max_upload_size | |
id | 1265183 |
size | 82,460 |
Real-time video server for embedded apps.
RVideo is a library which solves the problem of streaming video from embedded computer-vision applications. Many of such are headless and do not require a dedicated interface, however it is often useful (especially for developers) to see what is happening on the device. RVideo provides a simple API to stream video from your embedded application to a remote client.
Unlike other streaming solutions, the goal of RVideo is to provide a minimal overhead for an embedded application it is included into:
Frames are always sent as-is, usually in RAW formats (it is more than enough for most debugging use-cases)
All frames, not received by a client in time, are dropped
No any buffering is performed on the server side
Real-time-safe code is used to minimize the impact on the main application
RVideo streams can be received with clients provided by crate. For ready-to-use
UI, see the rvideo-view
crate.
By default, the server uses parking_lot for locking. For real-time applications, the following features are available:
locking-rt
- use parking_lot_rt
crate which is a spin-free fork of parking_lot.
locking-rt-safe
- use rtsc
priority-inheritance locking, which is not affected by priority inversion
(Linux only).
Note: to switch locking policy, disable the crate default features.
RVideo is a part of RoboPLC project.