녹화 버튼을 눌렀는데 미리보기가 까만 화면이라면, 당황스러울 수밖에 없다. OBS Studio 30.x를 설치하고 소스를 추가했는데 프리뷰 창이 칠흑 같은 검정색 — 나도 macOS Sonoma 14.4로 업데이트한 직후에 이 상태를 처음 겪었고, 거의 40분을 날렸다. 소스 설정 문제인지, 권한 문제인지, 아니면 Apple Silicon GPU 호환성 문제인지 원인이 여러 갈래라서 더 혼란스럽다. 이 글에서는 macOS Sonoma 14.x와 Sequoia 15.x 환경에서 OBS 검은 화면 문제를 원인별로 정리하고, 터미널 명령어와 OBS 로그 파일을 활용한 구체적인 해결 과정을 다룬다.
📑 목차
증상 확인: 검은 화면의 세 가지 패턴
OBS에서 검은 화면이 나타나는 양상은 크게 세 가지로 나뉩니다. 어떤 패턴인지 먼저 파악하면 원인 추적이 훨씬 빨라진다.
패턴 A — 소스 추가 직후부터 검은 화면. Display Capture 또는 macOS Screen Capture 소스를 추가했는데 프리뷰 자체가 까만 상태이다. 마우스를 움직여도 아무 반응이 없고, 녹화 파일을 열어봐도 검은 영상만 나온다. 이 경우 90% 이상 화면 기록 권한 문제이다.
패턴 B — 특정 앱 창만 검은 화면. 데스크탑은 잘 잡히는데 Chrome이나 특정 앱의 윈도우 캡처가 검정이다. 이건 앱 자체의 하드웨어 가속이나 DRM 보호 때문일 가능성이 높다.
패턴 C — 어제까지 되던 게 갑자기 안 됨. macOS 업데이트 후 권한이 리셋됐거나, OBS 업데이트로 소스 타입이 변경된 경우이다. Sonoma 14.4와 Sequoia 15.0 업데이트에서 실제로 이런 사례가 다수 보고됐다.
터미널에서 현재 OBS 버전과 macOS 버전을 먼저 확인해 두면 이후 과정이 수월하다.
# macOS 버전 확인
sw_vers
# 출력 예시:
# ProductName: macOS
# ProductVersion: 14.4.1
# BuildVersion: 23E224
# OBS Studio 버전 확인 (Homebrew로 설치한 경우)
brew info obs
# 출력 예시:
# obs-studio: stable 30.2.3
# ...
# 또는 OBS 앱 번들에서 직접 확인
defaults read /Applications/OBS.app/Contents/Info.plist CFBundleShortVersionString
# 출력 예시: 30.2.3
# 현재 화면 기록 권한이 부여된 앱 목록 확인 (Sonoma 이상)
sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db \
"SELECT client FROM access WHERE service='kTCCServiceScreenCapture';" 2>/dev/null
# 권한 DB 접근이 막혀 있으면 아래 방법 사용
tccutil list ScreenCapture 2>/dev/null || echo "tccutil은 reset만 지원합니다"
원인 1: macOS 화면 기록 권한이 빠져 있다
macOS Mojave(10.14) 이후로 화면 캡처에는 명시적인 사용자 동의가 필요하다. OBS를 처음 실행할 때 권한 요청 팝업이 뜨는데, 이걸 무심코 “허용 안 함”으로 닫아버리면 그 순간부터 OBS는 화면 데이터를 전혀 받지 못한다. 내가 처음 겪었을 때는 팝업이 나온 기억조차 없었는데, 알고 보니 설치 과정에서 여러 팝업이 연달아 뜨면서 실수로 거부한 거였다.
시스템 설정에서 권한 부여
macOS Ventura(13.x) 이후부터 시스템 환경설정이 “시스템 설정”으로 바뀌면서 경로가 달라졌다. Sonoma와 Sequoia에서는 아래 경로를 따릅니다.
# 시스템 설정 > 개인정보 보호 및 보안 > 화면 기록 패널을 직접 여는 명령
open "x-apple.systempreferences:com.apple.preference.security?Privacy_ScreenCapture"
# 위 명령을 실행하면 시스템 설정 앱이 열리면서
# 개인정보 보호 및 보안 > 화면 및 시스템 오디오 녹음 패널이 표시됩니다.
#
# 여기서 확인할 사항:
# 1. OBS.app 항목이 목록에 있는지
# 2. 토글 스위치가 켜져 있는지 (파란색)
# 3. 목록에 없다면 + 버튼으로 /Applications/OBS.app 추가
#
# 변경 후 반드시 OBS를 완전히 종료하고 재시작해야 합니다.
# OBS 프로세스 완전 종료 확인
pkill -f "OBS" 2>/dev/null
sleep 1
pgrep -fl "OBS" && echo "아직 OBS 프로세스가 남아 있습니다" || echo "OBS 완전 종료됨"
# OBS 재시작
open -a "OBS"
한 가지 주의할 점이 있다. macOS Sequoia 15.0부터는 화면 기록 권한을 앱에 부여해도 한 달마다 재확인 팝업이 뜬다. Apple이 보안 정책을 강화한 건데, 이 팝업에서 “한 달간 허용”을 선택하지 않고 “한 번만 허용”을 누르면 OBS를 다시 열 때마다 권한이 풀립니다. 나도 이것 때문에 주기적으로 검은 화면이 재발해서 한참 헤맸다.
원인 2: 잘못된 캡처 소스 선택
OBS 28 버전부터 macOS에서 사용할 수 있는 캡처 소스 타입이 바뀌었다. 예전에는 Display Capture가 기본이었지만, OBS 28 이후로는 macOS Screen Capture가 Apple의 ScreenCaptureKit API를 사용하는 권장 소스이다. 문제는 둘 다 소스 목록에 나타나서 잘못된 걸 선택하기 쉽다는 거다.
// OBS 소스 타입별 내부 식별자 (scene-collection JSON 파일에서 확인 가능)
// 파일 위치: ~/Library/Application Support/obs-studio/basic/scenes/
// 권장: ScreenCaptureKit 기반 (OBS 28+)
{
"id": "screen_capture",
"versioned_id": "screen_capture",
"name": "macOS Screen Capture",
"settings": {
"type": 0,
"display": 0,
"application": "",
"window": 0,
"show_cursor": true,
"show_empty_names": false,
"show_hidden_windows": false
}
}
// 비권장: 레거시 방식 (호환성 문제 발생 가능)
{
"id": "display_capture",
"versioned_id": "display_capture",
"name": "Display Capture",
"settings": {
"display": 0,
"show_cursor": true,
"crop_mode": 0
}
}
// type 값에 따른 캡처 범위:
// type: 0 = 디스플레이 전체 (Display)
// type: 1 = 특정 윈도우 (Window)
// type: 2 = 특정 앱 (Application)
소스를 올바르게 교체하는 순서는 이렇다.
- 기존 Display Capture 소스를 우클릭 → 제거
- 소스 패널에서 + 클릭 → macOS Screen Capture 선택
- 속성 창에서 “Method”가 ScreenCaptureKit으로 되어 있는지 확인
- 캡처 대상(디스플레이 or 윈도우)을 설정하고 확인
소스를 제거하고 다시 추가하는 게 번거롭지만, 기존 소스의 속성만 바꾸는 것보다 확실하다. 간혹 소스 내부 상태가 꼬여서 속성 변경만으로는 해결이 안 되는 경우가 있었다.
원인 3: macOS 업데이트 후 권한 초기화
macOS 메이저 업데이트(예: Ventura → Sonoma, Sonoma → Sequoia)를 하면 TCC(Transparency, Consent, and Control) 데이터베이스가 초기화되는 경우가 있다. 마이너 업데이트에서도 특정 권한이 리셋된 사례가 보고됐다 — Sonoma 14.4가 대표적이었다.
# TCC 데이터베이스 위치 확인
ls -la ~/Library/Application\ Support/com.apple.TCC/TCC.db
# 출력 예시:
# -rw-r--r-- 1 user staff 98304 Mar 15 10:23 TCC.db
# 시스템 레벨 TCC DB (SIP 보호 대상, 직접 수정 불가)
ls -la /Library/Application\ Support/com.apple.TCC/TCC.db
# 권한 초기화가 의심될 때 — OBS 화면 기록 권한을 리셋하고 다시 부여
# 주의: 이 명령은 OBS의 화면 기록 권한을 완전히 제거합니다
tccutil reset ScreenCapture com.obsproject.obs-studio
# 리셋 후 OBS를 다시 실행하면 권한 요청 팝업이 새로 뜹니다
open -a "OBS"
# macOS 업데이트 이력 확인 (최근 업데이트 날짜와 대조용)
softwareupdate --history
# 출력 예시:
# Display Name Version Date
# macOS Sonoma 14.4.1 14.4.1 2024-03-25
# ...
# OBS 설정 파일 백업 (문제 해결 전 안전장치)
BACKUP_DIR=~/Desktop/obs-backup-$(date +%Y%m%d)
mkdir -p "$BACKUP_DIR"
cp -R ~/Library/Application\ Support/obs-studio/basic "$BACKUP_DIR/"
cp -R ~/Library/Application\ Support/obs-studio/global.ini "$BACKUP_DIR/" 2>/dev/null
echo "백업 완료: $BACKUP_DIR"
ls -la "$BACKUP_DIR"
경험상, 업데이트 후 검은 화면이 발생하면 tccutil reset 한 번이면 거의 해결된다. 다만 이 명령은 OBS뿐 아니라 해당 앱의 모든 화면 기록 관련 권한을 날리므로, 가상 카메라 등 다른 권한도 다시 설정해야 할 수 있다.
원인 4: Apple Silicon GPU 호환성
M1, M2, M3 칩 기반 Mac에서는 Intel Mac과 다른 GPU 렌더링 파이프라인을 사용한다. OBS가 Apple Silicon을 네이티브로 지원하기 시작한 건 28 버전부터인데, 그 이전 버전을 Rosetta 2로 돌리고 있다면 검은 화면 확률이 꽤 높다.
# 현재 OBS가 네이티브(arm64)로 실행 중인지 확인
file /Applications/OBS.app/Contents/MacOS/obs
# Apple Silicon 네이티브:
# /Applications/OBS.app/Contents/MacOS/obs: Mach-O universal binary with 2 architectures
# /Applications/OBS.app/Contents/MacOS/obs (for architecture x86_64): Mach-O 64-bit executable x86_64
# /Applications/OBS.app/Contents/MacOS/obs (for architecture arm64): Mach-O 64-bit executable arm64
# 현재 실행 중인 OBS 프로세스의 아키텍처 확인
ps aux | grep -i obs | grep -v grep
# 또는 Activity Monitor 대신 터미널로 확인
arch -arm64 /Applications/OBS.app/Contents/MacOS/obs --help 2>/dev/null && echo "arm64 지원" || echo "arm64 미지원"
# Rosetta 2로 강제 실행 중인지 확인
sysctl sysctl.proc_translated 2>/dev/null
# 0 = 네이티브, 1 = Rosetta 번역 실행 중
# OBS 정보 패널(Finder)에서 "Rosetta를 사용하여 열기" 체크박스 확인
# 체크되어 있다면 해제하고 OBS 재시작
# Homebrew로 설치한 OBS 재설치 (네이티브 arm64 보장)
brew uninstall obs
brew install --cask obs
# Homebrew가 Apple Silicon Mac에서는 자동으로 arm64 바이너리를 설치합니다
# GPU 정보 확인
system_profiler SPDisplaysDataType | head -20
# 출력 예시:
# Apple M2 Pro:
# Chipset Model: Apple M2 Pro
# Type: GPU
# Bus: Built-In
# Total Number of Cores: 19
# Metal Support: Metal 3
만약 OBS를 Rosetta로 돌리고 있었다면, 네이티브 arm64 버전으로 전환하는 것만으로 검은 화면이 해결되는 경우가 많다. 나는 M2 MacBook Pro에서 이 문제를 겪었는데, Finder에서 OBS 앱 정보를 열어보니 “Rosetta를 사용하여 열기”가 체크되어 있었다. 누가 체크한 건지 모르겠지만(아마 과거의 나겠지), 해제하고 재시작하니 바로 해결됐다.
OBS 로그 파일로 원인 추적하기
위 방법들로 해결이 안 되면 OBS 로그 파일을 직접 분석해야 한다. OBS는 실행할 때마다 상세한 로그를 남기는데, 검은 화면의 원인이 거의 다 기록되어 있다. 로그를 읽는 게 어렵게 느껴질 수 있지만, 핵심 키워드 몇 개만 알면 충분하다.
# OBS 로그 파일 위치
LOG_DIR=~/Library/Application\ Support/obs-studio/logs
ls -lt "$LOG_DIR" | head -5
# 가장 최근 로그 파일 열기
LATEST_LOG=$(ls -t "$LOG_DIR"/*.txt 2>/dev/null | head -1)
echo "최근 로그: $LATEST_LOG"
# 검은 화면 관련 핵심 키워드 검색
echo "=== 권한 관련 ==="
grep -i "permission\|authorized\|screen capture\|ScreenCapture" "$LATEST_LOG"
echo ""
echo "=== 소스 로딩 실패 ==="
grep -i "fail\|error\|cannot\|unable" "$LATEST_LOG" | grep -i "source\|capture\|display"
echo ""
echo "=== GPU/렌더링 관련 ==="
grep -i "gpu\|metal\|opengl\|render\|adapter" "$LATEST_LOG"
echo ""
echo "=== ScreenCaptureKit 관련 ==="
grep -i "SCK\|ScreenCaptureKit\|SCStream" "$LATEST_LOG"
# 로그에서 자주 보이는 에러 패턴과 의미:
#
# "Screen capture permissions not granted"
# → 화면 기록 권한 없음. 시스템 설정에서 권한 부여 필요
#
# "Failed to create SCStream"
# → ScreenCaptureKit 초기화 실패. OBS 재시작 또는 macOS 재부팅
#
# "Display capture failed to init"
# → 레거시 Display Capture 소스 문제. macOS Screen Capture로 교체
#
# "No adapters found" 또는 "Metal device creation failed"
# → GPU 인식 실패. OBS를 네이티브 arm64로 실행 중인지 확인
# 로그 파일을 OBS 포럼에 올릴 때 개인정보 제거
sed -E 's|/Users/[^/]+|/Users/USERNAME|g' "$LATEST_LOG" > ~/Desktop/obs-log-sanitized.txt
echo "개인정보 제거된 로그: ~/Desktop/obs-log-sanitized.txt"
OBS 커뮤니티 포럼이나 GitHub Issues에 질문할 때 이 로그 파일을 첨부하면 답변을 훨씬 빨리 받을 수 있다. 다만 로그에 사용자 이름이 포함되어 있으므로 위 sed 명령으로 마스킹한 뒤 공유하는 걸 권장한다.
가상 카메라 설정과 검은 화면
OBS 가상 카메라 기능을 Zoom이나 Google Meet에서 사용할 때도 검은 화면이 발생할 수 있다. 이 경우는 화면 캡처 문제와는 별개로, 가상 카메라 플러그인 자체의 권한이나 설정 문제일 수 있다.
# OBS 가상 카메라 플러그인 상태 확인
# macOS에서 OBS 가상 카메라는 DAL 플러그인으로 설치됩니다
ls -la /Library/CoreMediaIO/Plug-Ins/DAL/
# 정상이라면 아래 항목이 보여야 합니다:
# obs-mac-virtualcam.plugin
# 플러그인이 없다면 OBS 메뉴에서 설치:
# OBS 실행 → Tools → Start Virtual Camera (최초 실행 시 설치 팝업)
# 카메라 권한도 별도로 필요합니다
open "x-apple.systempreferences:com.apple.preference.security?Privacy_Camera"
# 가상 카메라가 시스템에 인식되는지 확인
system_profiler SPCameraDataType
# 출력에 "OBS Virtual Camera"가 포함되어 있어야 합니다
# 예시:
# OBS Virtual Camera:
# Model ID: obs-virtual-cam
# Unique ID: obs-virtual-camera-device
# Zoom/Meet에서 검은 화면이 나올 때 체크리스트:
# 1. OBS에서 "Start Virtual Camera" 버튼이 활성화되어 있는지
# 2. Zoom 설정 > 비디오 > 카메라에서 "OBS Virtual Camera" 선택
# 3. 브라우저(Chrome)의 카메라 권한에 OBS 카메라가 허용되어 있는지
# Chrome에서 카메라 권한 초기화 (Google Meet용)
# chrome://settings/content/camera 에서 OBS Virtual Camera 확인
# 또는 Meet 페이지에서 주소창 왼쪽 자물쇠 아이콘 > 카메라 권한 재설정
# OBS 가상 카메라 출력 해상도 확인
# OBS > Settings > Video
# Base (Canvas) Resolution: 1920x1080
# Output (Scaled) Resolution: 1920x1080
# 해상도 불일치가 검은 화면을 유발하기도 합니다
가상 카메라 관련해서 한 가지 더 — OBS 30.x에서는 가상 카메라를 시작하려면 OBS에 최소 하나의 활성 소스가 있어야 한다. 소스가 하나도 없거나 모든 소스가 숨겨진 상태면 가상 카메라 출력도 검은 화면이 된다. 간단한 건데 은근히 놓치기 쉬운 부분이다.
체크리스트 정리
지금까지 다룬 내용을 진단 순서대로 정리하면 아래와 같다. 위에서부터 하나씩 확인하면 대부분의 검은 화면 문제를 해결할 수 있다.
| 순서 | 확인 항목 | 해결 방법 |
|---|---|---|
| 1 | 화면 기록 권한 | 시스템 설정 → 개인정보 → 화면 기록에서 OBS 토글 ON |
| 2 | 캡처 소스 타입 | Display Capture 대신 macOS Screen Capture 사용 |
| 3 | OBS 버전 | 30.x 최신 버전으로 업데이트 (brew upgrade obs) |
| 4 | 실행 아키텍처 | Rosetta 해제, arm64 네이티브 실행 확인 |
| 5 | macOS 업데이트 후 권한 리셋 | tccutil reset ScreenCapture 후 재부여 |
| 6 | 소스 내부 상태 꼬임 | 소스 삭내 후 새로 추가 |
| 7 | OBS 로그 확인 | ~/Library/Application Support/obs-studio/logs/ 분석 |
최후의 수단으로 OBS 설정을 완전 초기화하는 방법도 있다. ~/Library/Application Support/obs-studio 폴더를 통째로 이름을 바꾸고(예: obs-studio-backup) OBS를 실행하면 초기 상태로 시작한다. 이전 설정은 백업 폴더에서 scene-collection JSON 파일을 복사해 복원할 수 있다. 물론 이건 정말 마지막 수단이고, 대부분은 위 체크리스트의 1~3번에서 해결된다.