WebRTC Video Streaming Solution (one-to-many audio/video streaming)

4,738 views
Skip to first unread message

Prateek.

unread,
May 5, 2014, 7:56:35 AM5/5/14
to discuss...@googlegroups.com

Hi All,

I am a newbie in WebRTC. I have managed to run the demos and samples provided on the web. 

I have a simple requirement to live stream a video to multiple clients. Its like one-to-many-broadcast. All the Connected clients are not required to share their audio/video streams. They just need to see the remote video and hear the audio that is being streamed to them.

I am really confused as to how to proceed on with this task. All the examples I have seen have both the peers exchanging both audio/video, but I need a webRTC based solution for a simple video streaming like situation. Stream source could be a webcam or from a local file and at max say 100 users would be connected to a single peer (that would stream its Video/Audio).

I have some questions please help me out or show me a way to get past these.

1. Would a require a dedicated Media server to handle all outbound streams ? Would i require a situation like peer-to-server-toallotherpeers like situation ? Or could i do without  a server here ? 

2. How much bandwidth will be required to support 100 clients given a good quality of video.

3. If at all a server is needed to I need to code in the server by myself or is there some available for me to base my code on?

I don't know how to do this ? Is there an existing project that i could refer as a reference. 

Please someone guide me as I am getting overwhelmed with so much of information out there. I have come across servers like Asterisk but could not figure out where does it fits in my scenario or whether I require such a server or not ????

Any help would be highly appreciated.

Thanks & Regards,
Prateek.

aaroncray

unread,
May 5, 2014, 2:03:39 PM5/5/14
to discuss...@googlegroups.com
1) for a 1 media stream to many you don't require a media server (MCU). I'm pretty sure you could get away with using a TURN server; the turn server being used to handle the load instead of the peer.

2) It depends on the video quality you're streaming ~DVD quality single pass real-time ~= 1.5mbit/s so 100 * 1.5mbit/s = 150mbit/s of sustained throughput.

3) Check out this service it's very well maintained: https://code.google.com/p/rfc5766-turn-server/

Rock steady!

LuLop

unread,
May 6, 2014, 11:25:19 AM5/6/14
to discuss...@googlegroups.com
If you're considering a server side infrastructure, Kurento.org provides a WebRTC-to-HttpPseudostreaming bridge. This means that an incoming WebRTC can be served to WebM compatible browsers as a live WebM stream. Clients just use a standard <video> tag pointing to the web server.

Disadvantage: the <video> tag adds around 5 seconds of additional latency.
Advantage: the media server scales further given that there is no need of ciphering N times for N different WebRTC clients (all clients consume the same media flow, so the media server just replicates it and scales better)

Best.

L.


--

---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Jed

unread,
May 6, 2014, 5:02:06 PM5/6/14
to discuss...@googlegroups.com
Which architecture would you recommend  for 1 to 1 video chat with recording capability where you have 1 observer/admin monitoring the call. I have the apprtcdemo running on android which is using libjingle_peeconnection.jar library and streaming the media through a local turn server. I want now to be able to record and monitor the call. The call monitoring would be done in the browser while the 1 to 1 videochat would be on android/ios clients. I looked into asterisks, medooze, telepresence I'm still not clear whether those are my only options and if so how we would go about implementing webrtc android/ios libjingle_peerconnection.jar with them.

Thanks in advance for any guidance.

aaroncray

unread,
May 6, 2014, 5:16:14 PM5/6/14
to discuss...@googlegroups.com
Jed,

