AMD Ryzen 9 3950X Still Grainy Stream

Suuperflie

New Member
My single PC setup:
CPU: Ryzen 9 3950X
GPU: EVGA GTX 1080 SC
MOBO: Asus ROG Crosshair VIII Hero X570
RAM: G.Skill Royals 32 Gb 3600/CL16
SSD: 1TB Aorus PCIe 4.0

I stream at 1080p and have been switching between 48 and 60 fps on Twitch and there's no difference in graininess. I usually play at 1440p and downscale to 1080p, but i even downscaled my monitor to 1080p so there was no downscaling needed and it didn't make a difference. I use 6000 Kbps with a 6000 Kbps buffer on x264 medium encoder settings and profile set to main and key frames at 2. I stream World of Tanks and understand it's a fast moving scene, but I have another friend who also streams WoT, but he's got a 2 PC setup but his streaming PC is only an FX 8350 with a GTX 1660 and he uses nVENC and his stream is clean at 1080p/48. My single PC should be more than capable to match his, especially since x264 medium is slightly better than new nVENC. I have 0 frames dropped for rendering or encoding. I have 500 down 20 up internet. Average time to render fluctuates between .8 and 1.1. I don't understand why my stream still gets more grainy than others.
 

Attachments

  • 2020-08-24 10-47-31.txt
    25.6 KB · Views: 74

qhobbes

Active Member
1. The version of Windows you are running (1909) has a limitation which causes performance issues in hardware accelerated applications (such as games) if multiple monitors with different refresh rates are present. Your system's monitors have 2 different refresh rates (119 and 60), so you are affected by this limitation.

To fix this issue, we recommend updating to the Windows 10 May 2020 Update. Follow these instructions if you're not sure how to update. If you do not want to update Windows, set both monitors to the same framerate or disconnect a monitor.
2. In Windows 10 versions 1809 and newer, we recommend that "Game Mode" be enabled for maximum gaming performance. Game Mode can be enabled via the Windows 10 "Settings" app, under Gaming > Game Mode
3. At least one of your audio devices has a sample rate that doesn't match the rest. This can result in audio drift over time or sound distortion. Check your audio devices in Windows settings (both Playback and Recording) and ensure the Default Format (under Advanced) is consistent. 48000 Hz is recommended.
OBS Sample Rate: 48000 Hz
VoiceMeeter VAIO3 Input (VB-Audio Cable A): 48000 Hz
VoiceMeeter Input (VB-Audio Cable B): 48000 Hz
CABLE Input (VB-Audio Virtual Cable): 48000 Hz
Headset Microphone (CORSAIR VIRTUOSO Wireless Gaming Headset): 44100 Hz
4. Having the YUV Color range set to "Full" will cause playback issues in certain browsers and on various video platforms. Shadows, highlights and color will look off. In OBS, go to "Settings -> Advanced" and set "YUV Color Range" back to "Partial".
5. Display and Game Capture Sources interfere with each other. Never put them in the same scene.
6. The encoder is skipping frames because of CPU overload. Read about General Performance and Encoding Issues but first see #7
7. A slower x264 preset than 'veryfast' is in use. It is recommended to leave this value on veryfast, as there are significant diminishing returns to setting it lower (or use NVENC).
 

Suuperflie

New Member
I did everything you posted, except I can't figure out how to fix the 44Khz audio...that same source loads at 48K a few lines above... and the stream came out worse. I also left the encoder at medium. As far as I can see I'm losing 125 frames total out of over 363K. I don't think that's a significant amount to even be noticeable and is probably from loading screens. Also, how do you know if it's from encoding or rendering? If i set the encoder to fast, would it really come out better?
 

Attachments

  • 2020-08-30 18-23-22.txt
    13.3 KB · Views: 20

qhobbes

