Question / Help Colors different in game and on stream

MrPhelps

New Member
Hi,

I'm just learning how to use OBS and I've a strange problem with colors. They are different in game and on stream. I tried different gamma settings but it didn't help :

IN GAME (screenshot) :
http://i.imgur.com/tH6yJHu.jpg

ON STREAM (frame extracted from video file) :
http://i.imgur.com/SuDcRZM.jpg

Log :
Code:
03:34:27: Open Broadcaster Software v0.522b - 64bit ( ^ω^)
03:34:27: -------------------------------
03:34:27: CPU Name: Intel(R) Core(TM) i7 CPU         920  @ 2.67GHz
03:34:27: CPU Speed: 3317MHz
03:34:27: Physical Memory:  16375MB Total, 9801MB Free
03:34:27: stepping id: 5, model 10, family 6, type 0, extmodel 0, extfamily 0, HTT 1, logical cores 8, total cores 4
03:34:27: monitor 1: pos={0, 0}, size={1920, 1200}
03:34:27: monitor 2: pos={1920, 0}, size={1680, 1050}
03:34:27: Windows Version: 6.1 Build 7600 
03:34:27: Aero is Enabled
03:34:27: -------------------------------
03:34:27: OBS Modules:
03:34:27: Base Address     Module
03:34:27: 000000003FBD0000 OBS.exe
03:34:27: 00000000EC5D0000 OBSApi.dll
03:34:27: 00000000FC6B0000 DShowPlugin.dll
03:34:27: 00000000FBD30000 GraphicsCapture.dll
03:34:27: 00000000FB580000 NoiseGate.dll
03:34:27: ------------------------------------------
03:34:27: Adapter 1
03:34:27:   Video Adapter: AMD Radeon HD 7800 Series
03:34:27:   Video Adapter Dedicated Video Memory: 2120425472
03:34:27:   Video Adapter Shared System Memory: 4021874688
03:34:27: =====Stream Start: 2013-07-06, 03:34:27===============================================
03:34:27:   Multithreaded optimizations: On
03:34:27:   Base resolution: 1920x1200
03:34:27:   Output resolution: 1280x800
03:34:27: ------------------------------------------
03:34:27: Loading up D3D10...
03:34:27: Playback device Default
03:34:27: ------------------------------------------
03:34:27: Using desktop audio input: Speakers (2- Generic USB Audio Device   )
03:34:27: ------------------------------------------
03:34:27: Audio Encoding: AAC
03:34:27:     bitrate: 128
03:34:27: Using graphics capture
03:34:27: ------------------------------------------
03:34:27: Video Encoding: x264
03:34:27:     fps: 30
03:34:27:     width: 1280, height: 800
03:34:27:     preset: fast
03:34:27:     CBR: no
03:34:27:     CFR: no
03:34:27:     max bitrate: 3500
03:34:27:     buffer size: 3500
03:34:27:     quality: 7
03:34:27: ------------------------------------------
03:34:34: SharedTexCapture hooked
03:34:48: GraphicsCaptureSource::NewCapture:  eliminating old capture
03:34:48: SharedTexCapture hooked
03:35:46: Exit signal received, terminating capture
03:35:48: Total frames rendered: 2354, number of frames that lagged: 50 (2.12%) (it's okay for some frames to lag)
03:35:48: =====Stream End: 2013-07-06, 03:35:48=================================================
03:35:49: 
03:35:49: Profiler results:
03:35:49: 
03:35:49: ==============================================================
03:35:49: frame - [100%] [avg time: 4.335 ms] [avg calls per frame: 1] [children: 80.1%] [unaccounted: 19.9%]
03:35:49: | scene->Preprocess - [0.0461%] [avg time: 0.002 ms] [avg calls per frame: 1]
03:35:49: | video encoding and uploading - [80%] [avg time: 3.47 ms] [avg calls per frame: 1] [children: 78.9%] [unaccounted: 1.15%]
03:35:49: | | CopyResource - [0.231%] [avg time: 0.01 ms] [avg calls per frame: 0]
03:35:49: | | conversion to 4:2:0 - [0.115%] [avg time: 0.005 ms] [avg calls per frame: 0]
03:35:49: | | call to encoder - [78.2%] [avg time: 3.39 ms] [avg calls per frame: 0]
03:35:49: | | sending stuff out - [0.346%] [avg time: 0.015 ms] [avg calls per frame: 0]
03:35:49: ==============================================================
03:35:49:

This resembles a sharpen filter, but I don't think it is an option of OBS. Any idea what might cause this?
 

dodgepong

Administrator
Community Helper
This might be due to the conversion to 4:2:0. When streaming, OBS has to discard some color data to make the stream work, and that might be what is causing the difference in this case.
 

MrPhelps

New Member
Thanks, I think that's it. After some more tries I determined the problem is most likely a chroma upsampling bug with the DXVA driver that my player (MPC-HC) was using to render the video. With DXVA disabled the colors are much better : http://i.imgur.com/7O7ZHkl.jpg

I made another try in another game to be sure, and it's quite clear :
In game screenshot : http://i.imgur.com/NtM0SLA.png
With DXVA : http://i.imgur.com/kaKHvLu.jpg
Without DXVA : http://i.imgur.com/3EEq7Ai.jpg

(btw strangely images 1 and 3 looks pretty much identical on my machine, but not once uploaded to imgur. A gamma issue?)

Out of curiosity, is the 4:2:0 subsampling a requirement of x264 or the streaming services?
 

kaloc

Member
Yep , dodge is correct it's the 4:2:0 doing that.

Out of curiosity, is the 4:2:0 subsampling a requirement of x264 or the streaming services?
Yes, at this time we have to use 4:2:0 when streaming to just about any video service; It is mostly the fault of flash.


Interesting sidenote though ( not related to the current OBS ), if a source gives RGB captured video frames ( which is what you see on the monitor ) to x264, it can encode that as RGB colorspace. The result is virtually identical color + gamma and all the usual benefits of x264's compression.
 
Top