diff options
-rw-r--r-- | README.md | 168 | ||||
-rw-r--r-- | TODO | 48 |
2 files changed, 216 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..81cf235 --- /dev/null +++ b/README.md @@ -0,0 +1,168 @@ +Multi-party: mesh, routing, or mixing. + +## Features + + * stream source efficiency + + Support [simulcast](https://webrtcglossary.com/simulcast/) + i.e. encode multiple streams that an SFU can "hop" between + + Support spatial/temporal/quality [SVC](https://webrtcglossary.com/svc/) + i.e. encode a stream that an SFU can efficiently "slice" without recoding + + Support suspending simulcast streams + <https://webrtchacks.com/suspending-simulcast-streams/> + + Support [SCReAM](https://github.com/EricssonResearch/scream) + * security + + Support [PERC](https://webrtcglossary.com/perc/) + + Support [ZRTP](https://en.wikipedia.org/wiki/ZRTP) + * stream forwarding efficiency + * meeting management + + Personalized Meeting rooms + + Scheduled/Meet-me Meetings + + Instant/Direct Meetings + + Presence Support + + Recording + + Text chat + + Screen sharing + * conference stream efficiency + + Skip video streams beyond a threshold of participants + + Skip video streams tied to quiet audio streams + + Skip streams of explicitly tagged non-speaker participants + * conference management + + Conference Recording + + force-mute participants + + "Raise a hand" for muted participants + * meeting room + + Dual stream for dual screen + * Dial in from telephone + * Dial in from SIP audio-only + * Dial in from SIP with video + * Dial in from SIP with SIMPLE text chat + +## See also + +### Tools + +[Janus Gateway](https://janus.conf.meetecho.com/) +WebRTC SFU/bridge/broker +written in C + +[Mediasoup](https://mediasoup.org/) +WebRTC SFU +written in C + +[Kurento](https://www.kurento.org/) +WebRTC MCU +written in C++ + +[drachtio](https://drachtio.org/) +SIP "SFU" +written in C++ + +[Licode](http://lynckia.com/licode/) +WebRTC MCU +written in C++ + +[Medooze WebRTC Media Server](https://github.com/medooze/media-server) +WebRTC/SIP MCU +written in C++ + +[SylkServer](http://sylkserver.com/) +SIP "SFU" +written in Python + +[Spreed WebRTC](https://github.com/strukturag/spreed-webrtc) +WebRTC SFU +written in NodeJS and Go + +[Jitsi Videobridge](https://jitsi.org/jitsi-videobridge/) +XMPP SFU +written in Java + +[Jigasi](https://jitsi.org/jitsi-meet/) +WebRTC bridge to Jitsi Videobridge +written in Java + +### Platforms + +[multiparty-meeting](https://github.com/havfo/multiparty-meeting) +using Mediasoup +(and optionally drachtio and Kurento) +written in JavaScript +hosted at <https://letsmeet.no/> + +[Jangouts](https://github.com/jangouts/jangouts) +using Janus +written in CoffeeScript +hosted at <https://talk.space/> + +[tawk.space](https://github.com/invisible-college/tawk.space) +using Janus +written in CoffeeScript +hosted at <https://talk.space/> + +[SIP2SIP](http://ag-projects.com/sip2sip/) +using SylkServer and Janus +hosted at <http://sip2sip.info/> +and <https://webrtc.sipthor.net/> + +[Spreed.ME](https://www.spreed.me/) +using Spreed WebRTC + +[Nextcloud Talk](https://nextcloud.com/talk/) +using Spreed WebRTC + +[Jitsi Meet](https://jitsi.org/jitsi-meet/) +using Jigasi and Jitsi Videobridge +hosted at <https://meet.jit.si/> + +[Matrix](https://matrix.org/) +using Jigasi and Jitsi Videobridge + +[BigBlueButton](https://bigbluebutton.org/) +using Kurento +written in Java + +[mConf](http://mconf.org/) +using Kurento +written in Java and Ruby + +[OpenMeeting](https://openmeetings.apache.org/) +written in Java + +[Wire](https://wire.com/) +proprietary-protocol [Free Software](https://github.com/wireapp/wire) stack +written in Haskell, Rust, C + +[Talky](https://about.talky.io/) +cloud SFU service +hosted at <https://talky.io/> + +[Me](https://join.me/) +cloud SFU service + +GoToMeeting +cloud SFU service + +[Zoom Meetings](https://zoom.us/) +cloud SFU service +supporting "up to 50 participants at once" +(but client bandwidth and resource demands and stability of such session is unknown) + +Hangouts Meet +cloud SFU service + +Webex Meetings +cloud SFU service + +Skype +cloud SFU service +suporting "up to 25 participants at once" +(but client bandwidth and resource demands and stability of such session is unknown) + +MoxieMeet +cloud SFU service +requiring Google account +supporting "up to 32 users all on video together" +(but client bandwidth and resource demands and stability of such session is unknown) + +TeamViewer +cloud SFU service @@ -0,0 +1,48 @@ + * Document setup of coturn + + Enable options needed for WebRTC + <https://github.com/coturn/coturn/wiki/turnserver#webrtc-usage> + * Support adaptive streaming + + Simulcast + - HLS for MPEG4 + - DASH for WebM + + Scalable Video Codec (spatial/temporal/quality) + + DASH for WebM (VP9 only?) + <https://webrtchacks.com/sfu-simulcast/> + <http://www.rtcbits.com/2017/04/howto-implement-temporal-scalability.html> + * Support MSE-aided sub-second streaming + <https://stackoverflow.com/questions/5858936/html5-live-streaming/39750043#39750043> + + Support client-side graceful fallback to HLS/DASH (or maybe RTMP) + <https://www.quora.com/Which-protocol-is-best-for-a-video-live-streaming-from-a-server-to-an-Android-RTSP-RTMP-HTTP-or-something-else> + * Support variety of streaming setups + + stream live (e.g. IP cam) RTSP feeds to web clients + <https://flashphoner.com/rtsp-demo-player> + + stream WebRTC Screen Sharing session to webRTC clients + <https://flashphoner.com/screen-sharing-from-a-web-browser> + + host WebRTC 1-on-1 videochat session + <https://flashphoner.com/webrtc-video-chat-in-a-browser> + + grab webcam with WebRTC and stream to web clients + <https://flashphoner.com/browser-online-broadcasting-from-a-web-cam> + + accept RTMP Live Encoder streams and forward as RTMP feed + <https://flashphoner.com/broadcasting-of-a-streaming-video-from-a-professional-video-capturing-device-live-encoder-via-the-rtmp-protocol> + + proxy WebRTC to HLS broadcasting feed + <https://flashphoner.com/live-broadcasting-of-a-webrtc-stream-to-hls/> + + grab webcam with WebRTC and forward streams as RTMP broadcasting feed + <https://flashphoner.com/webrtc-as-rtmp-re-publishing/> + * Support WebRTC multi-party videochat session + <https://flashphoner.com/webrtc-video-conferencing/> + + Support SFU interactive limiting of concurrent streams + <https://support.livestorm.co/article/21-invite-someone-on-stage-during-the-webinar> + + Support SFU automated limiting of concurrent streams + by routing only most noisy audio and corresponding video + + Support MCU/SFU hybrid limiting of concurrent streams + by down-mixing audio and route only video tied to most noisy audio + * Support bridging with SIP + + accept SIP calls and forward streams as RTMP feed + <https://flashphoner.com/broadcasting-of-a-sip-call-to-rtmp-cdn> + + accept SIP calls and stream to web clients + <https://flashphoner.com/browser-based-web-telephone-with-the-sip-support> + + initiate SIP calls from web clients + <https://flashphoner.com/online-call-from-a-website-to-mobile-phones-and-sip-click-to-call-function> + * Offer test tools + + WebRTC Troubleshooter + <https://caniuse.spreed.me/> |