Active Member
At least one of your audio devices has a sample rate that doesn't match the rest. This can result in audio drift over time or sound distortion. Check your audio devices in Windows settings (both Playback and Recording) and ensure the Default Format (under Advanced) is consistent. 48000 Hz is recommended.
OBS Sample Rate: 48000 Hz
VoiceMeeter Aux Input (VB-Audio VoiceMeeter AUX VAIO): 48000 Hz
Speakers (VB-Audio Cable A): 48000 Hz
Speakers (VB-Audio Cable B): 48000 Hz
VoiceMeeter Aux Input (VB-Audio Virtual Cable): 48000 Hz
Headset Microphone (CORSAIR VIRTUOSO Wireless Gaming Headset): 48000 Hz
VoiceMeeter Aux Output (VB-Audio VoiceMeeter AUX VAIO): 44100 Hz
VoiceMeeter Output (VB-Audio VoiceMeeter VAIO): 44100 Hz

The encoder is handled by the CPU when using x264. AFAIK OBS uses the GPU for rendering.
There are no skipped frames in the most recent log but it's at 48 FPS instead of 60 FPS so there's 20% less frames to encode per second.
Framerates other than 30fps or 60fps *may lead to playback issues like stuttering or screen tearing*. Stick to either of these for better compatibility with video players. You can change your OBS frame rate in Settings -> Video.
Your log shows a 119 refresh rate. Is that 119.88 or 119 or because of VRR? Can you change it to 120? Generally you want your OBS FPS to be evenly divisible (whole number) by the source FPS. Ideally you would have a 120 FPS game on a 120 Hz monitor with OBS streaming at 60 or 30 FPS.
If your refresh rate is 119.88 then use 29.97 or 59.94 for OBS FPS.
 

Suuperflie

New Member
I'm still having issues. OBS is running as administrator, output scaled down to 1536/864 now still with a 6000 bitrate and it's still bad. I fixed the audio mismatch issue. I guess I'll try 720p next with a 6k bitrate since it's a multiple of 1440p which is my base res. Pretty sure I've tried this before though. I have even set affinity for both the game and OBS. 5 cores/10 threads slotted for the game and 10 cores/20 threads slotted for OBS with one core unassigned to do whatever it needs to do. Things are fine in game. I have AA on max as well as PP and there's no artifacting/graininess in game. I also tried setting the fps to 59.94 to match my screens output. I turned game mode off in Windows because it didn't do anything. I have more than enough processing power to have perfect encoding on medium and probably slow. CPU is OC at 4.4 on all cores...so that's 16 cores/32 threads running at 4.4. I have 20 threads assigned to OBS and if I'm not mistaken OBS runs fine on up to 24 threads.
 

Attachments

  • 2020-09-04 13-01-48.txt
    31 KB · Views: 4
D

Deleted member 274374

I'm still having issues. OBS is running as administrator, output scaled down to 1536/864 now still with a 6000 bitrate and it's still bad. I fixed the audio mismatch issue. I guess I'll try 720p next with a 6k bitrate since it's a multiple of 1440p which is my base res. Pretty sure I've tried this before though. I have even set affinity for both the game and OBS. 5 cores/10 threads slotted for the game and 10 cores/20 threads slotted for OBS with one core unassigned to do whatever it needs to do. Things are fine in game. I have AA on max as well as PP and there's no artifacting/graininess in game. I also tried setting the fps to 59.94 to match my screens output. I turned game mode off in Windows because it didn't do anything. I have more than enough processing power to have perfect encoding on medium and probably slow. CPU is OC at 4.4 on all cores...so that's 16 cores/32 threads running at 4.4. I have 20 threads assigned to OBS and if I'm not mistaken OBS runs fine on up to 24 threads.

1:
Download codec AAC, link: Apple codec
- No install !, extract with Winrar to any folder.
- Inside folder, install only AppleApplicationSupport64
- Reboot PC

2:
OBS settings to local recording with NVENC (new) encoder:

OBS
Output:
Encoder: NVIDIA NVENC (new)
Rescale: uncheck
Rate control: CQP
CQ Level: 20
Keyframe: 0
Preset: Quality
Profile: high

Audio:
Sample Rate: 48 kHz

Video:
Base (canvas): Your monitor resolution
Output: Your output resolution
Downscale: Bicubic
Common FPS: 60
 

Suuperflie

New Member
1:
Download codec AAC, link: Apple codec
- No install !, extract with Winrar to any folder.
- Inside folder, install only AppleApplicationSupport64
- Reboot PC

