[asterisk-dev] Asterisk and video conferencing

Johan Wilfer lists at jttech.se
Mon Mar 31 05:47:01 CDT 2014


Hi!

I've spent some time scratching my head thinking about video 
conferencing and how to go about it. Right now we use Meetme as a audio 
bridge for pstn connectivity and so on. But our users ask for video and 
screen sharing. I can see four distinct ways to go about this:

1. Asterisk right now - supports 1-1 video, and with confbridge 1 video 
stream can be sent to the other participants. (The codec must match 
thought, and a key-frame are not sent immediate if the video source is 
changed so there will be a garbled video stream until next key-frame.)

2. MCU - multiple video streams encoded in single stream. For video do 
the same as with audio. That means decode each stream, compose a new 
stream with all the participants layered out nicely. While this works 
for audio it consumes huge amounts of cpu to do this for video.

3. p2p - multiple video streams sent peer to peer. Each participant 
sends the audio/video to every other participant. This eats a lot of 
bandwidth for the users and can work for smaller conferences, but in a 
conference with 10 participants each will have to have a very good 
upstream connection.

4. Jitsi Videobridge - multiple video streams from server, but send only 
your stream to the server. The jitsi videobridge the distributes the 
stream to all other clients. This will eat a lot of bandwidth for the 
server, but not for the clients. This is also how Google Hangouts works. 
So if you are 10 participants you will send one stream to the server 
with your audio/video and receive 9 streams from the server for the 
other participants.


To be able to scale reasonably I think option 2 is out of the question. 
And option 3, p2p, eats to much bandwidth for the clients (and doesn't 
require an asterisk anyway).

What you lose with option 4 is everything asterisk excels at: pstn 
connectivity, fine-grained control of each participant in the bridge.

What are your thoughts on adding Jitsis approach in regards to video to 
Asterisk for confbridge or even ARI? No composing of video, just 
relaying the other participants streams to each other in the bridge. 
Then it's up to the client in the other end to display these streams in 
a reasonable way (like Google Hangout, and https://meet.jit.si/).


-- 
Johan Wilfer



More information about the asterisk-dev mailing list