Question / Help Incorrect Colors on Media Players When Using 709 Color Space

KingDecimator

New Member
I have been having issues with recorded files when using the 709 color space setting (601 works just fine). I recently moved from OBS Classic to OBS Studio and I never had this issue before with Classic.

In the spoiler below I have compiled very similar screenshots from various media players for the game Mario Kart Wii, with a resolution of 480p (854x480).

As you can see, it looks just fine in the OBS Studio preview:
WSzIQwe.png


But when I go to VLC...
4kgeX9N.png


The reds are clearly too dark and the greens are too bright.

It's the same for Windows Media Player as well:
9JDTRCq.png


I also tried Windows 10's Movies & TV app:
rqDBGOa.png


Then I tried web players (Twitch's VOD player and YouTube's player)...

Twitch:
7dSZBlN.png


YouTube:
56wedQ4.png


I then tried this media player called Media Player Classic (MPC), and I got closer to accurate colors:
Nqm5HhW.png

No other media player that I have tried got anywhere close.

Here's proof 709 works just fine for recorded files when using OBS Classic (picture from VLC):
afctYhI.png


Code:
20:27:37.756: CPU Name: AMD A4-3400 APU with Radeon(tm) HD Graphics
20:27:37.757: CPU Speed: 2700MHz
20:27:37.757: Physical Cores: 2, Logical Cores: 2
20:27:37.757: Physical Memory: 5865MB Total, 2514MB Free
20:27:37.757: Windows Version: 10.0 Build 14393 (revision: 351; 64-bit)
20:27:37.757: Running as administrator: false
20:27:37.757: Aero is Enabled (Aero is always on for windows 8 and above)
20:27:37.828: OBS 0.16.2 (64bit, windows)
20:27:37.828: ---------------------------------
20:27:37.829: ---------------------------------
20:27:37.830: audio settings reset:
20:27:37.830:     samples per sec: 44100
20:27:37.830:     speakers:        2
20:27:38.172: ---------------------------------
20:27:38.172: video settings reset:
20:27:38.172:     base resolution:   854x480
20:27:38.172:     output resolution: 852x480
20:27:38.172:     downscale filter:  Bilinear
20:27:38.172:     fps:               30000/1001
20:27:38.172:     format:            NV12
20:27:38.173: ---------------------------------
20:27:38.177: [CoreAudio encoder]: CoreAudio AAC encoder not installed on the system or couldn't be loaded
20:27:38.178: [AMF Encoder] Version 1.3.1.0-1.3.0.5
20:27:38.178: [AMF Encoder] <Plugin::AMD::AMF::AMF> Initializing...
20:27:38.179: [AMF Encoder] <Plugin::AMD::AMF::AMF> Loading of 'amfrt64.dll' failed with error code 126.
20:27:38.192: Required module function 'obs_module_load' in module '../../obs-plugins/64bit/libcef.dll' not found, loading of module failed
20:27:38.193: Required module function 'obs_module_load' in module '../../obs-plugins/64bit/libEGL.dll' not found, loading of module failed
20:27:38.195: Required module function 'obs_module_load' in module '../../obs-plugins/64bit/libGLESv2.dll' not found, loading of module failed
20:27:38.196: Failed to load 'en-US' text for module: 'obs-browser.dll'
20:27:38.197: [browser_source: 'Version: 1.25.0']
20:27:38.199: LoadLibrary failed for 'nvEncodeAPI64.dll': The specified module could not be found.
20:27:38.199:  (126)
20:27:38.506: VLC found, VLC video source enabled
20:27:38.989: No blackmagic support
20:27:39.007: ---------------------------------
20:27:39.008:   Loaded Modules:
20:27:39.008:     win-wasapi.dll
20:27:39.008:     win-mf.dll
20:27:39.008:     win-dshow.dll
20:27:39.008:     win-decklink.dll
20:27:39.008:     win-capture.dll
20:27:39.008:     vlc-video.dll
20:27:39.008:     text-freetype2.dll
20:27:39.008:     rtmp-services.dll
20:27:39.008:     obs-x264.dll
20:27:39.008:     obs-transitions.dll
20:27:39.008:     obs-text.dll
20:27:39.008:     obs-qsv11.dll
20:27:39.008:     obs-outputs.dll
20:27:39.008:     obs-filters.dll
20:27:39.008:     obs-ffmpeg.dll
20:27:39.008:     obs-browser.dll
20:27:39.008:     image-source.dll
20:27:39.008:     frontend-tools.dll
20:27:39.008:     enc-amf.dll
20:27:39.008:     coreaudio-encoder.dll
20:27:39.008: ==== Startup complete ===============================================
20:27:39.013: All scene data cleared
20:27:39.013: ------------------------------------------------
20:27:39.047: WASAPI: Device 'Speakers (Realtek High Definition Audio)' initialized
20:27:39.071: WASAPI: Device 'FrontMic (Realtek High Definition Audio)' initialized
20:27:39.122: ---------------------------------
20:27:39.122: [DShow Device: 'AVerMedia Live Gamer Portable (C875)'] settings updated:
20:27:39.122:     video device: AVerMedia C875 Capture
20:27:39.122:     video path: \\?\usb#vid_07ca&pid_0875#307760900080#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{957bd672-7934-4b55-b81a-3e22b14c679a}
20:27:39.122:     resolution: 720x480
20:27:39.122:     fps: 59.94 (interval: 166833)
20:27:39.122:     format: H264
20:27:39.122:     using video device audio: yes
20:27:39.122:     sample rate: 48000
20:27:39.122:     channels: 2
20:27:39.122:     audio type: Capture
20:27:39.134: adding 23 milliseconds of audio buffering, total audio buffering is now 23 milliseconds
20:27:39.349: Webcam: data.GetDevice failed
20:27:39.349: Webcam: Video configuration failed
20:27:39.468: Switched to scene 'Wii'
20:27:39.468: ------------------------------------------------
20:27:39.468: Loaded scenes:
20:27:39.468: - scene 'Wii':
20:27:39.482:     - source: 'AVerMedia Live Gamer Portable (C875)' (dshow_input)
20:27:39.482:         - filter: 'Sharpen' (sharpness_filter)
20:27:39.482:         - filter: 'Color Correction' (color_filter)
20:27:39.482:     - source: 'Webcam' (dshow_input)
20:27:39.482:     - source: 'Windows Media Player Music Info' (text_gdiplus)
20:27:39.482:     - source: 'Overlay' (image_source)
20:27:39.482:     - source: 'Layout Right' (image_source)
20:27:39.482:     - source: 'Layout Left' (image_source)
20:27:39.482:     - source: 'MKBoards Logo' (image_source)
20:27:39.482:     - source: 'Follower Alert' (browser_source)
20:27:39.482:     - source: 'Friend Code' (text_gdiplus)
20:27:39.482: - scene 'Wii U':
20:27:39.482:     - source: 'AVerMedia Live Gamer Portable (C875)' (dshow_input)
20:27:39.482:         - filter: 'Sharpen' (sharpness_filter)
20:27:39.482:         - filter: 'Color Correction' (color_filter)
20:27:39.482:     - source: 'Webcam' (dshow_input)
20:27:39.482:     - source: 'Windows Media Player Music Info' (text_gdiplus)
20:27:39.482:     - source: 'Overlay' (image_source)
20:27:39.482:     - source: 'Layout Right' (image_source)
20:27:39.483:     - source: 'Layout Left' (image_source)
20:27:39.483:     - source: 'MKBoards Logo' (image_source)
20:27:39.483:     - source: 'Follower Alert' (browser_source)
20:27:39.483: ------------------------------------------------
20:27:39.594: adding 69 milliseconds of audio buffering, total audio buffering is now 92 milliseconds
20:27:39.752: Update check: last known remote version is 0.16.2
20:27:39.827: adding 208 milliseconds of audio buffering, total audio buffering is now 301 milliseconds
20:27:51.941: ---------------------------------
20:27:51.941: [DShow Device: 'AVerMedia Live Gamer Portable (C875)'] settings updated:
20:27:51.941:     video device: AVerMedia C875 Capture
20:27:51.941:     video path: \\?\usb#vid_07ca&pid_0875#307760900080#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{957bd672-7934-4b55-b81a-3e22b14c679a}
20:27:51.941:     resolution: 720x480
20:27:51.941:     fps: 59.94 (interval: 166833)
20:27:51.941:     format: H264
20:27:51.942:     using video device audio: yes
20:27:51.942:     sample rate: 48000
20:27:51.942:     channels: 2
20:27:51.942:     audio type: Capture
20:27:52.824: ---------------------------------
20:27:52.824: [DShow Device: 'AVerMedia Live Gamer Portable (C875)'] settings updated:
20:27:52.824:     video device: AVerMedia C875 Capture
20:27:52.824:     video path: \\?\usb#vid_07ca&pid_0875#307760900080#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{957bd672-7934-4b55-b81a-3e22b14c679a}
20:27:52.824:     resolution: 720x480
20:27:52.824:     fps: 59.94 (interval: 166833)
20:27:52.824:     format: H264
20:27:52.824:     using video device audio: yes
20:27:52.824:     sample rate: 48000
20:27:52.824:     channels: 2
20:27:52.824:     audio type: Capture
20:28:10.638: adding 23 milliseconds of audio buffering, total audio buffering is now 325 milliseconds
20:28:57.268: adding 116 milliseconds of audio buffering, total audio buffering is now 441 milliseconds
20:29:00.683: adding 185 milliseconds of audio buffering, total audio buffering is now 626 milliseconds
20:39:04.917: Max audio buffering reached!
20:39:04.917: adding 417 milliseconds of audio buffering, total audio buffering is now 1044 milliseconds
20:42:12.846: ==== Shutting down ==================================================
20:42:12.865: Switched to scene '(null)'
20:42:13.338: WASAPI: Device 'Speakers (Realtek High Definition Audio)' Terminated
20:42:13.353: WASAPI: Device 'FrontMic (Realtek High Definition Audio)' Terminated
20:42:13.361: All scene data cleared
20:42:13.361: ------------------------------------------------
20:42:13.461: Freeing OBS context data
20:42:13.574: == Profiler Results =============================
20:42:13.574: run_program_init: 1972.69 ms
20:42:13.574:  ┣OBSApp::AppInit: 3.664 ms
20:42:13.574:  ┃ ┗OBSApp::InitLocale: 1.974 ms
20:42:13.574:  ┗OBSApp::OBSInit: 1924.6 ms
20:42:13.574:    ┣obs_startup: 3.362 ms
20:42:13.574:    ┗OBSBasic::OBSInit: 1805.16 ms
20:42:13.574:      ┣OBSBasic::InitBasicConfig: 0.963 ms
20:42:13.574:      ┣OBSBasic::ResetAudio: 7.801 ms
20:42:13.574:      ┣OBSBasic::ResetVideo: 335.384 ms
20:42:13.574:      ┣OBSBasic::InitOBSCallbacks: 0.019 ms
20:42:13.574:      ┣OBSBasic::InitHotkeys: 0.067 ms
20:42:13.574:      ┣obs_load_all_modules: 834.243 ms
20:42:13.574:      ┃ ┣obs_init_module(coreaudio-encoder.dll): 1.476 ms
20:42:13.574:      ┃ ┣obs_init_module(enc-amf.dll): 1.094 ms
20:42:13.574:      ┃ ┣obs_init_module(frontend-tools.dll): 0.088 ms
20:42:13.574:      ┃ ┣obs_init_module(image-source.dll): 0.008 ms
20:42:13.574:      ┃ ┣obs_init_module(obs-browser.dll): 0.132 ms
20:42:13.574:      ┃ ┣obs_init_module(obs-ffmpeg.dll): 1.211 ms
20:42:13.574:      ┃ ┣obs_init_module(obs-filters.dll): 0.016 ms
20:42:13.574:      ┃ ┣obs_init_module(obs-outputs.dll): 0.006 ms
20:42:13.574:      ┃ ┣obs_init_module(obs-qsv11.dll): 283.37 ms
20:42:13.574:      ┃ ┣obs_init_module(obs-text.dll): 0.636 ms
20:42:13.574:      ┃ ┣obs_init_module(obs-transitions.dll): 0.01 ms
20:42:13.574:      ┃ ┣obs_init_module(obs-x264.dll): 0.016 ms
20:42:13.574:      ┃ ┣obs_init_module(rtmp-services.dll): 0.527 ms
20:42:13.574:      ┃ ┣obs_init_module(text-freetype2.dll): 3.912 ms
20:42:13.574:      ┃ ┣obs_init_module(vlc-video.dll): 2.415 ms
20:42:13.574:      ┃ ┣obs_init_module(win-capture.dll): 470.21 ms
20:42:13.574:      ┃ ┣obs_init_module(win-decklink.dll): 8.876 ms
20:42:13.574:      ┃ ┣obs_init_module(win-dshow.dll): 8.597 ms
20:42:13.575:      ┃ ┣obs_init_module(win-mf.dll): 1.962 ms
20:42:13.575:      ┃ ┣obs_init_module(win-wasapi.dll): 0.014 ms
20:42:13.575:      ┃ ┗reset_win32_symbol_paths: 1.041 ms
20:42:13.575:      ┣OBSBasic::ResetOutputs: 0.459 ms
20:42:13.575:      ┣OBSBasic::CreateHotkeys: 0.043 ms
20:42:13.575:      ┣OBSBasic::InitService: 0.31 ms
20:42:13.575:      ┣OBSBasic::InitPrimitives: 1.386 ms
20:42:13.575:      ┗OBSBasic::Load: 472.527 ms
20:42:13.575: obs_hotkey_thread(25 ms): min=0.007 ms, median=0.012 ms, max=142.221 ms, 99th percentile=1.008 ms, 99.946% below 25 ms
20:42:13.575: audio_thread(Audio): min=0.001 ms, median=0.136 ms, max=106.231 ms, 99th percentile=4.244 ms
20:42:13.575: obs_video_thread(33.3667 ms): min=1.646 ms, median=7.533 ms, max=407.834 ms, 99th percentile=27.817 ms, 99.3536% below 33.367 ms
20:42:13.575:  ┣tick_sources: min=0.002 ms, median=0.022 ms, max=387.091 ms, 99th percentile=0.745 ms
20:42:13.575:  ┣render_displays: min=0.112 ms, median=3.589 ms, max=113.862 ms, 99th percentile=20.593 ms
20:42:13.575:  ┗output_frame: min=1.338 ms, median=3.591 ms, max=143.289 ms, 99th percentile=10.713 ms
20:42:13.575:    ┣gs_context(video->graphics): min=1.078 ms, median=2.727 ms, max=142.645 ms, 99th percentile=10.022 ms
20:42:13.575:    ┃ ┣render_video: min=0.716 ms, median=2.361 ms, max=69.188 ms, 99th percentile=9.483 ms
20:42:13.575:    ┃ ┃ ┣render_main_texture: min=0.132 ms, median=1.271 ms, max=67.865 ms, 99th percentile=7.347 ms
20:42:13.575:    ┃ ┃ ┣render_output_texture: min=0.008 ms, median=0.414 ms, max=48.403 ms, 99th percentile=2.437 ms
20:42:13.575:    ┃ ┃ ┣render_convert_texture: min=0.003 ms, median=0.319 ms, max=46.71 ms, 99th percentile=2.168 ms
20:42:13.575:    ┃ ┃ ┗stage_output_texture: min=0.001 ms, median=0.154 ms, max=13.852 ms, 99th percentile=1.224 ms
20:42:13.575:    ┃ ┣download_frame: min=0.001 ms, median=0.015 ms, max=6.874 ms, 99th percentile=0.17 ms
20:42:13.575:    ┃ ┗gs_flush: min=0.021 ms, median=0.076 ms, max=15.212 ms, 99th percentile=0.646 ms
20:42:13.576:    ┗output_video_data: min=0.235 ms, median=0.682 ms, max=15.148 ms, 99th percentile=2.461 ms
20:42:13.576: video_thread(video): min=0.001 ms, median=0.006 ms, max=4.101 ms, 99th percentile=0.09 ms
20:42:13.576: =================================================
20:42:13.576: == Profiler Time Between Calls ==================
20:42:13.576: obs_hotkey_thread(25 ms): min=24.552 ms, median=25.483 ms, max=362.434 ms, 51.3396% within ±2% of 25 ms (0% lower, 48.6604% higher)
20:42:13.576: obs_video_thread(33.3667 ms): min=5.011 ms, median=33.367 ms, max=407.904 ms, 65.7492% within ±2% of 33.367 ms (18.0389% lower, 16.2118% higher)
20:42:13.576: =================================================
20:42:14.167: Number of memory leaks: 1