2:
OBS settings to local recording with NVENC (new) encoder:

OBS
Output:
Encoder: NVIDIA NVENC (new)
Rescale: uncheck
Rate control: CQP
CQ Level: 20
Keyframe: 0
Preset: Quality
Profile: high

Audio:
Sample Rate: 48 kHz

Video:
Base (canvas): Your monitor resolution
Output: Your output resolution
Downscale: Bicubic
Common FPS: 60
I appreciate the info, but without explanation I'm confused. You're talking about the recording tab and I'm talking about live streaming. Also, in my log you can see I have the AAC codec:
14:49:13.506: [CoreAudio AAC: 'avc_aac_stream']: settings:
14:49:13.506: mode: AAC
14:49:13.506: bitrate: 160
14:49:13.506: sample rate: 48000
14:49:13.506: cbr: on
14:49:13.506: output buffer: 1536
Also, why would I use NVENC for encoding over CPU since I have a GTX card and not RTX? That would give me even worse video for live streaming, would it not?
 

Suuperflie

New Member
OK, haven't done 720p yet, but here's another 1080p with an 8k bitrate. Still looks bad for 8k bitrate with "enforce standards" unchecked.

 
D

Deleted member 274374

I appreciate the info, but without explanation I'm confused. You're talking about the recording tab and I'm talking about live streaming. Also, in my log you can see I have the AAC codec:
14:49:13.506: [CoreAudio AAC: 'avc_aac_stream']: settings:
14:49:13.506: mode: AAC
14:49:13.506: bitrate: 160
14:49:13.506: sample rate: 48000
14:49:13.506: cbr: on
14:49:13.506: output buffer: 1536
Also, why would I use NVENC for encoding over CPU since I have a GTX card and not RTX? That would give me even worse video for live streaming, would it not?

For live streaming the best encoder is NVENC (new) with Turing cards (1660 and RTX series) (Nvenc and new encoder for Turing)

For streaming:
Audio:
Sample rate: 48 khz
Bitrate 96 (no 160) in Output>Audio

Output:
Encoder: NVIDIA NVENC (new)
Rate control: CBR
Keyframe: 2
Preset: Quality
Profile: high

Advanced:
Network - Check ! Enable network optimizations and Enable TCP pacing

And: Twitch official settings
 

Suuperflie

New Member
For live streaming the best encoder is NVENC (new) with Turing cards (1660 and RTX series) (Nvenc and new encoder for Turing)

For streaming:
Audio:
Sample rate: 48 khz
Bitrate 96 (no 160) in Output>Audio

Output:
Encoder: NVIDIA NVENC (new)
Rate control: CBR
Keyframe: 2
Preset: Quality
Profile: high

Advanced:
Network - Check ! Enable network optimizations and Enable TCP pacing

And: Twitch official settings
Did you not read what I wrote? I don't have a Turing card, it's Pascal which doesn't take advantage of the new NVENC. Regardless, x264 medium is still slightly better than new NVENC, especially if you have the overhead to use it, which I do.
 

FiZla

New Member
Hi suuperflie.
I use 3950x as streaming pc, i use NDI from gaming to streaming pc.
FYI I stream from gaming rig 2560*1440 via NDI to 1920*1080 in obs on gaming rig. then 1920*1080 on streaming pc.
Cut image of settings are attached here. This has worked well for me but ofc not the best looking compared to capture cards, but they have their problems with high refreshrate monitors.

Hope you get your stream going GLHF
 

Attachments

  • Settings 1.jpg
    Settings 1.jpg
    54.1 KB · Views: 219
  • settings 2.jpg
    settings 2.jpg
    19.7 KB · Views: 224
  • Settings 3.jpg
    Settings 3.jpg
    33.5 KB · Views: 200

FiZla

New Member
Ok so I was not completely satisfied and so I have now updated the settings. You can check out my latest video at www.twitch.tv/fizlaa See also attached photo clips for the changes that have been made.
 

Attachments

  • New settings.jpg
    New settings.jpg
    64.3 KB · Views: 233
Top