aboutsummaryrefslogtreecommitdiff
path: root/DEVELOP.md
blob: ff67ed1a78c3df44ff53f28bbd6e30a271833e0a (plain)

#Designing a realtime audio/video conferencing service

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
  • security
  • 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 WebRTC SFU/bridge/broker written in C

Mediasoup WebRTC SFU written in C

Kurento WebRTC MCU written in C++

drachtio SIP "SFU" written in C++

Licode WebRTC MCU written in C++

Medooze WebRTC Media Server WebRTC/SIP MCU written in C++

SylkServer SIP "SFU" written in Python

Spreed WebRTC WebRTC SFU written in NodeJS and Go

Jitsi Videobridge XMPP SFU written in Java

Jigasi WebRTC bridge to Jitsi Videobridge written in Java

Platforms

multiparty-meeting using Mediasoup (and optionally drachtio and Kurento) written in JavaScript hosted at https://letsmeet.no/

Jangouts using Janus written in CoffeeScript

tawk.space using Janus written in CoffeeScript hosted at https://tawk.space/

SIP2SIP using SylkServer and Janus hosted at https://sip2sip.info/ and https://webrtc.sipthor.net/

Roll Call audio-only hosted at https://roll.call

Spreed.ME using Spreed WebRTC

Nextcloud Talk using Spreed WebRTC

Jitsi Meet using Jigasi and Jitsi Videobridge hosted at https://meet.jit.si/

Matrix using Jigasi and Jitsi Videobridge

BigBlueButton using Kurento written in Java

mConf using Kurento written in Java and Ruby

OpenMeeting written in Java

Wire proprietary-protocol Free Software stack written in Haskell, Rust, C

Talky cloud SFU service hosted at https://talky.io/

Me cloud SFU service

GoToMeeting cloud SFU service

Zoom Meetings 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