Has anyone else experienced this issue?
 
Last edited:

Suslik V

Active Member
You mean player goes wrong? Then this depend on system, hw and image size. Because, Studio hasn't such issue itself, as I see - OBS Studio: Color Space, Color Format, Color Range settings Guide. Test charts you can apply 709 and 601 and it works as intended.

Edit: 'Video Capture Device' source has control over color space as I know (YUV Color Space setting at source properties). But 'Media Source' and 'VLC Video Source' sources lack this setting, so result unpredictable for video import, be careful - check you videos before import them (if you have something to import of course).
 
Last edited:

KingDecimator

New Member
You mean player goes wrong? Then this depend on system, hw and image size. Because, Studio hasn't such issue itself, as I see - OBS Studio: Color Space, Color Format, Color Range settings Guide. Test charts you can apply 709 and 601 and it works as intended.

Edit: 'Video Capture Device' source has control over color space as I know (YUV Color Space setting at source properties). But 'Media Source' and 'VLC Video Source' sources lack this setting, so result unpredictable for video import, be careful - check you videos before import them (if you have something to import of course).

If it isn't Studio's fault, how come 709 recordings from OBS Classic (using the same hardware and resolution) look just fine color-wise in VLC and the other players I listed?
 
Last edited:

KingDecimator

New Member
Want to compare files?

