Question / Help OBS Studio makes game look like low quality/bitrate

Strickery

New Member
Hello,

So i'm trying to record a game but whenever I do it, it looks like it has low bitrate and becomes low quality...

How it looks like: https://streamable.com/o9mbf
What it should look like: this

These are the logs:
05:05:32.306: CPU Name: Intel(R) Core(TM) i7-4810MQ CPU @ 2.80GHz
05:05:32.307: CPU Speed: 2794MHz
05:05:32.307: Physical Cores: 4, Logical Cores: 8
05:05:32.307: Physical Memory: 8110MB Total, 2777MB Free
05:05:32.307: Windows Version: 10.0 Build 18362 (revision: 592; 64-bit)
05:05:32.307: Running as administrator: true
05:05:32.307: Aero is Enabled (Aero is always on for windows 8 and above)
05:05:32.307: Windows 10 Gaming Features:
05:05:32.307: Game Bar: Off
05:05:32.307: Game DVR: Off
05:05:32.307: Game DVR Background Recording: Off
05:05:32.307: Game Mode: Off
05:05:32.308: Sec. Software Status:
05:05:32.309: Windows Defender Antivirus: enabled (AV)
05:05:32.309: Windows Firewall: enabled (FW)
05:05:32.310: Current Date/Time: 2020-02-11, 05:05:32
05:05:32.310: Browser Hardware Acceleration: true
05:05:32.310: Portable mode: false
05:05:32.547: OBS 24.0.3 (64-bit, windows)
05:05:32.547: ---------------------------------
05:05:32.565: ---------------------------------
05:05:32.565: audio settings reset:
05:05:32.565: samples per sec: 44100
05:05:32.565: speakers: 2
05:05:32.565: ---------------------------------
05:05:32.565: Initializing D3D11...
05:05:32.565: Available Video Adapters:
05:05:32.570: Adapter 0: NVIDIA GeForce GTX 870M
05:05:32.570: Dedicated VRAM: 2098921472
05:05:32.570: Shared VRAM: 4252336128
05:05:32.571: output 0: pos={0, 0}, size={1920, 1080}, attached=true
05:05:32.571: Adapter 1: Intel(R) HD Graphics 4600
05:05:32.571: Dedicated VRAM: 117964800
05:05:32.571: Shared VRAM: 2147483648
05:05:32.572: Loading up D3D11 on adapter NVIDIA GeForce GTX 870M (0)
05:05:32.612: D3D11 loaded successfully, feature level used: b000
05:05:32.612: D3D11 GPU priority setup success
05:05:33.066: ---------------------------------
05:05:33.066: video settings reset:
05:05:33.066: base resolution: 1920x1080
05:05:33.066: output resolution: 1280x720
05:05:33.066: downscale filter: Bicubic
05:05:33.066: fps: 30/1
05:05:33.066: format: NV12
05:05:33.066: YUV mode: 601/Partial
05:05:33.066: NV12 texture support enabled
05:05:33.067: Audio monitoring device:
05:05:33.067: name: Default
05:05:33.067: id: default
05:05:33.067: ---------------------------------
05:05:33.069: [CoreAudio encoder]: CoreAudio AAC encoder not installed on the system or couldn't be loaded
05:05:33.069: Failed to load 'en-US' text for module: 'decklink-ouput-ui.dll'
05:05:33.100: [AMF] AMF Test failed due to one or more errors.
05:05:33.100: Failed to initialize module 'enc-amf.dll'
05:05:33.115: [obs-browser]: Version 2.7.15
05:05:33.118: NVENC supported
05:05:33.134: VLC found, VLC video source enabled
05:05:33.136: No blackmagic support
05:05:33.139: ---------------------------------
05:05:33.139: Loaded Modules:
05:05:33.139: win-wasapi.dll
05:05:33.139: win-mf.dll
05:05:33.139: win-dshow.dll
05:05:33.139: win-decklink.dll
05:05:33.139: win-capture.dll
05:05:33.139: vlc-video.dll
05:05:33.139: text-freetype2.dll
05:05:33.139: rtmp-services.dll
05:05:33.139: obs-x264.dll
05:05:33.139: obs-vst.dll
05:05:33.139: obs-virtualoutput.dll
05:05:33.139: obs-transitions.dll
05:05:33.139: obs-text.dll
05:05:33.139: obs-qsv11.dll
05:05:33.139: obs-outputs.dll
05:05:33.139: obs-filters.dll
05:05:33.139: obs-ffmpeg.dll
05:05:33.139: obs-browser.dll
05:05:33.139: image-source.dll
05:05:33.139: frontend-tools.dll
05:05:33.139: enc-amf.dll
05:05:33.139: decklink-ouput-ui.dll
05:05:33.139: coreaudio-encoder.dll
05:05:33.139: ---------------------------------
05:05:33.139: ==== Startup complete ===============================================
05:05:33.139: Service '' not found
05:05:33.142: All scene data cleared
05:05:33.142: ------------------------------------------------
05:05:33.171: WASAPI: Device 'Speakers (Logitech G35 Headset)' initialized
05:05:33.192: WASAPI: Device 'Microphone (Logitech G35 Headset)' initialized
05:05:33.192: [window-capture: 'Window Capture'] update settings:
05:05:33.192: executable: dreamseeker.exe
05:05:33.192: [window-capture: 'Window Capture 2'] update settings:
05:05:33.192: executable: dreamseeker.exe
05:05:33.341: Switched to scene 'Scene'
05:05:33.341: ------------------------------------------------
05:05:33.341: Loaded scenes:
05:05:33.341: - scene 'Scene':
05:05:33.341: - source: 'Window Capture' (window_capture)
05:05:33.341: - source: 'Game Capture' (game_capture)
05:05:33.341: - scene 'Scene 2':
05:05:33.341: - source: 'Window Capture 2' (window_capture)
05:05:33.341: ------------------------------------------------
05:05:40.635: [game-capture: 'Game Capture'] attempting to hook process: dreamseeker.exe
05:05:40.667: [game-capture: 'Game Capture'] shared texture capture successful
05:05:43.067: [game-capture: 'Game Capture'] capture stopped
05:05:45.000: [window-capture: 'Window Capture'] update settings:
05:05:45.000: executable: StartMenuExperienceHost.exe
05:05:51.133: [window-capture: 'Window Capture'] update settings:
05:05:51.133: executable: dreamseeker.exe
05:05:54.830: ---------------------------------
05:05:54.830: [x264 encoder: 'simple_h264_recording'] preset: veryfast
05:05:54.830: [x264 encoder: 'simple_h264_recording'] profile: high
05:05:54.830: [x264 encoder: 'simple_h264_recording'] settings:
05:05:54.830: rate_control: CRF
05:05:54.830: bitrate: 0
05:05:54.830: buffer size: 0
05:05:54.830: crf: 14
05:05:54.830: fps_num: 30
05:05:54.830: fps_den: 1
05:05:54.830: width: 1280
05:05:54.830: height: 720
05:05:54.830: keyint: 250
05:05:54.830:
05:05:54.833: ---------------------------------
05:05:54.834: [FFmpeg aac encoder: 'simple_aac_recording'] bitrate: 128, channels: 2, channel_layout: 3
05:05:54.834:
05:05:54.845: ==== Recording Start ===============================================
05:05:54.845: [ffmpeg muxer: 'simple_file_output'] Writing file 'C:/Users/Josha/Videos/2020-02-11 05-05-54.flv'...
05:05:59.354: [ffmpeg muxer: 'simple_file_output'] Output of file 'C:/Users/Josha/Videos/2020-02-11 05-05-54.flv' stopped
05:05:59.354: Output 'simple_file_output': stopping
05:05:59.354: Output 'simple_file_output': Total frames output: 108
05:05:59.354: Output 'simple_file_output': Total drawn frames: 135
05:05:59.354: ==== Recording Stop ================================================

