Welcome to the tiny-webrtc-gw readme!
- Infinite ⌚ duration streams (security 📹 friendly)
- private rooms
- 1-click-join links
- VP8,VP9,H.264
- very fast stream multiplexing via lightweight C
- NO cloud or external STUN/TURN involved ergo: raspberry-pi + airgapped LAN
- SD/HD bitrates
- High-performance: ~68Mbit/sec per stream+thread on an 800Mhz ARM7
- friendly chatroom-style UX (e.g. justin.tv)
- Very low latency 1-many streaming
- HD stream (via media constraints) support
- text chat room
- highly scalable (native c/c++ code)
- end-to-end encrypted
- chrome/firefox/opera/safari (iOS) support
- easy compilation (just git checkout --recursive and "make all")
- select media devices
- code includes submodule referencing the standalone HTTPS server + example certificate
- Works directly with OBS via WHIP
📷chat lobby on a raspi4; ☝WHIP url (for OBS)
since browsers won't allow webRTC to be negotiated unencrypted (https) you will need to run an SSL frontend in front of the built-in http server (see config.txt for that port) lots of better built-ins exist but I use a tool I wrote as a proxy [https://github.com/justinb01981/SSLTools] (maybe just use a (free) self-signed certificate generated by openssl(2) for now and import it into the conferencee's browser/OS certificate trust-store)
building requires 'go' to compile boringssl (so install those packages) from the base directory just run 'make all'.
- 8/15 - NO host setup necessary (beyond making ports accessible) - this is possible with the new stun_client.c code - but in airgapped networks config.txt is the way to go.
- 9/14 - OBS-direct (no browser) streaming support coming - see https://webrtchacks.com/webrtc-cracks-the-whip-on-obs/
- constructing a share URL:
<your_https_prefix>/content/index_broadcast.html?joinroom=<roomname>&camera=0
--- e.g. https://tinyurl.com/jbhatestypingthis
(drops a user in "lobby" with camera disabled)