Elaborate on what you mean by compare (since I have images of recordings from both programs already).

VLC - OBS Studio with 709 (incorrect colors)
4kgeX9N.png


VLC - OBS Classic with 709 (correct colors)
afctYhI.png


If you meant something else, I can upload my files to a file hosting site or something.
 

Suslik V

Active Member
I mean, how you get 709 in obs classic? What additional options?

Edit: is there setting to output 709 (in classic)?
 
Last edited:

Suslik V

Active Member
For classic, as for OBS Studio, you see only decoding option for video input (source). In Studio there is additional option to encode videos as BT.601 or BT.709 (Settings>Advanced).

You can try
1) colormatrix=bt470bg
or
2) colormatrix=bt709
at Custom x264 encoder settings field for classic (advanced settings) to force the BT.709 (2) or BT.601 (1).

I think, you recording videos 601, is not bad ^_^ they are SD size - nothing wrong. Only if you like to upload it to youtube, then you need to make changes to your setup.
 

Suslik V

Active Member
Upd. You can check your videos with MediaInfo 0.7.85 application - it shows right result for classic mp4 videos (maybe newer versions also works good). Depending on image size you'll see different matrix settings in MediaInfo application (choose txt or tree output).
 

KingDecimator

New Member
OBS Studio:

Code:
General
Complete name                            : D:\Editing\Video Recordings and Projects\OBS\Live Streams\2016-10-30 19-50-21.mp4
Format                                   : MPEG-4
Format profile                           : Base Media
Codec ID                                 : isom (isom/iso2/avc1/mp41)
File size                                : 8.35 MiB
Duration                                 : 32 s 266 ms
Overall bit rate                         : 2 170 kb/s
Writing application                      : Lavf57.41.100

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High@L3.1
Format settings, CABAC                   : Yes
Format settings, ReFrames                : 4 frames
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding
Duration                                 : 32 s 266 ms
Bit rate                                 : 2 000 kb/s
Width                                    : 852 pixels
Height                                   : 480 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 29.970 (30000/1001) FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.163
Stream size                              : 7.68 MiB (92%)
Writing library                          : x264 core 148 r2721 72d53ab
Encoding settings                        : cabac=1 / ref=1 / deblock=1:0:0 / analyse=0x3:0x3 / me=dia / subme=1 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=3 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=1 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=0 / rc=cbr / mbtree=0 / bitrate=2000 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=2000 / vbv_bufsize=2000 / nal_hrd=none / filler=1 / ip_ratio=1.40 / pb_ratio=1.30 / aq=1:1.00
Color range                              : Full
Color primaries                          : BT.709
Transfer characteristics                 : BT.709
Matrix coefficients                      : BT.709

