How to make a component for live streaming?

Allon Prooit Posted in Component Development 4 years ago

Hey y'all! I want to make a component for doing live streams, or have one made. I think this would be an excellent addition to OSSN! Please let me know if you have some good ideas or something already in the works. Thanks!

Replies
us Rishi B Replied 4 years ago

Arsalan, this thing about WebRTC requiring extra server bandwidth (for sockets or whatever else) is not entirely true, transmission happens between peers (browsers), servers are used just for signalling (relaying IP addresses of connecting peers and some more info), you can ROUTE your transmission from a central server (for fail overs), but can also most certainly do without it for free. If for whatever reason, traffic can't be directly relayed between peers, there are other options like the TURN server as well: https://webrtc.org/getting-started/turn-server

Lastly, here are a few options for hosting plans that specifically mention WebRTC support from around 10 seconds of googling, I'm sure you can find more: https://webrtchost.com/hosting-plans/#Streaming-Only

Indonesian Arsalan Shah Replied 4 years ago

We have working on something similar but can not provide you ETA.
WebRTC still requires you to setup a sockets and most of web hosts didn't provide that. Besides that your server resources still uses to handle P2P connection.

OSSN structure is a combination of most of CMS like Joomla, Wordpress and Elgg, but not actually forked.

us Rishi B Replied 4 years ago

sorry, I misspoke a little bit. Facebook does use PHP/JS but strictly for frontend stuff, and they use a runtime environment called HipHop for PHP which turns PHP into highly optimized C++ and then compiles that using g++. So you could look at it as either PHP or C++ powering their frontend I suppose. Most of their codebase is backend stuff related to scalability and written in C/C++/Java/Python. They also use Erlang for their chat system while OSSN's is just php interfacing with a mysql db like most everything else in ossn.

us Rishi B Replied 4 years ago

I'm really surprised nobody has mentioned WebRTC - it is by far the easiest and most cost effective way to add live streaming capabilities. I have been asked to develop something like this multiple times and would actually really like the experience of doing so, but it would be a rather time (+ money) consuming job, and the people who've asked me about this in the past were looking for a quicker solution. so I never got too deep into it, but would definitely be interested in the opportunity if you still want something like this. Using WebRTC would NOT be server intensive or anything like that, I'm quite sure it'd be fine even on shared hosting if your ossn site operates on the same host pretty quickly. You should check out http://webrtc.org and https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API and then contact me!

P.S. Facebook's source is not based on OSSN. They use mostly C/C++/Java/JS for web stuff and OSSN is all PHP/JS (I have multiple friends there). I think OSSN is actually forked from another open source social network (possibly Elgg?) but I'm not sure about that, you'd have to ask the team.

us Allon Prooit Replied 4 years ago

Just to be clear... even Facebook, which seems to be based on OSSN 3.0, is using Red5 to allow live streaming via mobile devices only. Right now I have an App developed that serves my dark adult social network, the 3NCIRCLE N37WORK to Android devices at present. Working on developing an iOS app but haven't had the time to complete it. You can find the Android app here. Will be moving ahead full steam with this live stream component project and putting it first in my list of things to accomplish. Let me know if you care to contribute!

us Allon Prooit Replied 4 years ago

With regard to the open source Red5 Pro media server, it is based on Java but has moved past Flash. It now uses HLS, WebSockets, and RTSP for live streaming. They have an SDK for Android, iOS, and HTML5, so no worries about exclusion. I can have a Red5 Pro media server installed by my hosting company on my account. It does require at least 4GB of RAM though so this would assuredly be only for those that can afford to pay around $80 a month for hosting services. It may take a while to develop, but I think it's worth it.
Check out the documentation.
Red5 Open Source
Red5 Pro documentation
Red5 Pro on GitHub

German Michael Zülsdorff Replied 4 years ago

To start my day a little sarkastic I'd say:
Running Red5 needs Ossn 1.0 as pre-requisite. :))
From what I read the server seems to be based on Java and the client browsers need Flash!
And that would mean a real high end server and to exclude all members using ios from the beginning, as Steve Jobs had good reasons to stay away from that code with its never ending security holes.

So ... not a good idea to my opinion.

Indonesian Arsalan Shah Replied 4 years ago

That is the good question that i am also looking for answer about integration. Most of paid APIs can be integrated bit easily but people can not willing to use them. Integrating own server with system is kind of complex stuff.

us Allon Prooit Replied 4 years ago

If I can do this I plan on using a Red5 server. Seems to be the best to go with. How do I integrate with this?