[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