OBS and NDI: 3 Letter Acronyms Aren't Always A Bad Thing
2019-12-20 - I recently got my hands on a Ryzen chip. I’m going go test how well it works with the stuff below and see if I can’t come up with a better, cheaper ingest machine. I’m curious as to how well that $50 Athalon machine would handle pulling all of this off, as that’d make a strong case for a sub $200 ITX build that could fit in a bookbag and eliminate the need for us having a big tower on stage all the time.
I do tech stuff for a thing called SmashErie. Sometimes it’s complicated, usually it isn’t. But sometimes it is, and this is one of the times it was sorta complicated. We needed a solution to getting video streams from the stage, to the commentary room. Prior to this, we were using an RTMP setup that resulted in around 5 seconds or so of latency between live gameplay and what the commentators were seeing, and synchronizing the cameras and the gameplay was miserable. We had to use the Elgato Game Capture software to stream the gameplay separately, and I wouldn’t wish that on my worst enemy to be honest. Elgato, your software is trash. Please fix. Or don’t, I don’t really care. We don’t have to use it anymore. Now, setup is borderline turnkey. All we have to do is configure our streams initially in vMix and we’re ready to go. vMix has been a bit of a godsend and is ultimately responsible for making our stream go as flawlessly as it did this last event. I personally think it looks pretty damn good. Huge shoutouts to EposVox (YouTube - Twitter) for his help with some last minute hardware changes.
Is this for me?
Maybe. If you have a spare rig sitting around, it’ll be cheaper to pick up a capture card of some sort rather than buying a Spark HDMI. If you don’t, it may be simpler to buy a Spark HDMI and go that way. But, if you need multiple input sources (like we do, which was the driving force behind this decision), it would likely be easier to do it this way rather than using a purpose built HDMI-to-NDI solution. Going forward, I’d like to see just how low I can drive the price down. The price of a capture card is fairly fixed, but there are plenty of options that tend to fluctuate a bit on the used market when they go out of favor with professional video production companies. A used Haswell i5 (u)SFF machine can be acquired for around $100 on eBay, and a grey market Windows or Windows Server key can be acquired for cheap.
Quick and Dirty Concept Build
- HP 600 Desktop w/ i5-4570 (~$100)
- RX 560 LP (~$130-180)
- Kingston 120GB SSD ($20)
- Elgato HD60 Pro ($160)
- vMix Basic HD ($60)
- Windows Server 2019 Standard ($8)
It should total out to be less than $500, and will grant you up to 3 sources with the Basic HD key. If you need more than that, you’re looking at $350 for the HD key. Bear in mind, I didn’t actually test this. I’m just providing a rough estimate of what you could use to get up and running with this.
Alternative Software Stack (saving $60 on vMix)
- vMix Basic (non-HD, used explicitly for cameras if you don’t need HD streams from them)
- OBS-NDI
Take the Elgato stream in to OBS and use OBS-NDI to create an NDI output. Using vMix, you can take the camera input and output it as standard definition NDI streams that you can easily ingest. We use our cameras as player cameras, and as such they’re fairly small and basically resized down to the SD resolution that vMix Basic offers for free. The main and obvious downside of this solution is that you have to manage two different pieces of software and may have synchronization issues.
Ingredients
For our setup, we have 2 main machines (and our Hyper-V host which acts as our router). The first machine (ingest) is left on the main stage and has all the streams feeding in to it, the second machine (stream) is the one that ultimately handles the streams and broadcasts to Twitch. The ingest machine is really the one that matters here, as your streaming PC presumably already has been proven to stream well. If not, go look up suggested stream builds. The stream machine itself can be somewhat modest considering it does a fairly limited amount of true processing, you’ll just want a decent GPU and a modern processor. You can definitely get away with a lot less than a 9900k and a 2080Ti. However, for your ingest machine, you’re going to want an Intel chip. I’m not sure how well Ryzen handles the instruction sets that make this fairly low impact on Intel chips, but Bulldozer doesn’t support them. I would assume Ryzen should be capable of this, but YMMV. I also don’t know how far back in the “Core iX” series you can go back and still reap the benefits here, but Haswell+ was what I proposed and Haswell is what we tested to good success.
Ingest Machine
Hardware:
- i7-4790k
- 16GB of RAM, probably. I don’t remember. It doesn’t matter much. This is fairly CPU dependent.
- GTX 1080Ti (Probably overkill, but I didn’t test it with the 970 I had laying around)
- Elgato HD60 PRO
Software:
- Windows 10 Pro (Or Home. Again, it doesn’t really matter.)
- vMix
The Setup
There’s not much to it. Basically just install vMix on the ingest machine, OBS-NDI on the streaming machine, and make sure your network exists and works. Add your inputs in vMix’s input area, use the Output/NDI Settings area to map each input to an NDI output, and add them on OBS. That’s pretty much it. Sorry that it’s kinda anticlimactic.