I am going to build a video streaming app which is going to quite similar to twitch 's live stream or youtube 's live stream with live chat also. It is going to be app on top of react-native . The stack I am going to use is
- Node.js - for server and the stream
- React-Native - for front-end
- MongoDB
- socket.io - for notifications and all
- webRTC - dont know it will help cause never used it but have to learn this as recommended by many
And now I think this is enough but by problems are
- How the video from the front-end will go to node.js and then server will broadcast it at an link which users can use to watch
- how the comment will reflect to this link
- Am I going to need any third party apis like twilio or pusher for this
Use deepstream.io, gives added layers of security and is super customisable and crazy fast.
You will also need a lib for webRTC on the frontend, unless you want to build your own. There are many out there on github/gitlab.
Yes, if you're looking at a webapp then you will defo need to use webRTC. If you use webRTC, and you're only sending it to the other people connected on the webapp then there's no real need for some kind of media server to handle streams. webRTC is point to point. The thing you definitely need is just signalling, so that you know where to send the webRTC to, i.e. the watchers.
So having a link is a good idea, and you can just do what twitch does, by going to a URL of the broadcasters channel and then just send them the stream.
You're also thinking about this at an interesting time due to safari just picking up webRTC too. So you'll have a wider range of devices and browsers to target - this has it's inherent issues remember though.
Look at deepstream's documentation to understand how pub/sub, events, channels and rpc's work. Yea, you could use pusher it might be easier initially but personally I start with the stack I intend to continue with, even if the learning curve is steeper. Of course, the stack has to fit the problem to solve. Definitely also look at some webRTC resources.
Enjoy, hope this helped. :)