Any help to make this look smoother is appreciated, thanks in advance!
 

koala

Active Member
If you want make this kind of high-contrast pixel-orientated content look sharp as the original, you need to avoid rescaling. Rescaling makes content look blurry, which is extremely visible with white text on black background as in your example.

Best solution is to set your canvas and output resolution to the same resolution as your game. In case you changed the scaling of your source, additionally right-click your source->Transform->reset transform to reset such scaling. And never right-click source->Transform->Fit to screen.

Your clear picture has a resolution of 1920x980, while your monitor resolution is 1920x1080, which suggests you play in some windowed mode with the Windows taskbar visible. So ether set the canvas resolution and output resolution of OBS to 1920x980. Or if you insist on a standard 1080p resolution, for example for streaming, use 1920x1080 and either accept the black bar at the bottom (the space for the Windows task bar) or play your game real fullscreen without visible Windows taskbar.

If you insist on or have to do rescaling, try the "Area" Downscale filter. This is a filter especially designed for this kind of high contrast content. Apply this twice, one with Settings->Video and the other right-click source->Scale filtering->Area.
 

Strickery

New Member
The weird thing is, I didn't do any rescaling. That was the original scale with the black bar on bottom ofcourse. I tried everything you said and it didn't change a thing. I guess the game just isn't compatible with OBS Studio for recording it.

The only thing that looks good if I change the preview scaling to (1920x980) but that doesn't change the output of the video only the preview.
 

koala

Active Member
Of course you did rescale. You set your output resolution to 1280x720, so OBS rescales from 1920x1080 to 1280x720 for the stream.
 

koala

Active Member
Difficult to say, but I assume this is as good as you can get. Encoding this high contrast (white/colored letters on black/almost black background) is also an issue - the h.264 encoding scheme is simply not designed for this kind of content. What you still see as blurriness around letters and around sharp edges are compression artifacts.
To see what I mean with compression artifacts, take your example *.png and save as *.jpg with different compression levels. You will see what compression does to your image, while the *.png is lossless. Color will also blur out a bit. This is very visible with this kind of content. With photo-like images this is not as visible, and this is what the h.264 algorithm used for streaming is designed for in the first place.
 
Top