Audio
ID                                       : 2
Format                                   : AAC
Format/Info                              : Advanced Audio Codec
Format profile                           : LC
Codec ID                                 : 40
Duration                                 : 32 s 252 ms
Bit rate mode                            : Constant
Bit rate                                 : 164 kb/s
Channel(s)                               : 2 channels
Channel positions                        : Front: L R
Sampling rate                            : 44.1 kHz
Frame rate                               : 43.066 FPS (1024 spf)
Compression mode                         : Lossy
Stream size                              : 645 KiB (8%)
Title                                    : simple_aac
Default                                  : Yes
Alternate group                          : 1

OBS Classic:

Code:
General
Complete name                            : D:\Editing\Video Recordings and Projects\OBS\Live Streams\2016-10-30-2024-01.mp4
Format                                   : MPEG-4
Format profile                           : Base Media
Codec ID                                 : isom (isom/iso2/avc1/mp41)
File size                                : 7.92 MiB
Duration                                 : 30 s 266 ms
Overall bit rate                         : 2 194 kb/s
Encoded date                             : UTC 2016-10-31 00:24:33
Tagged date                              : UTC 2016-10-31 00:24:33
Writing application                      : Open Broadcaster Software v0.659b

Video
ID                                       : 2
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : Baseline@L4.1
Format settings, CABAC                   : No
Format settings, ReFrames                : 1 frame
Format settings, GOP                     : M=1, N=60
Muxing mode                              : Container profile=High@3.1
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding
Duration                                 : 30 s 266 ms
Source duration                          : 30 s 233 ms
Bit rate                                 : 2 000 kb/s
Width                                    : 852 pixels
Height                                   : 480 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Variable
Frame rate                               : 30.000 FPS
Minimum frame rate                       : 29.412 FPS
Maximum frame rate                       : 30.303 FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.163
Stream size                              : 7.30 MiB (92%)
Source stream size                       : 7.31 MiB (92%)
Writing library                          : x264 core 146 r2538 121396c
Encoding settings                        : cabac=0 / ref=1 / deblock=0:0:0 / analyse=0:0 / me=dia / subme=0 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=0 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=3 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=0 / weightp=0 / keyint=60 / keyint_min=6 / scenecut=0 / intra_refresh=0 / rc_lookahead=0 / rc=cbr / mbtree=0 / bitrate=2000 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=2000 / vbv_bufsize=2000 / nal_hrd=none / filler=1 / ip_ratio=1.40 / aq=0
Encoded date                             : UTC 2016-10-31 00:24:33
Tagged date                              : UTC 2016-10-31 00:24:33
Color range                              : Full
Color primaries                          : BT.709
Transfer characteristics                 : sYCC
Matrix coefficients                      : BT.601
mdhd_Duration                            : 30266

