Question / Help Remote-Multi-Source Stream Questions

SDub

New Member
As with a lot of people, I have a few friends who like to play the same video games together. A lot of us don't have time to edit videos together of all of us playing so I'm looking into streaming as an option.

A lot of inspiration for how this might work came from this guide: https://obsproject.com/forum/threads/how-to-set-up-your-own-private-rtmp-server-using-nginx.12891/

Here's what I would like to do: Have multiple streams (anywhere from 2 to 6) dynamically switching on a single twitch channel.

My guess is that each person would set up OBS to stream to a central nginx server. Their OBS stream would include their own mic audio + webcam + game sounds (no VOIP program sounds like skype). Whoever hosts the nginx server downloads each stream and mixes it into a single stream which is broadcasted to twitch.

The hard part is dynamically switching between each source. Does this functionality exist like in google hangouts or would it need to be developed? I don't mind getting my hands dirty in a little programming.

Thanks,
Scott Walter
 
There are a few RTMP servers out there, nginx with the RTMP addon is just the most commonly used here due to being free, and an easy guide existing. There are others out there which I'm pretty sure have functionality for multi-caster fallover, as well as idle fill loops and even cut-in ads. None I'm aware of will do split-screen multiplexing if you're looking for that, but if you want simple handoff when someone starts or stops streaming, it should be do-able.

Take a look at Red5 or Wowza. Setup is significantly more complicated, and may not be free, but it should be able to do something like what you want if you're looking to keep a sequential-streamer channel live.

If you're looking at split-screen though, that's going to get a LOT more involved, and sync between the games is going to be a massive issue. There's a reason that tournaments just use a ton of capture cards and production-grade matrix switches.
 
Hi Ferret, thanks for lending your knowledge. Yeah I wasn't necessarily thinking split screen per-say. Here's the scenario:

We're all playing at the same time, and the stream cuts in between different players POV on some sort of event, for instance here's some pseudo code:

@EventListener
AudioFromStream(StreamSource src)
{
if(povNotChangedRecently) {
switchPov(src)
}
}

just an event that listens for audio from the mic on a stream and switches to them if it's above a certain decibel level, and doesn't switch to frequently to avoid being jarring. The gimmick of automatic switching is a cool enough idea, I don't think it matters if that particular player is doing anything interesting, but sometimes people will start shouting when they're doing something cool so the idea may work.
 
Ah yeah, that one would be significantly harder to do. The sequentials are more set up to let someone be streaming, and still let the next streamer connect in, and do a graceful switch-over when the last streamer stops (or run a predefined filler video, or grab a random one from a pool if no one is casting). Not meant for concurrent changeover, though I'd expect with enough coding work, it could be made to happen. Hard part would be decoding and doing signal processing on all the active streams, as normally it's just packet-relay. Of course then the logic to switch the input over without dropping the downstream feed.

Definitely not a plug-and-play proposition though, just giving fair warning.
 
Back
Top