For 1 on 1 an MCU (medooze(audio+video), asterisk(audio) isn't needed. 

For mobile I don't think RecordRTC has been exposed to the API but it is easily implementable. Requires a C++/objective-c/javajni skill set background but any c++ software engineer can figure it out. Direct the engineer to this doc: http://www.webrtc.org/reference/webrtc-internals/viefile

aaroncray

unread,
May 6, 2014, 5:25:34 PM5/6/14
to discuss...@googlegroups.com
I should add: if you're going for a "real-time observer" scenario then recording on the client side then uploading isn't a solution. Then you will need an MCU like medooze. I'm not sure if medooze has an out of the box solution for recording media streams but if all you want to do is be able to watch the recorded conversation of a 1 on 1 session post session then I'd record client side then upload; way less resource intensive. 


On Tuesday, May 6, 2014 2:02:06 PM UTC-7, Jed wrote:

Jed

unread,
May 6, 2014, 6:04:39 PM5/6/14
to discuss...@googlegroups.com
Thanks for response aaron. I'm looking for the "real-time observer" scenerio. Medooze seems to support video recording and a flash client for the admin to watch a call live. The biggest obstacle/main priority right now is the integration of the appRTCDemo android app with medooze. I already have the android app doing 1 to 1 video call through my local turn server (RFC5766). As I mentioned before the app is using libjingle_peerconnection.jar to get media info and do the streaming. How would one go about doing that integration with medooze?

aaroncray

unread,
May 6, 2014, 9:03:44 PM5/6/14
to discuss...@googlegroups.com

Well if it helps: If all you want to do is observe then in your v1 product that's super easy already done via what you can hook in android, ios, firefox and chrome API today. That's just a 3 way mcu centered call with the observer in the "recv only" state (recv only I believe is implemented from what I can tell reading other discussion entries and just requires an SDP offer change). Your biggest obstacle will be your interfacing with medooze server and your signaling which I'd imagine is less difficult than writing a media server/MCU.  

aaroncray

unread,
May 6, 2014, 9:17:39 PM5/6/14
to discuss...@googlegroups.com
Oh I didn't see that last sentence. To integrate with Medooz (hopefully for you they already support SIP/Webrtc SDP's if they do or don't I don't know) you need to, using signaling (websockets, mqtt, socket.io (exends websockets outside of the RFC), etc..), have each of your clients send the SDP offer (peerconnection's createoffer) to what ever interfaces signaling to the Medooze server. Then the Medooze interfacing needs to generate a webrtc answer SDP which is relayed via your signaling back to the client. Then you set the remote sdp answer and the peerconnection framework takes it from there! From your peerconnections perspective they are making a call to the medooze server just like they would with each other. Good luck!

On Tuesday, May 6, 2014 3:04:39 PM UTC-7, Jed wrote:

Prateek.

unread,
May 6, 2014, 11:52:47 PM5/6/14
to discuss...@googlegroups.com

Aaron, regarding our discussion let me clarify the exact scenario that I am trying to meet through the use of WebRTC.

We have a community gathering every week and I need to set up a system that can stream the happenings to other people who for some reason could not attend. They just need to view the stream, no audio / video inputs are required from their side.

Also the stream needs to be saved. If for some reason the member could not view the live stream he could then view the saved recording at his/her preferred timing.

This is the only simple scenario I need to achieve.

Regards,

Pratik.

Jed

unread,
May 7, 2014, 10:52:26 AM5/7/14
to discuss...@googlegroups.com
Another MCU is Telepresence. 


Do you know how this one hold up to Medooze?

Thanks

Alex Flavia

unread,
Jun 27, 2017, 1:27:18 AM6/27/17
to discuss-webrtc
Hey there!
I can vouch for Streamaxia's WebRTC tools and its OpenSDK live streaming library. They have never failed me and helped me save a lot of time (and money, for that matter!). You should give a try by download it for free, and test it out. You have to check out their app too. It serves as a demo for the real deal and it works smoothly, at least for me! Go ahead, and convince yourself of its worth. 
Hope this helps!

praful narola

unread,
Jul 24, 2019, 6:27:18 AM7/24/19
to discuss-webrtc
Hello, May it possible using Web RTC without using third party SDK integration?

Alexandre GOUAILLARD

unread,
Jul 24, 2019, 11:16:51 AM7/24/19
to discuss...@googlegroups.com
it s software, everything is possible, the impossible just takes a little bit longer.

you can start writing a stack from the specs, using third party libs or not.
do you have the time (several years)?
do you have the skills (no comment)?

usually the answer is no and people go for already existing pieces of code to help then reduce the time requiremen and the difficulty to a level they can handle.



--

---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.


--
Alex. Gouaillard, PhD, PhD, MBA
------------------------------------------------------------------------------------
President - CoSMo Software Consulting, Singapore
------------------------------------------------------------------------------------

Esad AY

unread,
Jul 31, 2019, 2:28:41 AM7/31/19
to discuss-webrtc
Hi,

I just wanted to add an extra option.

OpenVidu(built on top of Kurento) offers everything you described out of the box on your exact scenario.
They have pretty good demos to start with.

Hope this helps.

Regards
Reply all
Reply to author
Forward
0 new messages