Audio
ID                                       : 1
Format                                   : AAC
Format/Info                              : Advanced Audio Codec
Format profile                           : LC
Codec ID                                 : 40
Duration                                 : 30 s 256 ms
Source duration                          : 30 s 232 ms
Bit rate mode                            : Constant
Nominal bit rate                         : 160 kb/s
Channel(s)                               :  channel0
Channel(s)_Original                      : 2 channels
Channel positions                        : Front: L R
Sampling rate                            : 44.1 kHz
Frame rate                               : 43.066 FPS (1024 spf)
Compression mode                         : Lossy
Source stream size                       : 591 KiB (7%)
Language                                 : English
Encoded date                             : UTC 2016-10-31 00:24:33
Tagged date                              : UTC 2016-10-31 00:24:33
mdhd_Duration                            : 30209

Gonna try colormatrix=bt709 later today and get the MediaInfo for that as well. I've used that setting when using Sony Vegas and have had good results with it, so hopefully I get the same here.
 

Suslik V

Active Member
More interesting is an encoding settings from your file comparison:
Code:
Encoding settings : cabac=1 / ref=1 / deblock=1:0:0 / analyse=0x3:0x3 / me=dia / subme=1 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=3 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=1 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=0 / rc=cbr / mbtree=0 / bitrate=2000 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=2000 / vbv_bufsize=2000 / nal_hrd=none / filler=1 / ip_ratio=1.40 / pb_ratio=1.30 / aq=1:1.00
Code:
Encoding settings : cabac=0 / ref=1 / deblock=0:0:0 / analyse=0:0 / me=dia / subme=0 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=0 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=3 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=0 / weightp=0 / keyint=60 / keyint_min=6 / scenecut=0 / intra_refresh=0 / rc_lookahead=0 / rc=cbr / mbtree=0 / bitrate=2000 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=2000 / vbv_bufsize=2000 / nal_hrd=none / filler=1 / ip_ratio=1.40 / aq=0
setting are not equal: different profile, different options etc.
 

