Question / Help Choppy stream/unplayable games. Help with what my setup should be?

ScottBrio

New Member
Hey guys,

I've been struggling for the past few weeks here with getting quality (watchable streams). I'm doing Ableton Live streams as well as Battlefield 1 streams, but I'll focus on the BF1 streams for these questions.

My computer was pretty under-powered, so I went out and bought a new Rizen 1700 8 core processor, ASUS B350M-A motherboard, 16gb DDR4 RAM, and two Elgato capture cards. I have a 29" ultra-wide monitor and fast 100mbps internet. My current pitfall is my old NVidia 650ti Boost graphics card.

Basically, I've tried streaming BF1 on LOW settings with 1080/60, 720/30 and everything in between and the OBS Studio stream makes the game unplayable. I even tried using my second capture card with my old i5 laptop to stream, and while it kept my gameplay fast enough, its' CPU is too slow for any sort of watchable stream.

Is my graphics card and/or RAM holding me back? How are most people doing these streams? One ultra-beefy PC? I know the pro's use two PC's which I can do if I have to but I'm needing some guidance. I'm SO close to having a great stream and want to eventually become a partner, however I can't seem to get the stream ironed out.

Thanks in advance!

Log File: https://gist.github.com/8699d22cca292ffbea5cdc5a2004b8e1
 
19:27:45.716: - source: 'Desktop' (window_capture)
19:27:45.716: - source: 'LG Widescreen Display' (monitor_capture)

Those two sources would be conflicting with each other, you are also far better off hooking directly into the game via Game Capture than by using Desktop Capture, as Desktop Capture forces OBS to use RAM instead of grabbing frames from the GPU directly.

Try Game Capture after removing those two capture sources, it may just sort it out for you.

19:44:24.301: Output 'simple_stream': Number of lagged frames due to rendering lag/stalls: 1080 (10.6%)

Your GPU just can't keep up with your current setup. Even though you are using x264 encoder, OBS still requires your GPU to render the frame.

To help your GPU out a lot with the added workload of recording/streaming, if you do not already you should cap your fps to 60 (61-63 if you have issues with screen tearing)
- You can use V-Sync which will induce input lag, or MSI AfterBurner/EVGA Precision which uses a hard limiter for fps capping.

If you do keep it enabled, try disabling preview mode as it uses some resources of your GPU as well.
Having your stream playing in the background also takes up GPU resources, though having it paused/closed makes it a little difficult to monitor performance, etc.

With upgrading to the Ryzen chipset your capture cards are pretty much obsolete, unless you want to create a dedicated streaming PC, though with your Ryzen 1700 you don't really need that anymore either.

Your GPU is definitely holding you back in regards to performance, you should have no issue streaming at 1080p60fps, VeryFast preset, High profile (Using High profile can cause problems for viewers of your stream that use mobile devices) at any bitrate (Provided you have enough bandwidth to allow for it)

Bitrate guide for Twitch:
https://stream.twitch.tv/
Bitrate guide for YouTube:
https://support.google.com/youtube/answer/2853702?hl=en

Hope this helps!
 

ScottBrio

New Member
Man, this is a huge help. I would have never known the monitor and window capture would be conflicting with each other. I'm going to buy the PowerColor Red Dragon Radeon RX 580 and it's got 8gb GDDR5 so hopefully that will bring my graphics up to speed with the rest of my setup. I'll look into capping the FPS as well. Thank you for the help!
 
No problem at all, I wish that was an option for me, though my R9 290X is still happy to push 60fps with a little compromise on max graphics for BF4.

I recommend using MSI Afterburner for fps capping as it is easy to setup, plus you also have On Screen Display options available with Riva Tuner Statistics Server (Bundled with MSI AB) which is very configurable:
http://www.guru3d.com/files-details/msi-afterburner-beta-download.html
Quick YouTube search on how to set it up:
https://www.youtube.com/watch?v=I3sEnjwkfrg - Note - Has dance music which I personally cannot stand. I just mute.

HWiNFO64 is also a great tool to monitor your CPU temps, voltages, etc. Especially if you overclock:
https://www.hwinfo.com/
It also has an option in sensor settings to display sensor readings via RTSS, which I find handy.
 

ScottBrio

