Got it. Well, keep it up, I'll try my best to help you where I can. I realize you're asking on OBS but just to get the paltforms out of the way I'll start with that.
There are settings you can do on the platform but after you said "Originally I streamed on Facebook and Youtube," I didn't catch if you returned to streaming on them again or if you changed to another platform. In any case, I realize now that you're only asking about hardware, Windows 10, or OBS settings so I'll skip all the platform optimizations.
***Before I get into it though, recognize that at least back in February 2019, Facebook latency between 4 to 15 seconds was considered normal and on YouTube latency between 10 seconds to 90 seconds was considered normal. YouTube has improved since then but just be aware that since you mentioned it depends on the time of day, it's most likely just network congestion. With Stay at home orders, the general world population has seen increased network traffic on a global scale and streaming platforms that haven't been around as long may not have had the server redundancy to handle these higher loads of broadcasters and viewers.
If you're doing a speed test at the times of day you're experience up to 45 seconds of delay and it still shows 11mbps upload rate, then it's likely that YouTube or Facebook servers are overwhelmed and they will give bandwidth priority to more affluent streamers, especially if you're OBS is still showing 4,000 kb/s upload bitrate. You can confirm whether or not this is true by checking another streamer with similar amounts of viewers or streaming to another platform.***
With that said, It would be easiest to troubleshoot if you had screenshots of your OBS "Output" and "Advanced" settings because some of the information you provided was somewhat broad, but I'll address what I can based on what you're saying in order of appearance.
My average Up/sec is 11MB and I run all cams in 1280x720 (no scaling the output).
So I understand that in the device properties, you're running that resolution, but how are the cams shown on your actual scene within the editor (as in how are the sources being displayed)? The cameras would be under "Sources" and then in the Scene itself how do you have the cameras set up? Do you display all the cameras at the same time or do you switch between each one?
When you say no scaling the output, does it mean you don't down scale under the video output under "Output" OBS stream settings OR (and I'm guessing this next one is what you mean) do you mean you don't resize the video feed itself within your scene? Because then bears the question of, what is your input resolution and output resolution? (Under OBS Settings for Video).
- Some general tips here to improve your latency (by way of encoder performance, strain on hardware etc.) is to ensure your "Base (Canvas) Resolution" matches or is less than your desktop resolution/monitor resolution.
- Then for the Output (Scaled) Resolution, ensure that the Aspect ratio matches your Base resolution. On top of that, if you're not married to streaming at, for example 1080p 60 FPS, then downscale the output to 1280x720p at 30 fps for example. The reason for this is that, particularly for Facebook, for whatever reason, Facebook says the recommended max bit rate is 4,000 kb/s but for a quality stream, 1080p at 60 FPS usually is recommended to set 5,000-6,000 kbps bitrate. While that affects more so quality, you'd be utilizing hardware resources unnecessarily. And if that's the maximum Facebook actually allows and not just recommends then you're bottle necking your stream anyhow.
- Downscale filter will just determine how taxing it will be on yours system, so to lighten the load Bilinear is the least taxing while Lancoss is the most demanding. With 8GB RAM, depending on how your camera is displayed, any overlays you have, etc. you may want to adjust accordingly. This is where a screenshot of your streaming stats would be useful as it would tell me how much resources OBS is using during your stream.
I keep a bitrate of 4000 and audio at 128-260, and run the low latency settings.
This goes back to what I am trying to figure out. Do you mean low latency settings on YouTube? Before OBS 25.0.4 there used to be a setting under "Advanced" and under "Network" that included a checkbox for a setting labelled Low Latency Mode or something like that, it's been since removed but if you have "Enable network optimizations" or "Enable TCP pacing" checked then try unchecking them. Otherwise, also see if Bind to IP is set to Default. While it might be tempting to select an IP6 address (the one with a bunch of numbers and letters rather than the usual 192.168.x.xxx some streaming platforms don't have compatibility for IP6 yet but, these are probably irrelevant because of OBS reporting your bitrate being maintained.
My latency runs between approximately 15 seconds to as much as 30-45 depending on the time of day. I think the extremely long times are out of my control and just network lag.
Yea probably. But might as well double check and go over possibilities
just in case right? I feel ya :)
But are there any suggestions for any settings whether to the hardware, windows 10 or OBS that I may adjust to decrease latency to my current full potential?
Under OBS Settings > Output and change the output mode to Advanced.
- For the encoder, make sure to select the H264/AVC Encoder (AMD Advanced Media Framework), if you don't have that option, then QuickSync H.264
- Make sure to check Enforce streaming service encoder settings (though you can set it manually, since you don't have a graphics card and aren't technically savvy, this will be fine
- If you down scaled your resolution as earlier mentioned under your Video settings then do NOT check the Rescale Output box.
- The next part will vary because of your system but if you have options for pre-sets choose either balanced or speed. Prep-pass you'll probably want disabled if you're using on-board graphics.
For Windows
- This doesn't usually apply, and based on your bitrate probably won't apply, but let's throw it in there to double check: you can check your firewall settings and make sure port 1935, 443, 80 are all open.
- Check your router settings, it's usually not necessary but you can port forward 1935 as that is what OBS uses. Again, this rarely makes a difference and is usually only special cases.
- Aside from the usual stuff you can find online like making sure privacy settings are allowing use of cams, all windows services relating to TCP or media sharing are running, etc.
For hardware
- Won't really affect latency as much but more so performance, you can check AMD Catalyst settings for performance
- Check your network card settings and ensure it's on performance mode, turn off any power management settings that might disable your network card when not in use.
- Again, make sure your video resolution matches your monitor resolution but if your laptop resolution is higher than 1080p and is like 1440p or something then just run the base resolution at your monitor's but then down scale
I also use an app that can turn a cell into a wireless webcam that I then grab as a window capture source; it also captures audio ...Now really the 3rd mobile cam is if the events continue to grow and not required at this time.
With that said, do you still have it on and running or no? Not sure if your laptop is connected by Wifi or if it's directly connected, but if you're not using it I'm sure you know now to have the app running. Additionally, being connected by wire will always provide better conectivity.
...it also captures audio which I never use anything except a Blue Yeti Condenser Mic as my only input.
If that's the case, then go to your OBS Settings > Audio and under Devices, disable everything you're not using just to free up CPU resources
Now all the laptop and windows settings have not been adjusting for live streaming in anyway and that's why I asked if doing anything in them could help reduce latency.
Just mainly check for your power settings really. Ensure that it's on performance mode and not battery save mode or Balanced.
I have no decoder other than the CPU.
You mean to say, you have no other graphics card other than the CPU. The ENcoder is the codec your on-board graphics (in this case your CPU) uses to compress the video feed. The DEcoder is on the streaming platform. Now there's also something called transcoding, which is when the platform allows for your viewers to set the resolution themselves. If you don't have that, depending on the platform and stream ranking, then viewers will be forced to receiving whatever resolution you set and if it's too high for their bandwidth, they'll experience delay on their end from slower intake/digest of your stream.
When it comes to live streaming, stability is more important than quality or as latency would be related to how quickly your chat will see what your response to what they're saying. So the less they're buffering or lagging, the better the perceived latency.
Both logitech's are usb plugged into the laptop each with 6' extensions.
That won't make a difference until you pass 10'
TLDR- (Too Long Didn't Read - the in a nutshell version) stream super late at night like around 3AM-5AM just as a tester and if you see you have no latency issues, then it's definitely just a server side issue. The best thing you can do is either find another platform that can provide you with better latency (I may be biased but Twitch usually has better latency simply out of the demographic they serve) or try your best to quickly build your viewership so that you can get priority on the various platforms.
Probably the only thing i didn't cover was if you were multi-streaming, then that adds a whole other factor of possible latency factors but I'll presume you're not doing that. If you still want to post the settings I'll take a look but there's plenty of resources out there. Best of luck to ya.
Here are some quick references for your conveniences to the platforms you mentioned:
YouTube's
Latency tips and
Bitrate tips
Facebook's
Bitrate Recommendations
If you decide to try Twitch and need help with that, hmu!