KingDecimator

New Member
More interesting is an encoding settings from your file comparison:
Code:
Encoding settings : cabac=1 / ref=1 / deblock=1:0:0 / analyse=0x3:0x3 / me=dia / subme=1 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=3 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=1 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=0 / rc=cbr / mbtree=0 / bitrate=2000 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=2000 / vbv_bufsize=2000 / nal_hrd=none / filler=1 / ip_ratio=1.40 / pb_ratio=1.30 / aq=1:1.00
Code:
Encoding settings : cabac=0 / ref=1 / deblock=0:0:0 / analyse=0:0 / me=dia / subme=0 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=0 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=3 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=0 / weightp=0 / keyint=60 / keyint_min=6 / scenecut=0 / intra_refresh=0 / rc_lookahead=0 / rc=cbr / mbtree=0 / bitrate=2000 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=2000 / vbv_bufsize=2000 / nal_hrd=none / filler=1 / ip_ratio=1.40 / aq=0
setting are not equal: different profile, different options etc.

Might have something to do with my preset on OBS Studio being superfast and on OBS classic it's ultrafast. I normally use ultrafast, but was testing to see if superfast wouldn't lag if I wasn't in a voice call. Though I did have some recordings from Studio with ultrafast and the colors were still not ideal.
 

KingDecimator

