Question / Help Best hardware for mass source streaming

INS4NITY

Member
Hello everyone,

(This is probably going to be a wall of text, but it's kind of all required for context of my question. TL;DR at the bottom)

I'm looking to build an Ubuntu box whose sole purpose would be to stream eSports matches for the organization I'm with. The most intensive workload it will ideally handle will be:
- NDI feeds from 14 PCs
- NDI feeds from 12 webcams (associated with 12 of the above PCs)
- SDI feeds from two cameras
- Streaming to either YouTube, Twitch, Livestream.com, or (ideally) Restream.io at 720p60fps

I already know that I will need a 10Gb/s network card and an SDI capture card to handle the connectivity that I'm aiming for. My problem lies in trying to figure out what the base computer needs to be specced at. Does OBS play better with more cores, or does it favor per-core performance? (i.e. would it be more cost-effective to build a system around two older Xeon 5675s, or a single Ryzen 2600/2700) Would it require a bunch of RAM, or would 8GB-16GB be enough? Would a dedicated GPU be a good idea?

TL;DR: What's the best - and most cost effective - computer setup that you'd recommend to ingest and stream a ridiculous number of sources?
 

Narcogen

Active Member
To be honest I don't have any good suggestions, but please update on your progress, I would be very interested in seeing how this project turns out.

When you say dedicated GPU, I'm not sure what you mean. OBS absolutely needs a real GPU to function properly, and certainly needs the best you can give it given the scenario you describe above. Dedicated as opposed to... what?

Do you have a budget for this? Because I'm honestly wondering what kind of hardware you'd need to simultaneously handle 26 incoming NDI feeds.
 

INS4NITY

Member
Dedicated as opposed to integrated, for hardware rendering. Sorry, I guess that could have been a bit more clear.

Our budget would ideally be in the ballpark of $800 for the computer portion (so, excluding monitors, capture devices, peripherals, etc.), but that's obviously going to be dictated in the end by the reality of how well the system actually works.

And yeah, I'm sitting here wondering how efficient NDI capture will actually be, as well. I may end up borrowing some of our lab's HP Z240 workstations to see how they handle multiple NDI streams, just to get an idea.

Edit: I should also mention that while I'd rather run this on Ubuntu, it may end up running either Windows 7 or 10 for the sake of simplicity with some of the peripherals.
 

Narcogen

Active Member
Ah, I thought you might be using OBS on that end also.

Please keep me updated, I wish I had enough hardware to run a test like this.
 

INS4NITY

Member
So I'm back, and I have some (not completely scientific) results.

It appears that adding a 1080p60 NDI source adds ~3% CPU load to an i7 7700 system running Windows 10 with a gigabit connection. This is just in Studio Mode, no encoding happening with either recording or streaming. I tested up through five inputs, which consistently added an average of roughly 3% up through ~14% max CPU utilization. This would actually seem to indicate that my ideal setup is relatively simple with high-end consumer hardware.

So then, next question; is OBS a multi-threaded workload? I ask only so I know whether it would be better to purchase a modern Ryzen 7 or a Core i7
 
Last edited:

INS4NITY

Member
Awesome. When the time comes, I'll test the setup with a 2600 first, then if that's not enough I'll bump it up to a 2700, or whatever AMD's new high-end processor will be, assuming it's launched in time. Either way, I'll report back with the results. Thank you very much for the input, @Narcogen
 

sonnic

New Member
Hi! This is exactly the thing I'm also planing to build. We're building a Gaming studio with up to 15 gaming PC + small YouTube studio where we'd like to do all kinds of stuff. The plan is to have game tournaments and to live stream them with commentators.
We'd have Unifi 24 port switch + Unify Security gateway, and all PC-s would have full duplex 1Gbps lan cards. I'm wondering what hardware should we put into OBS PC that would "pull" the picture from all gaming PC and their associated web cams?

Is something like this even possible? Is it possible to have one PC that would gather all 15+15 (PC + Webcams) inputs and another that will do just encoding to YouTube (so we don't over power one PC)?

Any info/input is appreciated!
 

INS4NITY

Member
Hey @sonnic,

Awesome that we're planning very similar projects! I don't have anything concrete to tell you, but if you refer to the post a few above yours, you can see that a few days ago I found that on nearly identical HP Z240 workstations, adding a 1080p60 stream should linearly increase CPU usage on the OBS machine by roughly 3%. Now, I don't how that compares to other CPUs, but that would mean that if all you were trying to do was view all the streams and switch between them, any configuration with a Cinebench score of >1176 (best i7 7700k test) should be more than adequate (3%*30=90% + overhead for other programs. Like I said, a better CPU would be, well, better)

Now, what I CAN do is tell you what my setup is going to be. This isn't me saying it will work, but it's what I'm hoping will so that in a few months I'm not sinking my organization's money twice if I have to rebuild this. Parts are as follows:
  • AMD R7 1700 or better CPU
  • 16GB of any compatible DDR4-3000 or better RAM
  • MSI x370 GAMING PLUS ATX motherboard
    • Rationale: MSI has a reputation for good overclocking boards, which may come in handy, and this is one of a relatively short list of motherboards that has three PCIe x16 slots. In my ideal scenario I'd find an AM4 motherboard that's mostly x16, x8, and x4 slots, but none seem to exist. If anyone has any ideas to improve this bit, I'd love to hear them.
  • Norco RPC-432 rackmount case
  • GTX 750 1GB or better GPU
    • AMD CPUs don't have integrated graphics, and it'd be nice to have a NVENC card to fall back on if CPU encoding isn't feasible.
  • Any reputable semi/fully modular >=650w 80+ gold PSU
  • 2x 27" monitors
    • One for studio preview, one for multiview
  • Blackmagic Decklink Duo and Blackmagic Intensity Pro
    • For capturing direct feed of cameras and/or game consoles
  • Quanta LB4M network switch
    • 1Gbe link to all the competition PCs (and 33 other network devices, in your case) with two 10Gbe uplinks; one to the OBS machine and an extra one for the network, if your infrastructure supports it
  • Any cheap reliable 10Gbe PCIe card
The above should add up to roughly $1100-$1300, depending on how good of deals you manage to get on all the components
 

sonnic

New Member
Hi! Thank you for this elaborate report.

Let me just get this right.

If we want to "pull" the image + webcam (up to 720p) from the gaming PCs at 1080p@60 this uses ~200mbps of bandwidth per each computer (screen video + webcam). So in another words, the streaming machine (NDI OBS) get's "hit" with 15 x 200mbps. This is why, the link from gaming pc to the switch is enough to be 1Gbps, but from the switch to streaming PC it has to be 10Gbps, because 15 * 200 mbps = 3000 mbps and that's three times the 1 Gbps connection. I'm I right? This is the switch we're planing to use: UniFi Switch 48 -
Total Non-Blocking Throughput 70 Gbps/Switching Capacity 140 Gbps + two SPF+ ports. I can connect the streaming PC directly using SFP+ ports so I can get 10Gbps from the switch to the streaming PC.

Another question I have is regarding using the CPU vs. GPU encoder (x264/NVENC/QuickSync). If we want to mix all of those signals and then produce the final 1080p@60 stream that goes to YouTube what kind of encoder should we use - CPU or GPU?

Thx!
 
Last edited:

INS4NITY

Member
If we want to "pull" the image + webcam (up to 720p) from the gaming PCs at 1080p@60 this uses ~200mbps of bandwidth per each computer (screen video + webcam). So in another words, the streaming machine (NDI OBS) get's "hit" with 15 x 200mbps. This is why, the link from gaming pc to the switch is enough to be 1Gbps, but from the switch to streaming PC it has to be 10Gbps, because 15 * 200 mbps = 3000 mbps and that's three times the 1 Gbps connection. I'm I right?
Yes, correct. My thought process accounts for a peak bandwidth transfer of 250Mb/s for each source, which means that with a 10Gbe connection you should theoretically be able to connect 40 individual NDI sources before the network becomes a bottleneck. You must consider, however, that at peak both sources could take up half of a gigabit ethernet port's bandwidth on the gaming PC. The likelyhood of both streams peaking at the same time would be pretty minimal, though

This is the switch we're planing to use: UniFi Switch 48 -
Total Non-Blocking Throughput 70 Gbps/Switching Capacity 140 Gbps + two SPF+ ports. I can connect the streaming PC directly using SFP+ ports so I can get 10Gbps from the switch to the streaming PC.
That looks pretty similar to what I'm going to be getting, if not a lot more expensive

Another question I have is regarding using the CPU vs. GPU encoder (x264/NVENC/QuickSync). If we want to mix all of those signals and then produce the final 1080p@60 stream that goes to YouTube what kind of encoder should we use - CPU or GPU?
That's a great question that I honestly don't have an answer for. I'd say that it depends entirely with how much of the CPU is tied up with the NDI ingest. If there are still enough CPU resources to encode the stream by itself, that's obviously ideal. Otherwise I'd fall back on an Nvidia GPU
 

INS4NITY

Member
Nope, none yet sadly. Our student senate didn't manage to vote on ratifying our group as an official student organization before the final budget meeting, so it'll be at least well into the fall before I can go anywhere with this unfortunately
 
Top