Question / Help Low transmit FPS

Noctaire

New Member
So...a few months back, I was streaming and suddenly my framerate drops to the point the video is choppy. I thought it was a bad connection but it seems to have become a constant. I hadn't streamed in a while, but I'm starting back up again and sure enough - 16-18fps.

I have an iPad hooked to the computer via USB and use QuickTime to capture the video. OBS 24.0.6 (64 bit), just grabs it straight from QuickTime. I have 2 monitors hooked onto my laptop (one via HDMI, the other via DisplayPort). It's a 2012 series Macbook Pro. I checked the config in OBS and video is set to 1920x1080, Bicubic downscale filter, common FPS of 60. Output/Streaming is x264, 1920x1080, CBR, 4500kbps, 2 second keyframe. Audio bitrate is 160, no replay buffer. Watching CPU during the stream, it never popped over 55% or so. I have 3 scenese configured - 2 with stills and one with the iPad/QT output. Sitting here idle right now, it's showing 2.2% and 18-20fps. I have a mesh wifi network via NetGear Orbi, and my SpeedTest results are typically 200M/10M or thereabouts (just tested it again as well).

Although I've been using OBS a bit now, I'm not quite certain how to troubleshoot this issue. Network seems fine, hardware/software seem fine, no obvious settings issues.... Can anyone point me towards some tips for optimizing the setup, troubleshooting, or other ideas?

EDIT: Looks like something in the network but I'm not finding it.

14:44:32.351: Output 'adv_stream': Total frames output: 1321 (29952 attempted)
14:44:32.351: Output 'adv_stream': Total drawn frames: 13004 (46379 attempted)
14:44:32.351: Output 'adv_stream': Number of lagged frames due to rendering lag/stalls: 33375 (72.0%)
14:44:32.351: Output 'adv_stream': Number of dropped frames due to insufficient bandwidth/connection stalls: 28631 (95.6%)
 
Last edited:

Narcogen

Active Member
14:44:32.351: Output 'adv_stream': Number of lagged frames due to rendering lag/stalls: 33375 (72.0%)

That's a significant amount of rendering lag. You're significantly overloading your GPU, and on a six year old laptop I don't think 1080p60 is a realistic goal. Try 1080p30 or 720p60 but even there you may run into problems on this hardware.

GPU Overload Issues

14:44:32.351: Output 'adv_stream': Number of dropped frames due to insufficient bandwidth/connection stalls: 28631 (95.6%)

The last line indicates that you are dropping nearly all of your frames, indicating your network connection is not close to being able to sustain your selected bitrate. In addition, wireless is never recommended for streaming. Mesh networks especially not because of additional latency.

Speedtest results are not reflective of streaming performance or suitability. If you're streaming to twitch and have access to a Windows machine or a boot camp partition, use TwitchTest:

https://r1ch.net/projects/twitchtest
 

Noctaire

New Member
So it would seem. The odd thing here is that it was working just fine some months earlier. I wiped the system and did a fresh install of Mac OS; it improved, but still nowhere near to what is needed for a good stream. I did try dropping the frame rate to 30fps as well as simplifying scenes - I have an image and the iPad, nothing more - and running only OBS, QT, and ReStream’s chat client.

It’s looking like I need to build a new streaming box and I am seriously considering going with Windows to get the bigger bang for the buck.
 

Narcogen

Active Member
Windows 10 and an Nvidia card with the Turing encoder is the best bang for the buck currently available (1650 Super or 1660).
 

Noctaire

New Member
Windows 10 and an Nvidia card with the Turing encoder is the best bang for the buck currently available (1650 Super or 1660).

I’m currently trying to figure out what the base requirements would be to make it work. I’ve no issues with getting a box just for streaming and nothing else, so....

I’m not actually running the game on the streaming system, so I would think lesser specs would suffice....
 
D

Deleted member 166350

So the gist is this: For streaming, 1080p60 with x264 encoding at anything slower than VeryFast, only recent Ryzens seem to have the core count to pull this off - I was pondering using my old i7 4790 in a dedicated streaming rig but 1080p60 will be hard on that one as well. I could use the QuickSync encoder on Windows, however at the low bitrates that Twitch allows quality will suffer (to a point where using x264 with VeryFast will be preferable again).

NVEnc does have better quality compared to QuickSync at those low bitrates, but it still pales in comparison to x264 unless you have a Turing-based card, whose NVEnc encoder seems to have significantly improved its quality at lower bitrates (hence Narcogen's suggestion to look at a 1650 super or better).

So you might either go for a beefier Ryzen machine (maybe a used Ryzen 1700/2700) and do CPU-based encoding with a good-enough used GPU or an even cheaper used Intel-based build and use the Turing encoder. Throw all that in a small case (Micro-ATX or ITX) and use Remote Desktop/Websocket to run it as a headless machine (running without a dedicated GPU will be an issue as the iGPU might not be able to keep up with OBS' compositing of frames, so you'll get rendering lag).

That said, streaming any game with quick/erratic movement to Twitch at 1080p60 is a bit of fool's errand, as the low bitrate will not be able (even at medium/slow x264 presets) to cope with the changes between frames and the image will get blocky. Dropping down to 720p60 will loose some fine detail, but the image will be cleaner and your CPU requirements will go down a bit as well.

As for recording, if you have the disk space, just use NVEnc or QuickSync and a high bitrate (30/35mbit can be enough, Nvidia's ShadowPlay defaults to 50mbit). The hardware encoders scale really well with high bitrates, so the difference to x264 becomes negligible.
 
Last edited by a moderator:
Top