New Member
Alright so I tried colormatrix=bt709.

Still have incorrect colors:
xwmZQwp.png


Code:
General
Complete name                            : D:\Editing\Video Recordings and Projects\OBS\Live Streams\2016-11-02 13-35-18.mp4
Format                                   : MPEG-4
Format profile                           : Base Media
Codec ID                                 : isom (isom/iso2/avc1/mp41)
File size                                : 8.87 MiB
Duration                                 : 34 s 235 ms
Overall bit rate                         : 2 173 kb/s
Writing application                      : Lavf57.41.100

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High@L3.1
Format settings, CABAC                   : Yes
Format settings, ReFrames                : 4 frames
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding
Duration                                 : 34 s 235 ms
Bit rate                                 : 2 000 kb/s
Width                                    : 852 pixels
Height                                   : 480 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 29.970 (30000/1001) FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.163
Stream size                              : 8.16 MiB (92%)
Writing library                          : x264 core 148 r2721 72d53ab
Encoding settings                        : cabac=1 / ref=1 / deblock=1:0:0 / analyse=0x3:0x3 / me=dia / subme=1 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=3 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=1 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=0 / rc=cbr / mbtree=0 / bitrate=2000 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=2000 / vbv_bufsize=2000 / nal_hrd=none / filler=1 / ip_ratio=1.40 / pb_ratio=1.30 / aq=1:1.00
Color range                              : Limited
Color primaries                          : BT.709
Transfer characteristics                 : BT.709
Matrix coefficients                      : BT.709

Audio
ID                                       : 2
Format                                   : AAC
Format/Info                              : Advanced Audio Codec
Format profile                           : LC
Codec ID                                 : 40
Duration                                 : 34 s 202 ms
Bit rate mode                            : Constant
Bit rate                                 : 163 kb/s
Channel(s)                               : 2 channels
Channel positions                        : Front: L R
Sampling rate                            : 44.1 kHz
Frame rate                               : 43.066 FPS (1024 spf)
Compression mode                         : Lossy
Stream size                              : 682 KiB (8%)
Title                                    : simple_aac
Default                                  : Yes
Alternate group                          : 1

EDIT: Also tried colormatrix=bt470bg.

No change:
KugAtk5.png


