Skip to content

Latest commit

 

History

History
27 lines (21 loc) · 1.64 KB

README.md

File metadata and controls

27 lines (21 loc) · 1.64 KB

vidrs: a playground for exploring media capture, processing and publishing with rust

How to use

On a MacOS system with an attached camera you can do the following steps:

Features

  • bindings for camera capturing on MacOS using madsmtm/objc2
  • encoding of 4:2:0 camera frames into VP8 frames using astraw/env-libvpx-sys
  • sending VP8 frames via WebRTC to a browser test app using webrtc-rs/webrtc
  • handling WebRTC offer/answer exchange with tokio, hyper and serde
  • miniquad egui view of local camera stream with YUV decoding shader

Ideas for feature work

  • receive VP8 video via WebRTC, decode and write or display it
  • add support for Linux and Windows camera capturing using raymanfx/eye-rs and l1npengtul/nokhwa
  • add camera device selection
  • better way of figuring out which frame pixel format is preferred for the use case
  • use algesten/str0m for handling WebRTC
  • spin off some crates
  • some dependencies use objc instead of objc2, so MacOS bindings could be implemented in different binding ecosystems
  • use some GUI to show video too, like egui, iced or tauri