Streaming server - intentions and ideas

thanks for your input and documentation! the only note that wasn’t obvious from the code is that discourse’s css has a max height of 500px for <video> tags, so it took me a while to figure out why the video wasn’t taking up the whole screen when it was in full screen mode, before i found that and overrode it.
also, not sure how much of a demand there is for such a thing, but i could make a templatized version of the theme component and put it up on github at some point. you can add components from github repos in discourse and include variables (like for the stream key and server address) which is nifty.

it would be awesome to have you on board for the télépresence/OBS server project! i will let you know when i am going to get started on that. will probably create it on separate architecture, but we could easily point its output to our existing server instead of twitch.

and i agree it would definitely be good to have some people stream from overseas in our next tests!

Hi! Recently I have been looking at this: GitHub - Novage/p2p-media-loader: An open-source engine for P2P streaming of live and on demand video directly in a web browser HTML page as a way to display live streams (HLS and Dash) in a p2p viewer. I am pretty sure this is the same player that PeerTube uses under the hood (based on WebTorrent), and it is compatible with a lot of frontend libraries like video.js and clappa.
My hope is that it could allow scaling of live streams to a large audience without extra server load. I am trying it out this week with an RTMP server and will post progress / repo if I get anywhere :slight_smile:

4 Likes

that sounds very cool!

sounds cool ! def keen to hear how it goes. my gut feeling was that p2p live streaming just wouldnt be that efficient (unless you introduce a super long lag) but happy to be proven wrong.

i will also be updating the videos.scanlines instance here shortly (stabler release with stream features is out in january) so we can try p2p streaming through that too :smiley:

2 Likes

So update, I followed @cyberboy666’s really great instructions at scanlines-technical-details/streaming-setup.md at master · cyberboy666/scanlines-technical-details · GitHub to set up nginx-rtmp on digital ocean, and then tried it with a basic video player and also a p2p player. It is amazingly easy to set up the p2p player, as it just uses client-side code and publicly hosted bit-torrent trackers. Here is the code for the p2p version: Glitch :・゚✧

and the regular hls player: Glitch :・゚✧

I noticed that the p2p version seems to have more stops and starts compared to the regular version, but I am also on a really terrible internet connection and have not yet played with any different parameters. It seems like what it does is for each chuck of stream, it tries to download it from a connected peer. If it cannot download by the time it is time to play that chunk, it downloads from the server. I want to learn more about how the chunking works, and also do more comparisons between the two versions.

1 Like

I think peerTube is using this same player for the streaming, but not 100% sure :slight_smile:

1 Like