obsproject / obs-studio

OBS Studio - Free and open source software for live streaming and screen recording
https://obsproject.com
GNU General Public License v2.0
58.94k stars 7.85k forks source link

New built in virtual camera becomes a color misinterpreted green mess during a Skype call #3600

Closed FrostKiwi closed 1 year ago

FrostKiwi commented 3 years ago

On two digital school rooms I used the virtual webcam plugin ( https://github.com/CatxFish/obs-virtual-cam ). Super happy, no problems. I switched to the newly introduced OBS virtual webcam with --startvirtualcam as a start parameter. Skype calls suddenly fail after Skype ingests the virtual webcam. For 10 seconds the video is fine, but after 10 seconds the image in Skype becomes a green mess. This issue is not related to a specific video card or computer. It happens on two different machines, 100% reproducible. Both windows 10, different Video cards and different processors. ( Intel CPU + Nvidia card and AMD CPU + integrated AMD iGPU )

Platform

Operating system and version: Windows 10 64-bit OBS Studio version: 26.0.2

Current Behavior

The Skype call starts normally, but then it suddenly switches to a green mess. (Switches how it reads video formats or something like interpreting raw RGB as NV12 or something)

Steps to Reproduce

Honestly I don't know what is different on those PCs and Skype. Start a Skype call and wait 10 seconds^^ Untitled

WizardCM commented 3 years ago

Please post an OBS log from the session where this occurred.

FrostKiwi commented 3 years ago

Please post an OBS log from the session where this occurred.

Interestinly enough, I had to restart the PC to provoke this, but it's still 100% reproducible on the first call. The virtualcam plugin still continues to work reliably. Here is the log file: https://obsproject.com/logs/v0LgI1yU5NGi9kE2 There are no log messages after "12:32:11.902: ==== Virtual Camera Start" so whatever is happening is on the side of Skype I presume... Just for context: The green mess is not only on the recipient's side. The green mess can also be seen on the small self-preview in the top right corner on the other PC. But again, just to add insult to injury, it only happens 10 seconds after the call is started and seemingly works fine. here

asiriann commented 3 years ago

I've seen the same issue when using this new feature. I use the virtual camera exclusively with MS Teams. I will see if I can grab the logs on the next occurrence.

I simply stop and start the camera and video output is corrected.

its only ever happened once per call but has happened a few times in a day. The corrupted output can be seen by the people in the meeting.

FrostKiwi commented 3 years ago

I've seen the same issue when using this new feature. I use the virtual camera exclusively with MS Teams. I will see if I can grab the logs on the next occurrence.

I'm glad that it is not specific to my setup.

I simply stop and start the camera and video output is corrected.

Same deal here. Unfortunately, in my case it's a deal breaker. There is neither mouse nor keyboard connected to those machines. No teacher is supposed to even know how to operate OBS :S

asiriann commented 3 years ago

See log @WizardCM 08:45:04.819: Command Line Arguments: --startvirtualcam 08:45:04.819: CPU Name: Intel(R) Core(TM) i5-7440HQ CPU @ 2.80GHz 08:45:04.819: CPU Speed: 2808MHz 08:45:04.819: Physical Cores: 4, Logical Cores: 4 08:45:04.819: Physical Memory: 16266MB Total, 9769MB Free 08:45:04.819: Windows Version: 10.0 Build 18363 (release: 1909; revision: 1082; 64-bit) 08:45:04.819: Running as administrator: false 08:45:04.819: Aero is Enabled (Aero is always on for windows 8 and above) 08:45:04.820: Windows 10 Gaming Features: 08:45:04.820: Game Bar: Off 08:45:04.820: Game DVR: Off 08:45:04.820: Game DVR Background Recording: Off 08:45:04.820: Game Mode: Off 08:45:04.824: Sec. Software Status: 08:45:04.826: Windows Defender Antivirus: enabled (AV) 08:45:04.827: Windows Firewall: disabled (FW) 08:45:04.827: Current Date/Time: 2020-10-15, 08:45:04 08:45:04.827: Browser Hardware Acceleration: true 08:45:04.828: Portable mode: false 08:45:05.230: OBS 26.0.2 (64-bit, windows) 08:45:05.230: --------------------------------- 08:45:05.259: --------------------------------- 08:45:05.259: audio settings reset: 08:45:05.259: samples per sec: 48000 08:45:05.259: speakers: 2 08:45:05.261: --------------------------------- 08:45:05.261: Initializing D3D11... 08:45:05.261: Available Video Adapters: 08:45:05.264: Adapter 0: Intel(R) HD Graphics 630 08:45:05.264: Dedicated VRAM: 134217728 08:45:05.264: Shared VRAM: 4233156608 08:45:05.264: PCI ID: 8086:591b 08:45:05.265: Driver Version: 26.20.100.8142 08:45:05.265: output 0: pos={0, 0}, size={1680, 1050}, attached=true, refresh=60, name=DELL P2210 08:45:05.265: output 1: pos={1680, 0}, size={1680, 1050}, attached=true, refresh=60, name=DELL P2210 08:45:05.268: Loading up D3D11 on adapter Intel(R) HD Graphics 630 (0) 08:45:05.294: D3D11 loaded successfully, feature level used: b000 08:45:05.294: DXGI increase maximum frame latency success 08:45:05.924: --------------------------------- 08:45:05.924: video settings reset: 08:45:05.924: base resolution: 1280x720 08:45:05.924: output resolution: 1280x720 08:45:05.924: downscale filter: Bicubic 08:45:05.924: fps: 30/1 08:45:05.924: format: NV12 08:45:05.924: YUV mode: sRGB/Partial 08:45:05.924: NV12 texture support not available 08:45:05.926: Audio monitoring device: 08:45:05.926: name: Speakers (VB-Audio Cable A) 08:45:05.926: id: {0.0.0.00000000}.{1a1ec014-0399-489d-b71f-7e0d9e1d25ec} 08:45:05.927: --------------------------------- 08:45:05.942: [CoreAudio encoder]: CoreAudio AAC encoder not installed on the system or couldn't be loaded 08:45:05.947: Failed to load 'en-US' text for module: 'decklink-ouput-ui.dll' 08:45:06.036: [AMF] Unable to load 'amfrt64.dll', error code 126. 08:45:06.039: [AMF] AMF Test failed due to one or more errors. 08:45:06.039: Failed to initialize module 'enc-amf.dll' 08:45:06.087: [obs-browser]: Version 2.8.7 08:45:06.098: [obs-ndi] hello ! (version 4.9.0) 08:45:06.098: [obs-ndi] Trying 'C:\Program Files\NewTek\NDI 4 Runtime\v4' 08:45:06.098: [obs-ndi] Found NDI library at 'C:/Program Files/NewTek/NDI 4 Runtime/v4/Processing.NDI.Lib.x64.dll' 08:45:06.103: [obs-ndi] NDI runtime loaded successfully 08:45:06.113: [obs-ndi] NDI library initialized successfully (NDI SDK WIN64 06:20:19 Apr 1 2020 4.5.1.0) 08:45:06.168: [tuna] Loading v1.5.1 build time 2020.10.03 10:40 08:45:06.230: [tuna] Registered Spotify (id: spotify) 08:45:06.233: [tuna] Registered MPD (id: mpd) 08:45:06.233: [tuna] Registered VLC (id: vlc) 08:45:06.234: [tuna] VLC source not available, VLC support disabled 08:45:06.236: [tuna] Registered Window Title (id: window) 08:45:06.238: [tuna] Registered last.fm (id: lastfm) 08:45:06.238: [tuna] Registered Google Play Music Desktop Player (id: gpmdp) 08:45:06.238: [tuna] Loaded 1 outputs 08:45:06.239: [tuna] Refreshing Spotify token 08:45:06.473: [tuna] Spotify response: { 08:45:06.473: "access_token": "REDACTED", 08:45:06.473: "expires_in": 3600, 08:45:06.473: "refresh_token": null, 08:45:06.473: "scope": "user-modify-playback-state user-read-playback-state user-read-currently-playing", 08:45:06.473: "token_type": "Bearer" 08:45:06.473: } 08:45:06.473: 08:45:06.474: [tuna] Successfully logged in 08:45:06.474: [tuna] Successfully renewed Spotify token 08:45:06.487: Couldn't find VLC installation, VLC video source disabled 08:45:06.502: A DeckLink iterator could not be created. The DeckLink drivers may not be installed 08:45:06.503: No blackmagic support 08:45:06.514: --------------------------------- 08:45:06.514: Loaded Modules: 08:45:06.514: win-wasapi.dll 08:45:06.514: win-mf.dll 08:45:06.514: win-dshow.dll 08:45:06.514: win-decklink.dll 08:45:06.514: win-capture.dll 08:45:06.514: vlc-video.dll 08:45:06.514: tuna.dll 08:45:06.514: text-freetype2.dll 08:45:06.514: rtmp-services.dll 08:45:06.514: obs-x264.dll 08:45:06.514: obs-vst.dll 08:45:06.514: obs-virtualoutput.dll 08:45:06.514: obs-transitions.dll 08:45:06.514: obs-text.dll 08:45:06.514: obs-qsv11.dll 08:45:06.515: obs-outputs.dll 08:45:06.515: obs-ndi.dll 08:45:06.515: obs-filters.dll 08:45:06.515: obs-ffmpeg.dll 08:45:06.515: obs-browser.dll 08:45:06.515: logi_obs_plugin_x64.dll 08:45:06.515: image-source.dll 08:45:06.515: frontend-tools.dll 08:45:06.515: enc-amf.dll 08:45:06.515: decklink-ouput-ui.dll 08:45:06.515: coreaudio-encoder.dll 08:45:06.515: --------------------------------- 08:45:06.515: Source ID 'vlc_source' not found 08:45:06.515: Failed to create source 'dummy9873945'! 08:45:06.525: ==== Startup complete =============================================== 08:45:06.542: All scene data cleared 08:45:06.542: ------------------------------------------------ 08:45:06.839: WASAPI: Device 'Speakers / Headphones (Realtek Audio)' [48000 Hz] initialized 08:45:06.839: [Loaded global audio device]: 'Desktop Audio' 08:45:06.935: WASAPI: Device 'Microphone (2- Yeti Stereo Microphone)' [44100 Hz] initialized 08:45:06.950: adding 42 milliseconds of audio buffering, total audio buffering is now 42 milliseconds (source: Yeti) 08:45:06.950: 08:45:07.163: --------------------------------- 08:45:07.163: [DShow Device: 'Logitech Webcam'] settings updated: 08:45:07.163: video device: HD Pro Webcam C920 08:45:07.163: video path: \?\usb#vid_046d&pid_082d&mi_00#7&27585a49&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global 08:45:07.163: resolution: 1280x720 08:45:07.163: flip: 0 08:45:07.163: fps: 30.00 (interval: 333333) 08:45:07.163: format: H264 08:45:07.616: Switched to scene '720 WFH Logitech w/Yeti' 08:45:07.634: ------------------------------------------------ 08:45:07.634: Loaded scenes: 08:45:07.634: - scene '720 WFH Logitech w/Yeti': 08:45:07.634: - source: 'Logitech Webcam' (dshow_input) 08:45:07.634: - source: '[NS] 720 AnF Overlay' (scene) 08:45:07.634: - source: 'Yeti' (wasapi_input_capture) 08:45:07.634: - monitoring: monitor and output 08:45:07.634: - filter: 'Noise Gate' (noise_gate_filter) 08:45:07.634: - filter: 'Noise Suppression' (noise_suppress_filter_v2) 08:45:07.634: - filter: 'Color Correction' (color_filter) 08:45:07.634: - scene '720 Stepped away': 08:45:07.634: - source: '[NS] 720 AnF Overlay' (scene) 08:45:07.634: - source: 'Away' (text_gdiplus_v2) 08:45:07.634: - scene '[NS] 720 AnF Overlay': 08:45:07.634: - source: 'Line' (image_source) 08:45:07.634: - source: 'Logo' (image_source) 08:45:07.634: - source: 'Day' (text_gdiplus_v2) 08:45:07.634: ------------------------------------------------ 08:45:07.972: Virtual output started 08:45:07.975: ==== Virtual Camera Start ========================================== 09:18:25.654: Switched to Preview/Program mode 09:18:25.654: ------------------------------------------------ 09:18:37.640: User added scene 'Testing' 09:18:37.647: User switched to scene 'Testing' 09:18:55.343: User added source 'Window Capture' (window_capture) to scene 'Testing' 09:18:55.368: [window-capture: 'Window Capture'] update settings: 09:18:55.368: executable: Teams.exe 09:18:55.368: method selected: Automatic 09:18:55.368: method chosen: WGC 09:18:55.368: 09:19:03.492: [window-capture: 'Window Capture'] update settings: 09:19:03.492: executable: firefox.exe 09:19:03.492: method selected: Automatic 09:19:03.492: method chosen: WGC 09:19:03.492: 09:20:02.072: User switched to scene '[NS] 720 AnF Overlay' 09:20:02.080: User Removed scene 'Testing' 09:20:04.975: User switched to scene '720 WFH Logitech w/Yeti' 09:20:06.201: Switched to scene '720 WFH Logitech w/Yeti' 09:20:06.209: Switched to regular Preview mode 09:20:06.209: ------------------------------------------------ 11:01:12.988: Output 'virtualcam_output': stopping 11:01:12.988: Output 'virtualcam_output': Total frames output: 244947 11:01:12.988: Output 'virtualcam_output': Total drawn frames: 244911 (244948 attempted) 11:01:12.988: Output 'virtualcam_output': Number of lagged frames due to rendering lag/stalls: 37 (0.0%) 11:01:12.989: ==== Virtual Camera Stop =========================================== 11:01:12.997: Virtual output stopped 11:01:14.103: Virtual output started 11:01:14.106: ==== Virtual Camera Start ==========================================

the-claw commented 3 years ago

I also have this exact issue with MS Teams and Skype using a Logitech HD Webcam C270 piped though the OBS virtual camera using the 64-bit version of OBS Studio. Toggling the virtual camera output off then on corrects the problem. With Skype it appears to reliably happen a few seconds after the call starts, with teams it can take a while before it corrupts.

Gunspike commented 3 years ago

I'm using Discord.

2020-12-14 07-45-22.txt unknown

cpralle commented 3 years ago

+1 on this. v26.1.0 (64-bit, windows)

Using a DSLR with a cheap HDMI converter.

Been having issues in Teams where colors look washed out, splotchy. Some people say it looks "vintage". Note, NOT GREEN.

Then using Zoom yesterday, got the green. Looked good on my device, but was recording and recording was green.

the-claw commented 3 years ago

Been having issues in Teams where colors look washed out, splotchy.

Yeah I think that splotchy image was a Teams bug, my whole org was having the same thing for a while before new years and we don't use OBS virtual cams.

JamesFromIT commented 3 years ago

I haven't got much to add, but I've had the same problem with Zoom.

Other virtual camera plugins work fine.

I'm using Windows 10 64-bit with OBS Studio 64-bit. My webcam is the Logitech C922.

Peter-Krebs commented 3 years ago

This bug is still a thing. However the forum has some answers / workarounds for now.


Disabling GPU acceleration in Teams settings: https://obsproject.com/forum/threads/virtual-cam-output-gets-distorted-and-turns-greenish.135098/#post-510508

People also suggest to fix your camera settings individually: https://obsproject.com/forum/threads/virtual-cam-output-gets-distorted-and-turns-greenish.135098/#post-504102

Setting fixed 1920x1080@30fps for scaled output in OBS settings: https://obsproject.com/forum/threads/virtual-cam-output-gets-distorted-and-turns-greenish.135098/page-2#post-527252


One or all of those settings might help the situation.
It is probably an issue for Teams, Zoom or what-have-you and not directly OBS. It is hard to fix on the OBS side.

When the program expects Full HD 1920x1080@30fps output from your webcam and that is hard-coded in I guess we have to fix the above settings for now.

FrostKiwi commented 3 years ago

When the program expects Full HD 1920x1080@30fps output from your webcam and that is hard-coded in I guess we have to fix the above settings for now.

This info is untrue for our PCs and Skype. 1280x720@30 and 1920x10880@30 all provide a green mess roughly half a minute into the call.

The plug-in https://github.com/CatxFish/obs-virtual-cam continues to be a reliable work horse for almost 1.5 years of Corona now.

jim-edwards commented 3 years ago

One or all of those settings might help the situation. It is probably an issue for Teams, Zoom or what-have-you and not directly OBS. It is hard to fix on the OBS side.

Just adding that none of the above work-arounds worked for me. I don't have this issue with ANY other virtual cam software, including the original OBS plugin that did multiple output virtual-cam. As a work-around, I am using NDI Virtual camera and NDI output, which also works without the green bars corruption. I have also opened a ticket with Microsoft on teams, but they also claim its not their problem.. Seems like a finger pointing situation to me.

RytoEX commented 3 years ago

Just to gather some additional information:

  1. Is this still reproducible in OBS Studio 27.0.0 or newer? Please double check in data\obs-plugins\win-dshow that obs-virtualcam-module32.dll and obs-virtualcam-module64.dll show "27.0.0" for the File Version in their properties.
  2. Have you replaced the built-in placeholder image for OBS Virtual Camera with a custom placeholder image?
  3. What resolution and frame rate do you have your OBS Virtual Camera set to? The OBS Virtual Camera uses OBS' Output Resolution and FPS. An OBS log will also contain this information, and I have checked over the logs posted to this thread so far.
  4. Is this reproducible in the Skype Settings window when previewing the virtual camera feed, or does it only reproduce in a call?
  5. Are you using any camera effects (e.g., "background effects" in Skype)?

The green image issue looks like an issue we'd found related to custom placeholder images that didn't match the size of the OBS Virtual Camera. We believe that to be fixed in OBS Studio 27.

cpralle commented 3 years ago

Hi,

Most important thing to note now is that I haven't seen any repro in at least a couple of months.

  1. So, I haven't been using OBS since this thread. I had switched to ManyCam for a reason unrelated to this issue. Note that the issue also reproed with ManyCam.
  2. I had not replaced the placeholder image.
  3. In ManyCam version below, I've always run 1080p 30fps.
  4. Can't repro now, so not able to check the Skype Settings feed.
  5. Was not using any camera effects (also wasn't using Skype, was using Teams)

Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10

From: Ryan @.> Sent: Friday, June 11, 2021 9:38 AM To: @.> Cc: @.>; @.> Subject: Re: [obsproject/obs-studio] New built in virtual camera becomes a color misinterpreted green mess during a Skype call (#3600)

Just to gather some additional information:

  1. Is this still reproducible in OBS Studio 27.0.0 or newer? Please double check in data\obs-plugins\win-dshow that obs-virtualcam-module32.dll and obs-virtualcam-module64.dll show "27.0.0" for the File Version in their properties.
  2. Have you replaced the built-in placeholder image for OBS Virtual Camera with a custom placeholder image?
  3. What resolution and frame rate do you have your OBS Virtual Camera set to? The OBS Virtual Camera uses OBS' Output Resolution and FPS. An OBS log will also contain this information, and I have checked over the logs posted to this thread so far.
  4. Is this reproducible in the Skype Settings window when previewing the virtual camera feed, or does it only reproduce in a call?
  5. Are you using any camera effects (e.g., "background effects" in Skype)?

The green image issue looks like an issue we'd found related to custom placeholder images that didn't match the size of the OBS Virtual Camera. We believe that to be fixed in OBS Studio 27.

- You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fobsproject%2Fobs-studio%2Fissues%2F3600%23issuecomment-859705095&data=04%7C01%7C%7C9af72390c7b640ee21d408d92cf74ab2%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637590262879173622%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=4w4P2jumerigO2ESaApGth3C751RM%2B11plEhbHqRqT0%3D&reserved=0, or unsubscribehttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAOQC66VDLLKCE3JMNEG7HVLTSI3W5ANCNFSM4SM4WIVA&data=04%7C01%7C%7C9af72390c7b640ee21d408d92cf74ab2%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637590262879183578%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=XRMN0Wf4ZvqGXEysysuIGk1%2FUbUL1k%2F45KbLE6H2yzY%3D&reserved=0.

SirLeto commented 3 years ago

I'm running 27.0.1 and the issue still occurs in skype,

It does not occur in the preview window, only a call.

this a 720p webcam. I'm not using any effects in skype.

olafthiele commented 2 years ago

Still a problem, currently always visible when first starting virtual cam and then Skype. Also sometimes with Teams, but never with zoom. Can usually be fixed by restarting the virtual cam im OBS while Skype is running, strange.

SirLeto commented 2 years ago

This does not happen with slobs, oddly enough. I don't know what they've changed. Actually, webcam source doesn't work at all in obs anymore.

jim-edwards commented 2 years ago

I found that this point is what was the root cause for me:

  1. Have you replaced the built-in placeholder image for OBS Virtual Camera with a custom placeholder image?

I had replaced the image with just a blank black one so that if the camera was disabled, its not a giant logo in people's face. Putting this back to the default image fixed my corruption issues.

FrostKiwi commented 2 years ago

@jim-edwards That was not how it was in my case. Default Placeholder image as shown in https://github.com/obsproject/obs-studio/issues/3600#issuecomment-707653941 . Since https://github.com/CatxFish/obs-virtual-cam worked so well over the past 2 years, I never bothered to recheck actually with all the new updates. Should do that I guess...

chrismarkEI commented 2 years ago

I use the OBS Virtual Camera (27.1.3) for all my Teams and Zoom calls. It's great as I have a very wide angle camera and it allows me to set scenes at various "zoom in" levels. I am still getting this green screen issue with Teams. I have the Virtual camera started then connect to a teams meeting almost immediately it jumps to the green mess on Teams. I press Stop Virtual Camera and then start it again and it remains fine after that. I have not changed the placeholder image. It would be good to get this fixed.

millsoft commented 2 years ago

I experienced this few times lately in Microsoft Teams. It works fine when I make a test call, I see myself perfectly but then when I go into a real meeting, I see (sometimes!) this green abomination.

My setup: I use OBS with a dslr but also with other usb webcams. If I use the webcams directly without OBS, it works. I use OBS 27.2.4.

Here is the OBS log from my meeting today, maybe someone can see somethong?

11:44:46.960: User switched to scene 'Cam'
11:44:48.239: ---------------------------------
11:44:48.239: [DShow Device: 'Webcam'] settings updated: 
11:44:48.239:   video device: EOS Webcam Utility
11:44:48.239:   video path: \\?\root#eoswebcamsource#0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\eoswebcamcamerasource
11:44:48.239:   resolution: 1280x720
11:44:48.239:   flip: 0
11:44:48.239:   fps: 30.00 (interval: 333333)
11:44:48.239:   format: XRGB
11:44:48.239:   buffering: disabled
11:44:48.240: DShow: HDevice::ConnectPins: failed to connect pins (0x8004022A): 
11:45:32.144: User switched to scene 'Cam3'
11:45:33.790: ---------------------------------
11:45:33.790: [DShow Device: 'cam3'] settings updated: 
11:45:33.790:   video device: HD Pro Webcam C920
11:45:33.790:   video path: \\?\usb#vid_046d&pid_082d&mi_00#8&389e0be7&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global
11:45:33.790:   resolution: 640x480
11:45:33.790:   flip: 0
11:45:33.790:   fps: 30.00 (interval: 333333)
11:45:33.790:   format: YUY2
11:45:33.790:   buffering: disabled
11:45:45.676: ==== Shutting down ==================================================
11:45:45.688: [obs-backgroundremoval] Destroy scalers.
11:45:45.968: All scene data cleared
11:45:45.968: ------------------------------------------------
11:45:45.978: Virtual output stopping
11:45:46.001: Output 'virtualcam_output': stopping
11:45:46.001: Output 'virtualcam_output': Total frames output: 52019
11:45:46.001: Output 'virtualcam_output': Total drawn frames: 52018 (52021 attempted)
11:45:46.001: Output 'virtualcam_output': Number of lagged frames due to rendering lag/stalls: 3 (0.0%)
11:45:46.001: Virtual output stopped
11:45:46.121: [obs-websocket] [obs_module_unload] Shutting down...
11:45:46.123: [obs-websocket] [WebSocketServer::ServerRunner] IO thread exited.
11:45:46.123: [obs-websocket] [WebSocketServer::Stop] Server stopped successfully
11:45:46.124: [obs-websocket] [obs_module_unload] Finished shutting down.
11:45:46.125: [obs-backgroundremoval] plugin unloaded
11:45:46.125: [Scripting] Total detached callbacks: 0
11:45:46.125: Freeing OBS context data
11:45:46.162: == Profiler Results =============================
11:45:46.162: run_program_init: 3248.29 ms
11:45:46.162:  ?OBSApp::AppInit: 19.871 ms
11:45:46.162:  ? ?OBSApp::InitLocale: 2.882 ms
11:45:46.162:  ?OBSApp::OBSInit: 3063.98 ms
11:45:46.162:    ?obs_startup: 3.203 ms
11:45:46.162:    ?OBSBasic::OBSInit: 2556.03 ms
11:45:46.162:      ?OBSBasic::InitBasicConfig: 0.336 ms
11:45:46.162:      ?OBSBasic::ResetAudio: 0.141 ms
11:45:46.162:      ?OBSBasic::ResetVideo: 444.77 ms
11:45:46.162:      ?OBSBasic::InitOBSCallbacks: 0.006 ms
11:45:46.162:      ?OBSBasic::InitHotkeys: 0.051 ms
11:45:46.162:      ?obs_load_all_modules: 1655.5 ms
11:45:46.162:      ? ?obs_init_module(aja-output-ui.dll): 0.24 ms
11:45:46.162:      ? ?obs_init_module(aja.dll): 0.109 ms
11:45:46.162:      ? ?obs_init_module(coreaudio-encoder.dll): 1.107 ms
11:45:46.162:      ? ?obs_init_module(decklink-captions.dll): 0.027 ms
11:45:46.162:      ? ?obs_init_module(decklink-ouput-ui.dll): 0.914 ms
11:45:46.162:      ? ?obs_init_module(enc-amf.dll): 26.814 ms
11:45:46.162:      ? ?obs_init_module(frontend-tools.dll): 4.455 ms
11:45:46.162:      ? ?obs_init_module(image-source.dll): 0.006 ms
11:45:46.162:      ? ?obs_init_module(obs-backgroundremoval.dll): 0.008 ms
11:45:46.162:      ? ?obs_init_module(obs-browser.dll): 0.46 ms
11:45:46.162:      ? ?obs_init_module(obs-ffmpeg.dll): 0.919 ms
11:45:46.162:      ? ? ?nvenc_check: 0.738 ms
11:45:46.162:      ? ?obs_init_module(obs-filters.dll): 0.061 ms
11:45:46.162:      ? ?obs_init_module(obs-outputs.dll): 0.013 ms
11:45:46.162:      ? ?obs_init_module(obs-qsv11.dll): 46.233 ms
11:45:46.162:      ? ?obs_init_module(obs-text.dll): 0.197 ms
11:45:46.162:      ? ?obs_init_module(obs-transitions.dll): 0.011 ms
11:45:46.162:      ? ?obs_init_module(obs-vst.dll): 0.002 ms
11:45:46.162:      ? ?obs_init_module(obs-websocket.dll): 18.296 ms
11:45:46.162:      ? ?obs_init_module(obs-x264.dll): 0.003 ms
11:45:46.162:      ? ?obs_init_module(rtmp-services.dll): 1.308 ms
11:45:46.162:      ? ?obs_init_module(text-freetype2.dll): 0.069 ms
11:45:46.162:      ? ?obs_init_module(vlc-video.dll): 0.058 ms
11:45:46.162:      ? ?obs_init_module(win-capture.dll): 158.77 ms
11:45:46.162:      ? ?obs_init_module(win-decklink.dll): 1.939 ms
11:45:46.162:      ? ?obs_init_module(win-dshow.dll): 1.138 ms
11:45:46.162:      ? ?obs_init_module(win-mf.dll): 0 ms
11:45:46.162:      ? ?obs_init_module(win-wasapi.dll): 0.009 ms
11:45:46.162:      ? ?reset_win32_symbol_paths: 0.204 ms
11:45:46.162:      ?OBSBasic::ResetOutputs: 0.189 ms
11:45:46.162:      ?OBSBasic::CreateHotkeys: 0.178 ms
11:45:46.162:      ?OBSBasic::InitService: 1.172 ms
11:45:46.162:      ?OBSBasic::InitPrimitives: 0.097 ms
11:45:46.162:      ?OBSBasic::Load: 326.176 ms
11:45:46.162: obs_hotkey_thread(25 ms): min=0.002 ms, median=0.009 ms, max=6.09 ms, 99th percentile=0.409 ms, 100% below 25 ms
11:45:46.162: audio_thread(Audio): min=0 ms, median=0.019 ms, max=6.825 ms, 99th percentile=0.053 ms
11:45:46.162: obs_graphics_thread(33.3333 ms): min=0.112 ms, median=1.042 ms, max=170.411 ms, 99th percentile=2.166 ms, 99.9935% below 33.333 ms
11:45:46.162:  ?tick_sources: min=0.001 ms, median=0.021 ms, max=170.277 ms, 99th percentile=0.205 ms
11:45:46.162:  ?output_frame: min=0.089 ms, median=0.358 ms, max=13.69 ms, 99th percentile=0.878 ms
11:45:46.162:  ? ?gs_context(video->graphics): min=0.089 ms, median=0.323 ms, max=13.689 ms, 99th percentile=0.762 ms
11:45:46.162:  ? ? ?render_video: min=0.003 ms, median=0.052 ms, max=10.023 ms, 99th percentile=0.488 ms
11:45:46.162:  ? ? ? ?render_main_texture: min=0.002 ms, median=0.038 ms, max=10.021 ms, 99th percentile=0.453 ms
11:45:46.162:  ? ? ? ?render_convert_texture: min=0.004 ms, median=0.008 ms, max=0.134 ms, 99th percentile=0.023 ms, 0.373322 calls per parent call
11:45:46.162:  ? ? ? ?stage_output_texture: min=0.001 ms, median=0.037 ms, max=7.001 ms, 99th percentile=0.22 ms, 0.373322 calls per parent call
11:45:46.162:  ? ? ?gs_flush: min=0.02 ms, median=0.207 ms, max=13.632 ms, 99th percentile=0.473 ms
11:45:46.162:  ? ? ?download_frame: min=0 ms, median=0.083 ms, max=10.714 ms, 99th percentile=0.291 ms, 0.373322 calls per parent call
11:45:46.162:  ? ?output_video_data: min=0.074 ms, median=0.109 ms, max=0.926 ms, 99th percentile=0.209 ms, 0.373315 calls per parent call
11:45:46.162:  ?render_displays: min=0 ms, median=0.6 ms, max=33.616 ms, 99th percentile=1.521 ms
11:45:46.162: video_thread(video): min=0.047 ms, median=0.095 ms, max=1.747 ms, 99th percentile=0.192 ms
11:45:46.162: =================================================
11:45:46.162: == Profiler Time Between Calls ==================
11:45:46.162: obs_hotkey_thread(25 ms): min=24.544 ms, median=25.234 ms, max=59.674 ms, 91.8615% within ±2% of 25 ms (0% lower, 8.13847% higher)
11:45:46.162: obs_graphics_thread(33.3333 ms): min=2.686 ms, median=33.333 ms, max=170.424 ms, 99.8672% within ±2% of 33.333 ms (0.0667447% lower, 0.066027% higher)
11:45:46.162: =================================================
11:45:46.387: Number of memory leaks: 0
mrcge commented 1 year ago

I have the same problem, which I only notice in Teams (has never happened in Slack or Zoom for me). This happens about 50% of the time when I join a call. Interestingly, it can also be triggered by other people joining or leaving a Teams call. I assume on those enter/leave events, Teams sometimes triggers a request for an alternative resolution from each of the connected cameras so that it can reformat the gallery of camera feeds. It seems like it's the Virtual Camera's handling of that request that might be one of the root causes here. To me, this also makes this a potential security risk - if someone else can do something remotely that triggers a corruption/bug in OBS, there's a possible (although pretty complex) route for exploitation there.

Extra info

Fenrirthviti commented 1 year ago

I have the same problem, which I only notice in Teams (has never happened in Slack or Zoom for me).

Are you certain that it's this type of actual video corruption, and not just a green tint? There are separate issues for tracking just the green tint (which can be fixed by switching from Full to Limited color range).

mrcge commented 1 year ago

I have the same problem, which I only notice in Teams (has never happened in Slack or Zoom for me).

Are you certain that it's this type of actual video corruption, and not just a green tint? There are separate issues for tracking just the green tint (which can be fixed by switching from Full to Limited color range).

Yes 100%. This is the same corruption as shown above in the screenshots.

Fenrirthviti commented 1 year ago

Please provide a log file from OBS from when the issue occurs, and screenshots for comparison if you can.

How long has this been happening? What is the first version you noticed the issue in? We will need more details to investigate further.

As for the security concerns, that is not really possible. What is triggering the corruption is likely the exact same thing we discovered in the 28.0.2 hotfix, which is invoking the ffmpeg scaler that has some bugs in it with color handling. 28.0.2 added more conditions where the scaler was being used, so it exposed more issues that were previously unknown. When a caller joins, the video size changes, which might cause the scaler to be called. There is no real path here for any kind of RCE.

FrostKiwi commented 1 year ago

How long has this been happening? What is the first version you noticed the issue in? We will need more details to investigate further.

I already mentioned this in the OP, but my guess is this: OBS's WebCam metadata has something about its self, that makes some apps fallback on default assumptions about the color format it uses. Like defaulting to YUV NV12, even though OBS's data is presented as RGB or vice versa. (Which would explain the Green color coming from a YUV shader and the image showing up 3 times)

An analogous case I encountered: When you export h264 video (With ffmpeg or handbrake), image without Rec709 being specified in the metadata (handbrake doesn't by default), some apps assume Full Range 0-255 instead of limited range 16-235 white, black points and make the display the video very contrast. The App LINE suffers from this (Japan's WhatsApp).

Very similar to that case, OBS may have created a similar situation. With this being good evidence, as provided by @mrcge :

Interestingly, it can also be triggered by other people joining or leaving a Teams call. I assume on those enter/leave events, Teams sometimes triggers a request for an alternative resolution from each of the connected cameras so that it can reformat the gallery of camera feed

When communicating the camera's capabilities, which I presume happens via UVC(?), something about that Metadata may be presented in a way that those apps don't expect, which results in a fallback to a color format, which does not line up with what OBS presents. Having worked with libUVC, it can be quite the challenge to determine what the best quality mode on a Webcam is, when multiple modes are presented. Logs have been presented multiple times by different people and they never seem to show anything interesting unfortunately. Not something that is logged I presume.

mrcge commented 1 year ago

How long has this been happening? What is the first version you noticed the issue in? We will need more details to investigate further.

I can't remember exactly. Probably about 18 months. I think it might have started when the Virtual Camera moved from being a plugin to being a built-in feature, but I can't be 100% sure on that.

Please provide a log file from OBS from when the issue occurs, and screenshots for comparison if you can.

I will send logs and screenshots when it next happens.

mrcge commented 1 year ago

This happened today again. I wasn't able to grab a screenshot (this happened during an important meeting so I couldn't hang around. I just flicked the Virtual Cam off and on quickly to fix it, as you can see in the log). It was definitely the same corruption as shown above, with 4x echoes of me on a corrupt green image.

Log file below. You can see me toggling the virtual camera off and on in a fraction of a second between 14:03:56.125 and 14:03:56.284 which fixed the problem. There are a few error messages just before that starting at 14:03:25.015, but I don't know if they have anything to do with the corruption or not.

13:56:58.941: CPU Speed: 2112MHz
13:56:58.942: Physical Cores: 4, Logical Cores: 8
13:56:58.942: Physical Memory: 16162MB Total, 5615MB Free
13:56:58.942: Windows Version: 10.0 Build 19043 (release: 2009; revision: 2006; 64-bit)
13:56:58.942: Running as administrator: false
13:56:58.942: Aero is Enabled (Aero is always on for windows 8 and above)
13:56:58.943: Windows 10/11 Gaming Features:
13:56:58.943:   Game Bar: Off
13:56:58.943:   Game DVR: Off
13:56:58.943:   Game DVR Background Recording: Off
13:56:58.943:   Game Mode: Probably On (no reg key set)
13:56:58.946: Sec. Software Status:
13:56:58.947: 
13:56:58.948:   Microsoft Defender Antivirus: disabled (AV)
13:56:58.949:   Windows Firewall: enabled (FW)
13:56:58.949: Current Date/Time: 2022-09-29, 13:56:58
13:56:58.950: Browser Hardware Acceleration: true
13:56:58.950: Hide OBS windows from screen capture: false
13:56:58.950: Qt Version: 6.3.1 (runtime), 6.3.1 (compiled)
13:56:58.950: Portable mode: false
13:56:59.327: OBS 28.0.2 (64-bit, windows)
13:56:59.327: ---------------------------------
13:56:59.374: ---------------------------------
13:56:59.374: audio settings reset:
13:56:59.374:   samples per sec: 48000
13:56:59.374:   speakers:        2
13:56:59.374:   max buffering:   960 milliseconds
13:56:59.374:   buffering type:  dynamically increasing
13:56:59.376: ---------------------------------
13:56:59.376: Initializing D3D11...
13:56:59.377: Available Video Adapters: 
13:56:59.382:   Adapter 0: Intel(R) UHD Graphics 620
13:56:59.382:     Dedicated VRAM: 134217728
13:56:59.382:     Shared VRAM:    4178870272
13:56:59.382:     PCI ID:         8086:3ea0
13:56:59.383:     Driver Version: 30.0.101.1338
13:56:59.383:     output 0:
13:56:59.383:       name=DELL P2720D
13:56:59.383:       pos={0, 0}
13:56:59.383:       size={2560, 1440}
13:56:59.383:       attached=true
13:56:59.383:       refresh=59
13:56:59.383:       space=RGB_FULL_G22_NONE_P709
13:56:59.383:       sdr_white_nits=80
13:56:59.383:       nit_range=[min=0.500000, max=270.000000, max_full_frame=270.000000]
13:56:59.384:     output 1:
13:56:59.384:       name=
13:56:59.384:       pos={2560, 1085}
13:56:59.384:       size={1920, 1080}
13:56:59.384:       attached=true
13:56:59.384:       refresh=60
13:56:59.384:       space=RGB_FULL_G22_NONE_P709
13:56:59.384:       sdr_white_nits=80
13:56:59.384:       nit_range=[min=50.000000, max=300.000000, max_full_frame=300.000000]
13:56:59.385:     output 2:
13:56:59.385:       name=DELL S2340L
13:56:59.385:       pos={2560, 0}
13:56:59.385:       size={1920, 1080}
13:56:59.385:       attached=true
13:56:59.385:       refresh=60
13:56:59.385:       space=RGB_FULL_G22_NONE_P709
13:56:59.385:       sdr_white_nits=80
13:56:59.385:       nit_range=[min=0.500000, max=270.000000, max_full_frame=270.000000]
13:56:59.385:   Adapter 1: Intel(R) UHD Graphics 620
13:56:59.386:     Dedicated VRAM: 134217728
13:56:59.386:     Shared VRAM:    4178870272
13:56:59.386:     PCI ID:         8086:3ea0
13:56:59.386:     Driver Version: 30.0.101.1338
13:56:59.386:   Adapter 2: Intel(R) UHD Graphics 620
13:56:59.386:     Dedicated VRAM: 134217728
13:56:59.387:     Shared VRAM:    4178870272
13:56:59.387:     PCI ID:         8086:3ea0
13:56:59.387:     Driver Version: 30.0.101.1338
13:56:59.390: Loading up D3D11 on adapter Intel(R) UHD Graphics 620 (0)
13:56:59.474: D3D11 loaded successfully, feature level used: b000
13:56:59.474: DXGI increase maximum frame latency success
13:57:01.018: ---------------------------------
13:57:01.018: video settings reset:
13:57:01.018:   base resolution:   1280x720
13:57:01.018:   output resolution: 1280x720
13:57:01.018:   downscale filter:  Bicubic
13:57:01.018:   fps:               30/1
13:57:01.018:   format:            NV12
13:57:01.018:   YUV mode:          Rec. 709/Partial
13:57:01.019: NV12 texture support enabled
13:57:01.019: P010 texture support not available
13:57:01.021: Audio monitoring device:
13:57:01.021:   name: Default
13:57:01.021:   id: default
13:57:01.021: ---------------------------------
13:57:01.024: Failed to load 'en-GB' text for module: 'aja-output-ui.dll'
13:57:01.025: No AJA devices found, skipping loading AJA UI plugin
13:57:01.025: Failed to initialize module 'aja-output-ui.dll'
13:57:01.027: Failed to load 'en-GB' text for module: 'aja.dll'
13:57:01.027: No AJA devices found, skipping loading AJA plugin
13:57:01.027: Failed to initialize module 'aja.dll'
13:57:01.027: Skipping module '../../obs-plugins/64bit/chrome_elf.dll', not an OBS plugin
13:57:01.030: [CoreAudio encoder]: CoreAudio AAC encoder not installed on the system or couldn't be loaded
13:57:01.031: Failed to load 'en-US' text for module: 'decklink-captions.dll'
13:57:01.032: Failed to load 'en-US' text for module: 'decklink-output-ui.dll'
13:57:01.036: A DeckLink iterator could not be created.  The DeckLink drivers may not be installed
13:57:01.036: Failed to initialize module 'decklink.dll'
13:57:01.100: [AMF] Unable to load 'amfrt64.dll', error code 126.
13:57:01.103: [AMF] AMF Test failed due to one or more errors.
13:57:01.103: Failed to initialize module 'enc-amf.dll'
13:57:01.117: Skipping module '../../obs-plugins/64bit/libcef.dll', not an OBS plugin
13:57:01.118: Skipping module '../../obs-plugins/64bit/libEGL.dll', not an OBS plugin
13:57:01.118: Skipping module '../../obs-plugins/64bit/libGLESv2.dll', not an OBS plugin
13:57:01.136: [obs-browser]: Version 2.18.5
13:57:01.136: [obs-browser]: CEF Version 103.0.5060.134 (runtime), 103.0.0-5060-shared-textures.2591+g4204d54+chromium-103.0.5060.134 (compiled)
13:57:01.136: [obs-browser]: Blacklisted device detected, disabling browser source hardware acceleration.
13:57:01.143: [noise suppress]: NVIDIA RTX denoiser disabled, redistributable not found
13:57:01.144: [NVIDIA RTX VIDEO FX]: FX disabled, redistributable not found.
13:57:01.203: Failed to load 'en-GB' text for module: 'obs-shaderfilter.dll'
13:57:01.211: Failed to load 'en-GB' text for module: 'obs-websocket.dll'
13:57:01.211: [obs-websocket] [obs_module_load] you can haz websockets (Version: 5.0.1 | RPC Version: 1)
13:57:01.211: [obs-websocket] [obs_module_load] Qt version (compile-time): 6.3.1 | Qt version (run-time): 6.3.1
13:57:01.211: [obs-websocket] [obs_module_load] Linked ASIO Version: 101201
13:57:01.221: [obs-websocket] [obs_module_load] Module loaded.
13:57:01.231: [vlc-video]: Couldn't find VLC installation, VLC video source disabled
13:57:01.244: ---------------------------------
13:57:01.244:   Loaded Modules:
13:57:01.244:     win-wasapi.dll
13:57:01.245:     win-mf.dll
13:57:01.245:     win-dshow.dll
13:57:01.245:     win-capture.dll
13:57:01.245:     vlc-video.dll
13:57:01.245:     text-freetype2.dll
13:57:01.245:     rtmp-services.dll
13:57:01.245:     obs-x264.dll
13:57:01.245:     obs-websocket.dll
13:57:01.245:     obs-vst.dll
13:57:01.245:     obs-transitions.dll
13:57:01.245:     obs-text.dll
13:57:01.245:     obs-shaderfilter.dll
13:57:01.245:     obs-qsv11.dll
13:57:01.245:     obs-outputs.dll
13:57:01.246:     obs-filters.dll
13:57:01.246:     obs-ffmpeg.dll
13:57:01.246:     obs-browser.dll
13:57:01.246:     image-source.dll
13:57:01.246:     frontend-tools.dll
13:57:01.246:     decklink-output-ui.dll
13:57:01.246:     decklink-captions.dll
13:57:01.246:     coreaudio-encoder.dll
13:57:01.246: ---------------------------------
13:57:01.247: ==== Startup complete ===============================================
13:57:01.339: All scene data cleared
13:57:01.339: ------------------------------------------------
13:57:01.358: [win-wasapi: 'Desktop Audio'] update settings:
13:57:01.358:   device id: default
13:57:01.358:   use device timing: 1
13:57:01.369: [Loaded global audio device]: 'Desktop Audio'
13:57:01.370: [win-wasapi: 'Mic/Aux'] update settings:
13:57:01.370:   device id: default
13:57:01.370:   use device timing: 0
13:57:01.370: [Loaded global audio device]: 'Mic/Aux'
13:57:01.439: WASAPI: Device 'Speakers (2- Jabra SPEAK 510 USB)' [48000 Hz] initialized
13:57:01.467: [duplicator-monitor-capture: 'Display Capture'] update settings:
13:57:01.467:   display: 2 (1920x1080)
13:57:01.467:   cursor: true
13:57:01.467:   method: WGC
13:57:01.525: warning: deprecated pixel format used, make sure you did set range correctly
13:57:01.563: warning: deprecated pixel format used, make sure you did set range correctly
13:57:01.631: warning: deprecated pixel format used, make sure you did set range correctly
13:57:01.674: WASAPI: Device 'Microphone (2- Jabra SPEAK 510 USB)' [16000 Hz] initialized
13:57:01.689: warning: deprecated pixel format used, make sure you did set range correctly
13:57:01.855: Switched to scene 'Cam Only'
13:57:01.855: ------------------------------------------------
13:57:01.855: Loaded scenes:
13:57:01.856: - scene 'Cam Only':
13:57:01.856:     - source: 'Group' (group)
13:57:01.856:         - source: 'Grad' (image_source)
13:57:01.857:         - source: '920' (dshow_input)
13:57:01.857:             - filter: 'Chroma Key' (chroma_key_filter)
13:57:01.857:             - filter: 'Color Correction' (color_filter)
13:57:01.857:             - filter: 'Sharpen' (sharpness_filter)
13:57:01.859:             - show: '920 Show Transition' (fade_transition)
13:57:01.860: ------------------------------------------------
13:57:02.768: ---------------------------------
13:57:02.769: [DShow Device: '920'] settings updated: 
13:57:02.769:   video device: HD Pro Webcam C920
13:57:02.769:   video path: \\?\usb#vid_046d&pid_0892&mi_00#9&231f61a4&1&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global
13:57:02.769:   resolution: 1280x720
13:57:02.769:   flip: 0
13:57:02.769:   fps: 20.00 (interval: 500000)
13:57:02.769:   format: MJPEG
13:57:02.769:   buffering: disabled
13:57:02.769:   hardware decode: disabled
13:58:55.635: NV12 texture support enabled
13:58:55.635: P010 texture support not available
13:58:55.641: Virtual output started
13:58:55.648: ==== Virtual Camera Start ==========================================
14:03:25.015: error:   overread 8
14:03:25.015: warning: EOI missing, emulating
14:03:28.949: warning: mjpeg_decode_dc: bad vlc: 0:0 (000001AB4BB522D0)
14:03:28.950: error:   error dc
14:03:28.950: error:   error y=89 x=16
14:03:56.125: Virtual output stopping
14:03:56.128: Output 'virtualcam_output': stopping
14:03:56.135: Output 'virtualcam_output': Total frames output: 9011
14:03:56.140: Output 'virtualcam_output': Total drawn frames: 8701 (9014 attempted)
14:03:56.140: Output 'virtualcam_output': Number of lagged frames due to rendering lag/stalls: 313 (3.5%)
14:03:56.180: Virtual output stopped
14:03:56.207: ==== Virtual Camera Stop ===========================================
14:03:56.253: NV12 texture support enabled
14:03:56.254: P010 texture support not available
14:03:56.284: Virtual output started
14:03:56.303: ==== Virtual Camera Start ==========================================
14:36:33.668: adding 128 milliseconds of audio buffering, total audio buffering is now 128 milliseconds (source: Desktop Audio)
14:36:33.668: 
ArVar commented 1 year ago

Same here. For me it's a permanent issue since updating to new OBS. Turning Color Range to "Limited" in OBS fixed this for me.

mrcge commented 1 year ago

Turning Color Range to "Limited" in OBS fixed this for me.

That has no effect on this issue for me. In fact, my Color Range was already set to Limited.

mrcge commented 1 year ago

I managed to reproduce this corruption today by-

I think the assumption has to be that certain changes amongst the call participants can trigger Teams to request changes to each of the camera feeds (which could be resolution, bit-rate, colour depth etc.) and one of those requests is confusing OBS somehow.

I've attached a screenshot here of my empty chair, which is corrupted in the same way as the other screenshots above with 3x duplications of the scene in the top segment and all green. There is absolutely nothing in the OBS log file when this corruption occured, so I haven't included it here. See my log posting above for all the basic info about my setup.

green-capture

notr1ch commented 1 year ago

This is very likely related to #7529 where the application is requesting a resolution change. If the OBS output resolution is below 1080p, OBS can underflow the output buffer resulting in misaligned content and color information.

OlivierLabbe commented 1 year ago

I had this problem.

My Cam was able to do HDR, in my OBS setting, in advanced setting, the "color range" was to "full"

virtual cam became non-green and good when I put the color Range to "limited"

Fenrirthviti commented 1 year ago

I had this problem.

My Cam was able to do HDR, in my OBS setting, in advanced setting, the "color range" was to "full"

virtual cam became non-green and good when I put the color Range to "limited"

This is not related to this issue, though it might seem similar. That specific issue related to the color range was fixed in 28.0.3.

mrcge commented 1 year ago

This is very likely related to #7529 where the application is requesting a resolution change. If the OBS output resolution is below 1080p, OBS can underflow the output buffer resulting in misaligned content and color information.

Since you posted this hypothesis, I've been running at 1080p and have not seen the green-corruption again, so this sounds like it might be a good guess at the root cause of this. Unfortunately, my laptop can't handle running at that resolution (lag becomes unacceptable) so this is not a long-term solution for me.

notr1ch commented 1 year ago

You can give this build a try: https://github.com/obsproject/obs-studio/issues/7529#issuecomment-1276494786

RytoEX commented 1 year ago

We've deployed some fixes for the virtual camera on Windows. Please retest in OBS Studio 28.1.1 or newer and confirm if this is still occurring.

FrostKiwi commented 1 year ago

We've deployed some fixes for the virtual camera on Windows. Please retest in OBS Studio 28.1.1 or newer and confirm if this is still occurring.

Replaced the https://github.com/CatxFish/obs-virtual-cam plugin with the new OBS version for one of our teachers. Seems fine, even with 1280x720 resolution.

There has been freezing of the webcam feed, which is resolved by stopping and starting the virtual cam, but it's unclear whether that has actually anything to do with OBS itself. The green mess seems to be fixed. Guess I will see how this plays out long term.

RytoEX commented 1 year ago

We've deployed some fixes for the virtual camera on Windows. Please retest in OBS Studio 28.1.1 or newer and confirm if this is still occurring.

Replaced the https://github.com/CatxFish/obs-virtual-cam plugin with the new OBS version for one of our teachers. Seems fine, even with 1280x720 resolution.

There has been freezing of the webcam feed, which is resolved by stopping and starting the virtual cam, but it's unclear whether that has actually anything to do with OBS itself. The green mess seems to be fixed. Guess I will see how this plays out long term.

Are you feeding the virtual camera into Skype for this? Could you describe "freezing" in a bit more detail?

Since the "green mess" seems fixed, we will consider this resolved, but please still feel free to reply to my questions above, as that would be a different issue (and may be related to an already open Issue or we would need to open a new one).