New Member
That's great advice- I'm hoping to not have to tweak too much past configuring OBS to be honest. I'll check it out though as software FPS capping would be nice- hopefully with my new card it won't matter much :)

Cheers!
 
Your new card will definitely assist, you should get roughly on par performance as the below YouTube video:
https://www.youtube.com/watch?v=UgOzILg5G64

By the way, I never actually answered your question in regards to how do most streamers do their thing...
With current hardware it is actually feasible to get the job done (And quite well in terms of quality) on one PC, provided you have the specs to put the x264 encoder as preset slow as possible, as the preset is what really pushes quality at the expense of exponential performance loss.
A lot of popular streamers would more than likely have a dual streaming setup, built before this years Ryzen and Intel's latest re-hash of i7 came out, though both PC in the setup would probably be pretty much top of the line hardware, not for budget.

If you are streaming on Twitch, I would go for 720p60fps, with the slowest preset possible, using main profile for compatibility for your stream viewers that have mobile devices/low spec network bandwidth speeds, high profile if you find that there are none that do, using 6k bitrate (As long as you have the bandwidth allowance yourself)

If streaming on YouTube and can push towards 9k+ bitrate, then I say stream at 1080p60fps, with the slowest preset possible using main profile for compatibility for your stream viewers that have mobile devices/low spec network bandwidth speeds, high profile if you find that there are none that do.
 
Last edited:
For an idea of what sort of quality you might have when streaming BF1, though not entirely sure about the preset you would be limited to using:

Also given that PUBG is not known for optimization by any means, I recently came across a person on Reddit that posted a Twitch video footage link, his PC specs are said to be:
  • CPU = i7-8700k @4.8Ghz
  • GPU = Zotac 1070 mini
  • Ram = Corsair Vengeance x2 8gb @3000Mhz
  • NVMe SSD 960 EVO M.2
He claims the footage is done at slow preset, high profile, 6k bitrate. It is probably the best quality I've seen for PUBG streaming game play to date on Twitch:

https://www.twitch.tv/videos/203095353

Link to the reddit post of his:
https://www.reddit.com/r/obs/comments/7eghjc/streaming_pubg_with_i78700k_at_cpu_usage_preset/
 

ScottBrio

New Member
Ok.. I got my Radeon 480 8gb graphics card installed and things have been much better! Check my most recent stream and my log file:

Log File: https://gist.github.com/aea1c62a9a656f90ddc4f2060bac5f93

Most recent stream: https://www.twitch.tv/videos/205484455

I'm currently at 720/30 and software encoding, running low settings on Battlefield 1. The gameplay is DEFINITELY playable, however I'd say I'm experiencing a 5-10% performance hit still (a bit of in game lag while streaming).

Can you guys think of anything that could speed it up further?

Thanks for the help!
 

BK-Morpheus

Active Member
Log file shows some CPU limits, that caused skipped/lagged frames from encoding. Reduce x264 profile from slow to fast or faster.
 

ScottBrio

New Member
Ok cool- I've raised it to ultra fast and still see a bit of lag in the gameplay, but it's definitely better. Also having the overlay in my stream seemed to help since I have an ultrawide 21:9 monitor- the extra information (pixels) that don't need to be constantly reproduced (vs full screen gameplay) definitely seemed to help. I'll continue to tweak and report back. Hopefully this will help other streamers with similar setups :)
 
You should be able to run Ultra Settings at a capped 60fps in-game at 2560x1080 without any issues, even when streaming/recording whilst using the x264 encoder.

In your logfile I noticed you have Windows DVR enabled, that may be a cause of the performance issue as even when you are not using it having it enabled in Windows settings it will always hook into the game process and commit resources (Similar to what OBS does when OBS is open, though more aggressively as it also buffers for replay recording)

Can you set your Video Output to the below settings:
Base Resolution: 2560x1080
Output Resolution: 1680x720
Downscale Filter: Lanczos
Frame Rate: 60

Can you set your Encoder Settings to the below settings:
Encoder: x264
Rate Control: CBR
Preset: VeryFast
Profile: High
Bitrate: 6000

In OBS Settings can you make sure to have High Priority checked as well, this should make Windows commit priority to OBS, giving you a more consistent stream output.

Can you do another stream test with the above changes for at least a few minutes, then upload the current logfile please.
 
Top