From 0cef4b1c7886851397cfe24329b3b65d6e350534 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Tue, 24 Mar 2020 19:39:40 +0100 Subject: categorize options as good, bad, or ugly; move sections Features and Platforms to document DEVELOPMENT.md --- README.md | 182 +++++++++++++++++++------------------------------------------- 1 file changed, 55 insertions(+), 127 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index 9923797..c37ffa6 100644 --- a/README.md +++ b/README.md @@ -2,14 +2,18 @@ > Use for now, and try avoid more than 6 video streams +This is an overview of realtime audio/video conferencing option, +categorized as "good", "bad" or "ugly" +based on how recommendable they are +both politically, technically and practically. -## Recommendations -Ideal would be to self-host, -but no such solutions are readyly available in Debian yet. -Current recommendation is therefore to use a cloud service -built with Free software, light on resources, -and realistic to fully self-host later if needed. +## Good + +"Good" options use open standards and Free software, +is realistic to self-host on cheap, small computers +(even if concrete instance might be cloud-based), +and are readily usable. Generally most reliable is , so use that unless you need a specific feature unavailable there. @@ -57,6 +61,17 @@ Includes text chat (crucial in case of audio trouble). +## Bad + +"Bad" options use Free software, +but either uses non-standard protocols, +is too heavy for small-scale self-hosting, +or does not really work reliably. + +These are only relevant if you need some specific feature, +or for inspiration when exploring what is possible. + + ### tawk.space No login. @@ -76,181 +91,94 @@ Includes text-based scratch-space. Includes per-participant pointer. -## Features - -Functionality to consider when considering tool/platform. - - * topology - + mesh (P2P) - all processing at end-points, participants limited by bandwidth - + routing (SFU) - light server processing, participants limited by bandwidth - + mixing (MCU) - heavy server processing - * 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 - - + 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](https://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](https://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 - -[Jangouts](https://github.com/jangouts/jangouts) -using Janus -written in CoffeeScript - -[tawk.space](https://github.com/invisible-college/tawk.space) -using Janus -written in CoffeeScript -hosted at - -[SIP2SIP](https://ag-projects.com/sip2sip/) -using SylkServer and Janus -hosted at -and +### roll.call [Roll Call](https://github.com/mikeal/roll-call) audio-only hosted at -[Spreed.ME](https://www.spreed.me/) -using Spreed WebRTC -[Nextcloud Talk](https://nextcloud.com/talk/) -using Spreed WebRTC +### Jitsi [Jitsi Meet](https://jitsi.org/jitsi-meet/) using Jigasi and Jitsi Videobridge hosted at + +### Matrix + [Matrix](https://matrix.org/) using Jigasi and Jitsi Videobridge + +### BigBlueButton + [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 [Wire](https://wire.com/) proprietary-protocol [Free Software](https://github.com/wireapp/wire) stack written in Haskell, Rust, C + +## Ugly + +"Ugly" options use proprietary software. + +Avoid them, they are bad for society. + +### Talky + [Talky](https://about.talky.io/) cloud SFU service hosted at +### Me + [Me](https://join.me/) cloud SFU service -GoToMeeting +### GoToMeeting + cloud SFU service +### Zoom + [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 + Hangouts Meet cloud SFU service +### Webex + Webex Meetings cloud SFU service +### Skype + 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 + 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 + TeamViewer cloud SFU service -- cgit v1.2.3