Question / Help bad lag even at low res

goonagan

New Member
Even at a low 640p/30fps the fps decreases to a low of 24 and will fluctuate up and down drastically when playing any game really. I have a decent upload speed at around 10mbps(if not more) my CPU usage never gets above 15% and that fluctuates as well . I have a 1080p webcam that i lowered res to 480p/30fps as well. I tried changing bitrate,
even the encoder settings, almost everything already available to me via here or youtube . Ive got a i9-9900kf with a rtx2060 super and 16bg ram. Maybe my low ram??? Internet?? I feel like i should be able to do much much better. I appreciate the help :)
 

Narcogen

Active Member
Ok, from your log:

12:28:41.556: base resolution: 2560x1440
12:28:41.556: output resolution: 1280x720


You're using a base resolution of 4k, which means that's the resolution OBS will use for rendering frames. In a single PC setup, if you're running a display at that resolution, and a local application (game) at that resolution, it is possible to experience rendering lag. You're scaling your output down to a low resolution, but that only affects the load of the encoding, not the load of rendering.

This makes your downscale nice and smooth, at the cost of GPU load for rendering.

Are you running any of your displays at a high refresh rate, like 120hz or 144hz? Are all your displays at the same refresh rate?

12:28:41.556: YUV mode: 601/Full

Using the Full color space instead of Partial can increase load and decrease quality, since most users do not have displays that use this color space.


As soon as you start your stream, these errors occur:

12:30:25.165: error: out of range intra chroma pred mode
12:30:25.165: error: error while decoding MB 6 16
12:31:00.773: Switched to Preview/Program mode
12:31:00.773: ------------------------------------------------
12:31:03.435: Switched to scene 'Scene'
12:31:03.437: Switched to regular Preview mode
12:31:03.437: ------------------------------------------------
12:35:45.773: error: mb_type 36 in P slice too large at 0 8
12:35:45.773: error: error while decoding MB 0 8
12:37:47.691: error: cbp too large (53) at 12 24
12:37:47.691: error: error while decoding MB 12 24
12:39:19.837: error: out of range intra chroma pred mode
12:39:19.837: error: error while decoding MB 0 16
12:44:02.909: error: mb_type 735 in P slice too large at 0 16
12:44:02.909: error: error while decoding MB 0 16


Is the USB device you've got connected a capture card, or a webcam?

If this is a capture device and you're using this as a fullscreen source, then there's really no reason to have your canvas resolution so large-- it should be as large as this source.

If this is a webcam, I'm not sure what's going on-- these errors seem to indicate that the video feed coming from this device is corrupt and can't be decoded, so either it's not compatible with the property settings you've given it, or something else is wrong.

12:44:59.153: Output 'adv_stream': Number of lagged frames due to rendering lag/stalls: 1866 (7.5%)

And there's the rendering lag, which could be caused by a combination of the 4k canvas resolution, and possibly running the OBS window on a high refresh rate display, causing the preview to use more GPU.
 

carlmmii

Active Member
There are 2 things that stand out.

You're recording at 28fps. Don't. Use either 30 or 60, never anything in between. 28 does not fit evenly into any standard framerate, and will always result in jittery motion.

The other main bit is the rendering lag Narcogen mentioned. I would start by running OBS in administrator mode -- you already have game mode on, so running OBS in administrator mode should allow OBS to get more priority from windows for GPU utilization. I doubt the 1440p canvas is an issue -- that should be well within the capability of your GPU.
 

koala

Active Member
12:28:41.556: YUV mode: 601/Full

Using the Full color space instead of Partial can increase load and decrease quality, since most users do not have displays that use this color space.
As far as I know, the reason not correct. Load increase and quality decrease with encoding, yes. But as far as I know, all computer monitors display full color range. Windows desktop and all locally generated graphics is seen in full color range. May differ if you use a TV for computer display, but native computer displays use full.
Having said this, the common workflow for video material distribution uses partial color space for data compression. All video encoders, transmitters and players assume partial color space. In this path, material is usually converted to partial. If a streaming service is transcoding material (i. e. offering different resolutions for a stream), it is usually converted to partial, regardless of the source. Media players assume partial as default and may misbehave on full material by displaying wrong/distorted colors - the opposite of what is expected with full.

So if you encode for streaming, use partial. It saves bandwidth, so the quality increases more with that than the quality decreases due to removing a few colors.
 

Narcogen

Active Member
I watch YouTube on a television.

My understanding of the issue is that if you encode in the Full color space, it will only look correct on displays that also use the Full color space, and that is not every display. On displays that do not use the Full color space, content that is translated from Full to Partial will appear washed out.

If you encode in the Partial color space, there are tradeoffs, but it will look the same on displays that use either Full or Partial color space.

Partial is the default. A lot of people change that because they think Full sounds better than Partial, and then want to know why their YouTube footage looks bad.
 

koala

Active Member
My understanding is that if colors appear washed out, it is due to broken conversion between partial and full. Not the inability of a conversion between the spaces. If a display on a computer uses partial color space, and the video driver knows this, it converts any full material to partial and the display displays this perfectly fine. There is a well-defined conversion between full->partial, and partial->full as well, so if a converter knows which format source and destination is, there is a perfect conversion in both directions. Never washed out colors.

Washed out colors happen if given video data is actually partial, but the receiver assumes it is full. The other way round, given video data is full but the receiver assumes it is partial, results in drowned-to-black dark parts and blended-into-white for bright parts.

A converter can be the media player (it converts from the video color space to the computer color space) and the video driver (it converts from the computer color space to the display color space).

If the video driver thinks it has a full color range monitor connected, but the monitor is actually partial, wrong colors will be the result. And vice versa. For example, I have a native computer monitor that only processes full color space. Everything looks correct according to the color space test charts. In Nvidia control panel, I find a setting to activate "partial" output. It's the opened drop-down list at the bottom, the choices say "Full" and "Partial":
1581707583235.png


Now, if I choose Begrenzt (Partial), the colors of my desktop (including background picture) actually turns washed out. The explanation is it's because the monitor always assumes the signal "full" color range, but it is actually given "partial" output. The driver converts to partial, but the monitor uses this as full and don't convert back, so the colors become washed out.

Usually, you don't need to care about all this. Usually, systems configure themselves correctly. Usually, you just plug in a monitor and it is driven correctly. If you change something manually, it might become a source of confusion, because not every part in the video production+display pipeline is able to automatically detect the color space property of what it is receiving and what it is outputting. It assumes defaults instead. This includes the Full/Partial setting of OBS: Usually it's best to just leave it at its default (Partial).
 

Narcogen

Active Member
I am honestly beginning to wonder why I am bothering with this advice, so maybe I'll give it up.

Before that, let me ask this:

If you run a channel with hundreds, or maybe thousands, or maybe millions of subscribers or viewers:

How do you ensure all of them have a properly configured, working as intended, conversion from the less common color space to the more common one?

When they say, "videos on X's channel look fine, but the one on yours don't, so it's your setup and not mine" how do you respond?

How many viewers seeing the result of the incorrect, improper conversion are worth the improved visual fidelity of the experience who actually have a display that runs in that color space-- since that number is lower than the number of people who don't actually have that, but are just looking at the correct Full > Partial conversion?

And given that OBS users are famously trying to push for higher framerates, slower compression speeds, and better visual quality, which of those targets should they sacrifice a tiny bit in order to use Full instead of Partial?
 
Last edited:
Top