Code:
General
Complete name                            : D:\Editing\Video Recordings and Projects\OBS\Live Streams\2016-11-02 13-42-47.mp4
Format                                   : MPEG-4
Format profile                           : Base Media
Codec ID                                 : isom (isom/iso2/avc1/mp41)
File size                                : 8.35 MiB
Duration                                 : 32 s 266 ms
Overall bit rate                         : 2 170 kb/s
Writing application                      : Lavf57.41.100

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High@L3.1
Format settings, CABAC                   : Yes
Format settings, ReFrames                : 4 frames
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding
Duration                                 : 32 s 266 ms
Bit rate                                 : 2 000 kb/s
Width                                    : 852 pixels
Height                                   : 480 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 29.970 (30000/1001) FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.163
Stream size                              : 7.68 MiB (92%)
Writing library                          : x264 core 148 r2721 72d53ab
Encoding settings                        : cabac=1 / ref=1 / deblock=1:0:0 / analyse=0x3:0x3 / me=dia / subme=1 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=3 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=1 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=0 / rc=cbr / mbtree=0 / bitrate=2000 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=2000 / vbv_bufsize=2000 / nal_hrd=none / filler=1 / ip_ratio=1.40 / pb_ratio=1.30 / aq=1:1.00
Color range                              : Limited
Color primaries                          : BT.709
Transfer characteristics                 : BT.709
Matrix coefficients                      : BT.601

Audio
ID                                       : 2
Format                                   : AAC
Format/Info                              : Advanced Audio Codec
Format profile                           : LC
Codec ID                                 : 40
Duration                                 : 32 s 230 ms
Bit rate mode                            : Constant
Bit rate                                 : 163 kb/s
Channel(s)                               : 2 channels
Channel positions                        : Front: L R
Sampling rate                            : 44.1 kHz
Frame rate                               : 43.066 FPS (1024 spf)
Compression mode                         : Lossy
Stream size                              : 643 KiB (8%)
Title                                    : simple_aac
Default                                  : Yes
Alternate group                          : 1

Colors I want to see (OBS Classic, VLC):

afctYhI.png
 
Last edited:

Suslik V

Active Member
Do you know that there is total mess in the world with the new standard?

Sometimes it require additional HW block to decode properly for portable devices (cheap device - no support, no firmware update etc.), sometimes it is just errors in the decoding software, sometimes hw not compatible or not adjusted or uses different algorithm when auto mode is on.
And always it is hard to switch to the new standard (for example, I have 20 years old TV set - why I need new matrix if my green phosphor is old? My new TV-set is cheap and lack this setting - nothing to adjust. I didn't see any difference... and so on).

Adjust all your equipment according to your target (service or destination, maybe you are working on tv, aren't you?).
 

Suslik V

Active Member
Are you kidding about your settings to OBS Studio?

Your Files ARE 601 IN Classic OBS.

Your Player is wrong!

Because of acceleration maybe. (Edit: forget about Full range for your players too).
 
Last edited:

Suslik V

Active Member
To be clear. OBS classic alters encoding matrix when frame size goes from SD to HD. You need to force matrix for classic OBS. Because OBS Studio keeps it always constant (Settings>Advanced) for all sizes. Your player (editor etc.) tries to playback video SD size as BT.601 (just ignores any info from mp4 container).

Look at your MediaInfo logs and you'll see 601 matrix for OBS classic videos (SD size videos) - this is how video was encoded and what matrix coefficients required to decode it in the right way.

It was so easy to upload the test chart in obs and see it by yourself...
 

KingDecimator

New Member
To be clear. OBS classic alters encoding matrix when frame size goes from SD to HD. You need to force matrix for classic OBS. Because OBS Studio keeps it always constant (Settings>Advanced) for all sizes. Your player (editor etc.) tries to playback video SD size as BT.601 (just ignores any info from mp4 container).

Look at your MediaInfo logs and you'll see 601 matrix for OBS classic videos (SD size videos) - this is how video was encoded and what matrix coefficients required to decode it in the right way.

It was so easy to upload the test chart in obs and see it by yourself...

Alright I tried 601 in advanced settings (but had my capture card still set to 709) and that fixed it:

TvGkFOk.png


Thank you for the help! :D
 

Suslik V

Active Member
Just be sure that your capture card always uses 709 as output (for future) or try to upload test image to the device you want to capture (again, it can show games, videos and images using different matrix! Then it may decoded wrongly by capturing device and output digital video from capture device as 709 to obs. Also, you have monitor... :)
 
Top