The logfile you most recently uploaded (OBS logfile 5th of March 2018) states you have not disabled Windows GameDVR:
12:24:30.431: Game DVR: On
I did notice the webcam resolution change, which is where the error:
DShow: Failed to find crossbar (0x80004005): Unspecified error
Cropped up, not sure why it came up in the first place and not sure as to why it managed to resolve itself as well Possible reasons from what I can guess:
- Maybe webcam drivers need to be updated
- There is an underlying fault in the webcam driver that deals with crossbar properties being sent when requested
- Maybe OBS has an underlying issue with the requesting of the crossbar properties for webcams?
I don't have knowledge of code other than basic lua scripting (Very basic) Certainly not enough knowledge I imagine for the code required to interact with drivers. That is one for the dev to look at if there is an issue underlying in OBS.
Your most recent logfile is incomplete. It does not display any results of a recording/streaming attempt.
The logfile you uploaded prior (OBS logfile 4th of March 2018) to that does include a recording/streaming attempt, to which you had rendering lag:
19:36:45.268: Output 'adv_stream': Total frames output: 87098
19:36:45.268: Output 'adv_stream': Total drawn frames: 69781 (87274 attempted)
19:36:45.268: Output 'adv_stream': Number of lagged frames due to rendering lag/stalls: 17493 (20.0%)
I think for your CPU & GPU combination, you will have to run at lowest in-game settings to try and maintain 144fps. Even then I would say you will have fps drops below 144fps as a result of rendering the map textures.
I don't think you will be able to get rid of all the rendering lag so some areas of your stream will stutter/hitch as a result, at the frame rate.
Try lowering your fps in increments, go from:
144, 120, 100, 85, 75, 60.
Look for the above mentioned rendering lag/stalls line in your logfile after you have stopped a streaming attempt. At some point they will disappear.
At that point if you like, you can try to raise your in-game settings for better quality. Test each game setting individually and do a stream test for a few minutes' to make sure there is no return of rendering lag.
Best way to do that is to run your game without a frame limiter (Not recording/streaming either) and individually test each setting to find the sweet spot, whilst running a pre-defined 'benchmark' route where you have three locations:
First is a starting location:
- This can be anywhere you want, any type of scenery you want I generally choose the spawn-in location unless it is too far from the second location to get to within 1-2 minutes' time of running)
Second is a heaviest on fps location:
- This will be in the center of your benchmark route, It requires to be far enough away from the starting location that it has to be rendered whilst running to it (This location will generally have lots of debris/foliage/smoke/particle effects, shadows, lighting, etc)
Third location is a turn-around location:
- This will be the mid-point of your benchmark in regards to time duration of the route:
- The only requirement is it has to be far enough from the second location in order for it to be re-rendered again when you turn around (I generally choose a high vantage point for the turn-around location, so when you turn around the game has to render everything across the area you ran through)
That way you have a good consistency in regards to fps values, as well as a defined area for testing the effects of the settings in regards to quality of graphics changes.
It is always better if you can do the testing offline or on an empty map.
As a general rule of thumb you want roughly 10-15% higher frames than what you stream/record at, so you have headroom for the reduction in fps recording or streaming causes in heavy fps areas. I would look for around ~75-80fps minimum when testing settings as the game is multiplayer.
However, that is for 60fps recording/streaming and 60fps limit in-game. Because you are running at a higher frame rate in-game, those percentages will be higher.
I think for 75fps you want probably 85-95 fps.
For 100fps, probably 120-140fps.
For 120fps, probably 160-180fps.
For 144fps, probably 200+ minimum.
Those above are estimates as I just cap my fps in-game to 60 and record at 60, making sure my minimum fps in-game is never below 60fps at any time, if possible (Outside of initial loading, etc)
I do not know how exponential the increase in load and therefore the increase in required fps above what your set fps would need to be.
The good news is you can increase your bitrate to improve quality output of the stream, as you have no bandwidth frame drops. An example of the line is below:
Output 'simple_stream': Number of dropped frames due to insufficient bandwidth/connection stalls:
You will find it with the rendering and encoding output lines, towards the bottom of the logfile.
The best way to find the limit of your bandwidth is to:
- Increase your bitrate by 500 and then do a 3-5 minutes worth of streaming, stop the stream then check the logfile for the above output line.
- Once you have that line display in your logfile, then lower your bitrate by 500 and test for double the amount of time to see if that output line is displayed in your logfile.
- If it is present then lower your bitrate again, this time by 250 and re-test.
- If it is not present, then you have found your maximum stable bitrate.
I hope this helps!