Virtual Camera does not display on macOS with I420 Color Format and Full Color Range
Operating System Info
macOS 14
OBS Studio Version
30.1.1
Expected Behavior
Virtual Camera should work using the I420 color space.
Current Behavior
Running OBS 30.1.1 on an m2 Mac mini. When NV12 is selected as the color format in Advanced settings, virtual camera works fine. Changing the format to I420, virtual camera stays on black screen. Restarting mac or reinstalling OBS does not fix the issue. The Color Range is set to "Full".
Steps to Reproduce
Switch between nv12 and I420 color space with "Full" color range.
There is no such thing as NV10. Did you mean NV12?
For the record, this did not work in 30.0.2 either.
Closing until a log is provided.
Sorry, yes NV12. So if this is a known issue, why is a log needed?
Because log files are critical to us understanding why something is happening. We might be aware of an issue, but not what or why the issue happens. Issue reports that delete large parts of our template do not have the information required to be actionable, and are therefor closed.
Does this work?
16:41:22.620: --------------------------------- 16:41:22.620: video settings reset: 16:41:22.620: base resolution: 1920x1080 16:41:22.620: output resolution: 1920x1080 16:41:22.620: downscale filter: Bicubic 16:41:22.620: fps: 60/1 16:41:22.620: format: I420 16:41:22.620: YUV mode: Rec. 709/Full 16:41:22.620: NV12 texture support not available 16:41:22.620: P010 texture support not available 16:41:22.622: Settings changed (advanced) 16:41:22.622: ------------------------------------------------ 16:41:22.622: YT: InitYTUserUrl() User is not signed 16:41:56.561: User switched to scene 'Cam-LFront' 16:41:56.570: [obs-ndi] ndi_source_activated('NDI-CamLF'...) 16:41:56.605: [obs-ndi] ndi_source_deactivated('AnnouncementSlides'...) 16:42:38.181: ==== Virtual Camera Start ========================================== 16:42:38.181: Starting Virtual Camera output to Program 16:42:39.337: Output 'virtualcam_output': stopping 16:42:39.337: Output 'virtualcam_output': Total frames output: 68 16:42:39.337: Output 'virtualcam_output': Total drawn frames: 69 16:42:39.338: ==== Virtual Camera Stop =========================================== 16:46:37.555: Number of remaining views: 1 16:46:37.555: --------------------------------- 16:46:37.555: video settings reset: 16:46:37.555: base resolution: 1920x1080 16:46:37.555: output resolution: 1920x1080 16:46:37.555: downscale filter: Bicubic 16:46:37.555: fps: 60/1 16:46:37.555: format: NV12 16:46:37.555: YUV mode: Rec. 709/Full 16:46:37.555: NV12 texture support not available 16:46:37.555: P010 texture support not available 16:46:37.557: Settings changed (advanced) 16:46:37.557: ------------------------------------------------ 16:46:37.557: YT: InitYTUserUrl() User is not signed 16:46:39.229: YT: InitYTUserUrl() User is not signed 16:46:42.839: ==== Virtual Camera Start ========================================== 16:46:42.839: Starting Virtual Camera output to Program 16:46:46.242: Output 'virtualcam_output': stopping 16:46:46.242: Output 'virtualcam_output': Total frames output: 204 16:46:46.242: Output 'virtualcam_output': Total drawn frames: 205 16:46:46.243: ==== Virtual Camera Stop ===========================================
We need the full log file, either uploaded as a .txt or using the built-in log uploader from the Help menu after the issue is replicated.
https://obsproject.com/logs/zN5OSaKHLzvDyTb7
Thank you. How are you viewing the Virtual Camera output? Will reopen while this is being investigated, but based on a cursory investigation, this seems to be the case as far back as OBS 29.1 which used the old DAL plugin virtual camera.
Tried both Zoom and Mac Photo Booth apps
Thanks. I can confirm this behavior on macOS 13.6.6 and OBS 29.1, 30.0.2, and 30.1. We've triaged this internally.
Just clarifying that this only seems to occur with the specific combination of I420 Color Format and Full Color Range. NV12+Full works. I420+Limited works. It should be noted that "Full" should not be used unless you are absolutely sure you need it.
Just clarifying that this only seems to occur with the specific combination of I420 Color Format and Full Color Range. NV12+Full works. I420+Limited works. It should be noted that "Full" should not be used unless you are absolutely sure you need it.
Yes, I am aware of the differences between Full and Partial color interpretation. "Full" is chosen conscientiously.
Just clarifying that this only seems to occur with the specific combination of I420 Color Format and Full Color Range. NV12+Full works. I420+Limited works. It should be noted that "Full" should not be used unless you are absolutely sure you need it.
Yes, I am aware of the differences between Full and Partial color interpretation. "Full" is chosen conscientiously.
My note was not only for you, but for the benefit of anyone else running into this who does not need Full and yet chose it for some reason. It was also to note that very specific combinations break, while others work, which can get those affected who do not need Full back into a working state, and also for those debugging this Issue.
Noting my findings: For me, both color ranges break equally with I420 as a format. However, I also found that it works fine with Discord (whereas with QuickTime Player and Cameo it's broken)
Background Discord, top Cameo, bottom QuickTime: