2018년형 15인치 맥북 프로(6코어 i7 2.6GHz, RAM 32GB)에서 OBS를 돌리면 팬이 돌고 화면이 끊긴다. 새 장비를 사면 해결되지만, 그 전까지 버텨야 한다면 설정 몇 개로 꽤 달라진다. 실제로 내 기기를 측정하고 정리한 내용이다.
먼저 원인부터
느려지는 이유가 하나가 아니었다. 측정해 보니 셋이 겹쳐 있었다.
- CPU 인코딩 — OBS 기본값인 x264는 CPU로 영상을 압축한다. 6코어로 1080p60을 실시간 인코딩하면 코어가 거의 다 먹힌다.
- 메모리 압박 — 측정 당시 32GB 중 31GB 사용, 여유 1.1GB, 압축 메모리 3.6GB. 이미 스왑이 돌고 있었다.
- 발열 스로틀링 — 이 기종은 지속 부하에서 클럭이 떨어지는 구조다. 녹화 5분쯤부터 체감이 나빠지는 게 이것.
1. 인코더를 하드웨어로 바꾼다 (가장 큰 효과)
설정 > 출력 > 출력 모드를 "고급"으로 바꾸면 인코더를 고를 수 있다. 여기서 x264 대신 Apple VT H264 Hardware Encoder를 선택한다.
인텔 맥에는 Quick Sync라는 전용 인코딩 회로가 들어 있어서, 이걸 쓰면 CPU가 하던 압축을 칩이 대신한다. CPU 사용률이 절반 이하로 떨어진다. 화질은 같은 비트레이트에서 x264보다 약간 손해지만, 끊기는 것보다는 낫다.
녹화 탭과 방송 탭 양쪽 다 바꿔야 한다. 한쪽만 바꾸면 그쪽만 적용된다.
2. 해상도와 프레임을 낮춘다
설정 > 비디오에서:
- 기본 캔버스 해상도: 1920x1080
- 출력(조정된) 해상도: 1920x1080
- FPS: 30
4K나 60fps는 이 기종에서 무리다. 화면 녹화 용도라면 1080p30으로도 글자가 충분히 읽힌다. 캔버스를 4K로 두고 출력만 1080p로 줄이면 축소 연산이 추가로 들어가니, 캔버스부터 1080p로 맞추는 게 낫다.
3. 녹화는 외장 SSD로
설정 > 출력 > 녹화 > 녹화 경로를 외장 SSD로 지정한다. 내장 디스크가 80% 이상 차 있으면 쓰기 속도가 떨어져서 프레임 드랍으로 이어진다.
주의: 와이파이로 연결된 네트워크 드라이브(NAS)에 직접 녹화하면 안 된다. 순간적으로 끊기면 파일이 깨진다. 녹화는 로컬에, 끝난 뒤 옮기는 순서로.
녹화 형식은 mkv를 권한다. mp4는 녹화 중 앱이 죽으면 파일 전체가 날아가지만, mkv는 그때까지 찍힌 부분이 살아 있다. 나중에 OBS의 "녹화 다시 감싸기"로 mp4로 바꿀 수 있다.
4. 녹화 전에 메모리를 비운다
내 경우 상위 소비자가 이랬다.
mediaanalysisd1.2GB — 사진 앱이 라이브러리를 분석하는 프로세스. 라이브러리가 64GB였다.- 브라우저, 메신저, 에디터 세션들이 각각 0.3~0.6GB씩 여러 개
녹화 전에 안 쓰는 브라우저 탭과 앱을 닫으면 3~5GB가 돌아온다. 활성 상태 보기(Activity Monitor)의 메모리 탭에서 "메모리 압박" 그래프가 초록색인지 확인하고 시작하면 된다. 노란색이면 이미 스왑 중이다.
5. 사진 라이브러리를 외부로 옮긴다
위의 mediaanalysisd는 라이브러리가 큰 한 계속 돈다. 사진 라이브러리를 외장이나 NAS로 옮기면 이 프로세스가 조용해지고 디스크도 확보된다. 나는 64GB를 NAS로 보내기로 했다.
6. 발열 대책 (효과는 제한적)
- 받침대로 바닥을 띄운다. 이 기종은 아래로 열을 빼는 구조라 책상에 붙여두면 더 뜨겁다.
- 녹화 중에는 무거운 빌드(Xcode, Rust 컴파일)를 같이 돌리지 않는다.
- 전원 어댑터를 꽂으면 성능 제한이 풀리지만 그만큼 더 뜨거워진다. 짧은 녹화면 배터리로 돌리는 게 나을 때도 있다.
정리
순서대로 하면 이렇다.
- 인코더를 Apple VT 하드웨어로 (제일 중요)
- 1080p 30fps
- 외장 SSD에 mkv로 녹화
- 녹화 전 메모리 정리
이걸로도 4K 60fps는 안 된다. 다만 1080p30 화면 녹화 정도는 끊김 없이 돌아간다. 근본 해결은 하드웨어 미디어 엔진이 따로 있는 애플 실리콘으로 넘어가는 것이고, 그 전까지의 임시방편으로는 이 정도가 한계다.