Skip to content
/ vidrs Public

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

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

payload/vidrs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

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

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published