Multi-user Jingle
Speaker | Sjoerd Simons |
---|---|
Time | 2009-01-21 11:40 |
Conference | LCA2009 |
XMPP protocol extension for managing peer to peer video and audio sessions.
XMPP
- Based on XML.
- Formally known as Jabber.
- RFC3920 and RFC3921.
- Extensions using XEP (extension proposals).
- JID - looks like an email address.
- juliet@domain.com/resource - multiple clients on same account.
- message, presence, info/query
Jingle
- Extension to XMPP
- Supports RTP
MUC - Multi User Chat
Multi User Jingle
- Should work ok for clients that don’t support Multi-user Jingle.
- Joining Multi User Jingle session split into two stages to prevent race conditions.
Steps to join a session:
- Announce that you’re preparing to start or join the session. Send a presence message.
- After all clients that nnounced they were preparing to join have done so, update your presence with payload mapping.
Multi User Jingle
- only needs basic infrastructure.
- each client can present conference in different manner.
- does not scale to large groups, due to bandwidth requirements.
- Limited to number of streams a client can decode.
- upstream bandwidth
- local bandwidth
Further work
Problem: not scalable
- RTP relay. Clients send streams to a relay, which relays to multiple clients.
- Mixer - client send streams to a mixer which combines streams into one stream. Unfortunately clients no longer have control over presentation.
- Combined relay and mixer. Clients choose if they want to receive a mixed stream or not. Allows clients to decide on tradeoff.
Problem: each client encodes data once, so must do so using method that is compatable with all other clients.
- Scalable Video codecs. Low resolution low quality base layer. Add extra layers for extra quality. Client decides which layers it wants to send. H264/SVC exists but is heavily patented. No free standard available.
https://telephathy.freedesktop.org/wiki/MultiUserJingle
https://www.nlnet.nl/project/mujingle/
https://farsight.freedesktop.org/
https://nice.freedesktop.org/