<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2014-03-31 15:17 GMT+02:00 Johan Wilfer <span dir="ltr"><<a href="mailto:lists@jttech.se" target="_blank">lists@jttech.se</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
2014-03-31 13:41, Olle E. Johansson skrev:<div class=""><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
On 31 Mar 2014, at 12:47, Johan Wilfer <<a href="mailto:lists@jttech.se" target="_blank">lists@jttech.se</a>> wrote:<br>
</blockquote>
><br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">

4. Jitsi Videobridge - multiple video streams from server, but send<br>
only your stream to the server. The jitsi videobridge the<br>
distributes the stream to all other clients. This will eat a lot of<br>
bandwidth for the server, but not for the clients. This is also how<br>
Google Hangouts works. So if you are 10 participants you will send<br>
one stream to the server with your audio/video and receive 9<br>
streams from the server for the other participants.<br>
<br></div><div class="">
What you lose with option 4 is everything asterisk excels at: pstn<br>
connectivity, fine-grained control of each participant in the<br>
bridge.<br>
<br>
What are your thoughts on adding Jitsis approach in regards to<br>
video to Asterisk for confbridge or even ARI? No composing of<br>
video, just relaying the other participants streams to each other<br>
in the bridge. Then it's up to the client in the other end to<br>
display these streams in a reasonable way (like Google Hangout, and<br>
<a href="https://meet.jit.si/" target="_blank">https://meet.jit.si/</a>).<br>
</div></blockquote><div class="">
<br>
Why? The jitsi video bridge exists and work fine :-)<br>
</div></blockquote>
<br>
I think it's hard to integrate them and keep the functionality from both, maybe I'm wrong. But Asterisk does the audio mixing really great, and you have very fine-grained control on recording / muting / menu's etc. You may want the audio in asterisk to do video follow speaker.<br>

<br>
So that's my question - could this fit into asterisk architecture to get multiple videos instead of one. I find the Jitsi approach very clever to avoid hitting the cpu too much.<div class=""><br></div></blockquote><div>
<br></div><div><br></div><div>I don't think there's an easy way to do that except by placing multiple calls (e.g., N+1, 1 for sending your audio/video and receiving the mixed audio, N for receiving each of the remote videos) and heavily customizing MeetMe/ConfBridge for the purpose.</div>
<div><br></div><div>A naive hack to do so using what Asterisk already provides out-of-the-box may be to rely on N+1 ConfBridge rooms for this, e.g., have a ConfBridge room everybody attaches to for the audio mixing, and N ConfBridge rooms that only act as reflectors for each user's video (e.g., I call room 1234 and send my video there, everybody else who's interested in my video can call the same room as recvonly; you call 1235 to do the same, and I call 1235 to get yours; etc.). I don't see this scaling very well (if it iven works, that is), but it may be worth a try. </div>
<div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
What you are forgetting here is the thing that has stopped us from<br>
doing really cool stuff with video - patents and licensing. The jitsi<br>
video bridge is a nice workaround, but not optimal if you have a lot<br>
of different devices. You put the load on the device and in<br>
bandwidth-constrained environments that's not good.<br>
</blockquote>
<br></div>
I think this is a related but different issue. In a 1-1 call you may want to transcode to a different codec, or downsample to save bandwidth I think with VP8 you can do that by just dropping packets, if I got it correctly.<br>

<br>
On a conference-call however you may want all video streams (or just one, but asterisk can already do this). Regarding bandwidth people tend to have a lot more bandwidth downstream than upstream.<div class=""><br></div></blockquote>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class=""><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Video is heavily dependend on peer2peer negotiation and doesn't<br>
really fit well in a PBX b2bua architecture... The jitsi model could<br>
work - but the SDP o/a handling would be really hard to get right in<br>
Asterisk.<br>
</blockquote>
<br></div>
This is really the question, if this fits into the Asterisk architecture? Because I expect the clients to be able to decode and play the video streams. Transcoding would be cool also, but is resource intensive.<div class="">
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I've been lobbying hardware manufacturers to provide video cards for<br>
Asterisk where we can have licenses to do transcoding and<br>
reformatting, so far with no success. Cisco's H264 codecs recently<br>
became available for us in the Open Source world thanks to a generous<br>
solution by Cisco. I guess funding is needed to add anything cool to<br>
Asterisk using them. We can do MCU-style stuff, reformatting - but to<br>
do transcoding we need another codec :-)<br>
<br>
Google VP8 is around, I don't know what Digium's legal team have to<br>
say about us using it.<br>
<br>
</blockquote>
<br></div>
Given how cpu intensive transcoding video I wouldn't like that to hit my cpu anyway.. :-)<br>
<br></blockquote><div><br></div><div><br></div><div>That depends... we've been doing this for a while with an ad-hoc videomixer we built for the purpose. We have a simple videomixer that receives video frames from Asterisk and does transcoding/composition on its behalf, so that as a client you always get a single audio/video flow no matter how many people are in the room.</div>
<div><br></div><div>Yes, it's intensive, but not that much if you're ok with low resolutions, or don't expect a lot of people at the same time being active. It is more intensive when VP8 is involved, though, I guess because of the fact that VP8 is heavier by itself.</div>
<div><br></div><div>Anyway, as I said this is currently done in an external component that Asterisk talks to. I guess that this may at least leverage the licensing problems Olle mentioned before, as you could have the interaction mechanism in place and configurable, so that you only enable it if you have all the licenses as needed (a bit how proprietary audio codec plugins can be used right now).</div>
<div><br></div><div>Lorenzo</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Random thoughts...<br>
</blockquote>
<br>
Thanks Olle!<span class="HOEnZb"><font color="#888888"><br>
<br>
<br>
-- <br>
Johan Wilfer</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
-- <br>
______________________________<u></u>______________________________<u></u>_________<br>
-- Bandwidth and Colocation Provided by <a href="http://www.api-digital.com" target="_blank">http://www.api-digital.com</a> --<br>
<br>
asterisk-dev mailing list<br>
To UNSUBSCRIBE or update options visit:<br>
  <a href="http://lists.digium.com/mailman/listinfo/asterisk-dev" target="_blank">http://lists.digium.com/<u></u>mailman/listinfo/asterisk-dev</a><br>
</div></div></blockquote></div><br></div></div>