BitWHIP is a CLI WebRTC Agent written in Rust. These are some of the things you can do with it today.
- Publish your desktop with 30ms of latency
- Play the stream in a native player
- Pull WebRTC video from other sources and play
- Broadcast Box
- IVS
- Cloudflare
- Dolby.io
- Red5
- Nimble Streamer
- any services that support WHIP/WHEP!
BitWHIP is built on open protocols so should work pretty much anywhere. It should also interop with your favorite tools and libraries like OBS, FFmpeg or GStreamer.
BitWHIP uses just to make installing dependencies and building easier. To build
this project first you install just
and then execute install-deps
.
cargo install just
just install-deps
Now that you have built you have three different paths.
Play WHIP starts a local WHIP server that clients can push too. You can use this to push video from BitWHIP or other WHIP clients like OBS or GStreamer.
just run play whip
The WHIP client would use a URL of http://localhost:1337/
and any Bearer Token you like. You can stream to
it via BitWHIP by running just run stream http://localhost:1337/ bitwhip
.
Play WHEP connects to a WHEP server and plays video. Below is an example of pulling from https://b.siobud.com/ with
a Bearer Token of bitwhip
just run play-whep https://b.siobud.com/api/whep bitwhip
After running this open https://b.siobud.com/publish/bitwhip and your video should open in a native player.
Currently only Windows with NVIDIA cards are supported, more to be added
Stream captures your local desktop and publish via WHIP. To run this you need a URL and a Bearer Token.
Below is an example of pushing to https://b.siobud.com/ with a Bearer Token of bitwhip
just run stream https://b.siobud.com/api/whip bitwhip
- Create binaries
- Improve Build System
- Support more Capture
- gdigrab (Windows)
- x11grab (Linux)
- Support more Encoding
- QuickSync
- x264
Selkies-GStreamer is a WebRTC remote desktop streaming implementation that has achieved 0-16ms of latency.
Join the Discord and we are ready to help!