
Phosphene — Apple의 비디오 배경화면을 macOS Tahoe에서원생복각
macOS Tahoe(26.0+)부터 Apple은 자체 비디오 배경화면인 Aerials을 제공한다. 사파리와 항저르의 아름다운 영상이 배경으로 흘러가는 그 기능, 누구나일시하고 싶었다. 하지만 원하는 영상을 넣으려면? Apple은 공식적으로 그 방법을 제공하지 않는다.
Phosphene은 바로 그 문제의 답이다. 개발자 @kageroumado가 Apple의 비공개 프레임워크를 리버스 엔지니어링해 만든 오픈소스 도구로, 사용자의 비디오 파일을 macOS 데스크톱과 잠금 화면 배경화면으로 재생할 수 있게 해준다.
핵심 구조: 어떻게 동작하는가
Phosphene은 메뉴 바 앱 + 배경화면 확장의 이중 구조로 동작한다.
┌─────────────────────────────────────────────┐│ Phosphene Architecture │├─────────────────────────────────────────────┤│ ┌─────────────┐ ┌────────────────────┐ ││ │ Menu Bar App│ │ WallpaperExtension │ ││ │ (SwiftUI) │ │ (WallpaperAgent) │ ││ ├─────────────┤ ├────────────────────┤ ││ │ 비디오 라이브러리 │ │ AVAssetReader │ ││ │ HEVC 최적화 │ │ AVSampleBuffer │ ││ │ 환경설정/메타데이터│ │ DisplayLayer │ ││ └─────────────┘ └────────────────────┘ │└─────────────────────────────────────────────┘
메뉴 바 쪽은 SwiftUI로 구현되어 비디오 라이브러리 관리, 메타데이터, HEVC 최적화, 환경설정을 담당한다. 확장 쪽은 시스템 프로세스 WallpaperAgent 안에서 실행되며, 런타임에 Apple의 비공개 프레임워크인 WallpaperExtensionKit.framework를 로드한다.
여기서 핵심적인 결정이 하나 있다. Apple의 비디오 재생에 사용하는 AVPlayerLayer는 원격 CAContext 안에서 조용히 실패한다. 그래서 Phosphene은 대신 AVAssetReader + AVSampleBufferDisplayLayer를 직접 구동해 단조 증가하는 타임라인을 유지한다. 이 방식으로 Apple Aerials와 동일한 수준의 안정성을 확보했다.
설치 및 시작하기
요구 사양
• macOS Tahoe 26.0+
• Apple Silicon (M1 이상)
• Xcode 17+
빌드 방법
# 저장소 클론git clone https://github.com/kageroumado/phosphene.gitcd phosphene# Xcode에서 열기open Phosphene.xcodeproj# 빌드 (Xcode에서 Product → Build 또는 Cmd+B)# 생성된 앱을 Applications로 이동
비디오 배경화면 추가
1. 메뉴 바 아이콘 클릭 → 비디오 파일 선택 (MP4, MOV 지원)
2. System Settings → Wallpaper로 이동
3. 추가된 비디오가 Apple 내장 Aerials와 함께 표시됨
4. 원하는 비디오 클릭 → 데스크톱/잠금 화면에 적용
핵심 기능 깊이 파헤치기
Gapless Looping의 비밀
동일한 영상을 끊김 없이 반복 재생하려면 어떻게 해야 할까? 단순히 영상의 끝과 시작을 붙이면 프레임 사이에 미세한 끊김이 발생한다. Phosphene은 이 문제를 PTS/DTS 오프셋 방식으로 해결한다.
루프 경계에서의 처리:1. 마지막 프레임의 PTS/DTS 값을 확인2. 다음 루프 시작 시 오프셋을 적용3. 프레임을 단위로 이어 붙임4. flush나 끊김 없는 반복 재생 완성
이 방식은 Apple Aerials 자체가 사용하는 방법과 동일하다.
Adaptive PlaybackPolicy
Phosphene은 단순히 "재생/정지"가 아니라 다양한 상태를 종합해 재생 품질을 결정한다.
| 정책 | 조건 | 결과 |
|---|---|---|
| full | AC 전원, 표시 모드 정상, 사용자 미건예 | 최고 품질 재생 |
| reduced | 배터리 잔량중등 | 해상도/프레임 낮춤 |
| minimal | Game Mode 활성, 특정 표시 모드 | 극단적 최소화 |
| paused | 모든 디스플레이 가려짐, 사용자 일시정지 | 완전 정지 |
특히 "모든 디스플레이가 창으로 완전히 가려지면 렌더링을 멈리고, 데스크톱이 다시 보일 때까지 재생을 일시정지"하는 기능은 불필요한 리소스 낭비를 방지한다.
Adaptive Variants 시스템
사용자가 직접 낮은 해상도·낮은 fps 버전을 만들어두면, 렌더러가 루프 경계마다 현재 PlaybackPolicy를 만족하는 가장 저렴한 변형으로 자동 교체한다. 배터리를 아끼면서도 끊김 없는 경험을 제공하는 세심한 설계다.
잠금 화면 전용 모드
"Only on Lock Screen" 설정을 활성화하면, 잠금·해제 시 cubic curve로 배경화면이 자연스럽게 나타나고 사라진다. Apple Aerials의 동작과 동일한 애니메이션으로, 데스크톱에서는 정적 배경화면을 사용할 수 있다.
기술적 도전: 리버스 엔지니어링 과정
Phosphene이 가장 인상적인 부분은 Apple의 비공개 프레임워크를 어떻게 해부했느냐다.
WallpaperSnapshotXPC swizzle
Apple의 배경화면 시스템은 XPC를 통해 WallpaperAgent와 통신한다. Phosphene은 이 통신을 swizzle(가로채기)해서 자체 데이터를 주입한다. Apple이 비공개 타입이나 필드명을 바꾸면 이 부분이 깨질 수 있다는 한계가 있지만, 현재까지는 안정적으로 동작한다.
Mirror 기반 XPC 파싱
시스템 내부의 XPC 메시지를 파싱하기 위해 Mirror를 사용한다. 이는 비공개 API에 의존하기 때문에 Apple의 업데이트에 취약하지만, 현재로서는 가장 현실적인 방법이다.
out-of-process 재생
Apple Aerials는 시스템급별적으로 out-of-process에서 재생된다. 덕분에 앱을 종료해도 배경화면이 계속 유지되고, 잠금 화면·유휴·잠자기 생명주기까지 연동된다. 이 구조를 그대로 재현한 것이 Phosphene의 핵심 가치다.
대안과의 비교
| 기능 | Phosphene | 기존제삼방 앱 |
|---|---|---|
| 시스템 통합 | ✅ 네이티브 Wallpaper 선택기에 표시 | ❌ 별도 창/오버레이 |
| 프로세스 분리 | ✅ 앱 종료 후에도 재생 유지 | ❌ 앱 종료 시 중지 |
| 리소스 사용 | ✅ AVSampleBufferDisplayLayer 기반 | ❌ AVPlayerLayer 기반 (원격 실패) |
| 잠금 화면 | ✅ 완벽 지원 | ❌ 제한적 또는 미지원 |
| Gapless looping | ✅ PTS/DTS 오프셋 방식 | ❌ 단순 반복 |
| 배터리 최적화 | ✅ Adaptive Policy + Variants | ❌ 고정 품질 |
기존 솔루션들은 창을 오버레이하거나 데스크톱 환경을 해킹하는 방식이었기에 리소스가 많이 들고 배터리 소모가 컸다. Phosphene은 시스템 수준의 접근으로 이 문제를 근본적으로 해결했다.
활용 시나리오
개인 비디오 배경화면
여행 중 촬영한 영상, 좋아하는 음악비디오, 또는 디자인연시용 영상을 데스크톱 배경으로 설정할 수 있다. AirPlay 없이도 내 하드웨어를 최대한 활용하는 방법이다.
개발 환경 커스터마이징
로딩 화면이나구건 스크립트 실행 중 영상을 배경으로 띄워두면 CLI 작업 중에도 시각적 피드백을 받을 수 있다. 특히만장한 빌드 시간을 활용하는 심리적 트릭으로 쓸모가 있다.
프레젠테이션용
발표 전에 데모 영상 배경화면을 설정해두면, 대기 시간에 브랜드 영상이나 제품 시연영편을 자연스럽게 노출할 수 있다.
한계와 주의사항
가장 큰제약은 Apple의 비공개 API에 의존한다는 점이다. macOS 업데이트 시 프레임워크 구조가 바뀌면 Phosphene이 동작하지 않을 수 있다. 그래도 오픈소스 특성상 커뮤니티의 빠른 수정이 기대된다.
또한 요구 사양이 Apple Silicon + macOS Tahoe 26.0+로 제한된다. Intel Mac이나 구버전 macOS에서는 사용할 수 없다.
결론: 누구에게 추천하는가
Phosphene은 Apple의 엔지니어링 깊이에 감탄하는 개발자, 개인화된 작업 환경을 원하는 power user, 그리고 시스템 수준에서 완벽한 통합을 원하는 덕후에게 추천한다.
Apple이 보여준 비디오 배경화면의 구현은 단순히 영상을 재생하는 것이 아니라, 시스템 전체와 유기적으로 연결되는 서비스였다. Phosphene은 그 핵심을 오픈소스로 풀어내 Anyone이 그 경험을 누릴 수 있게 했다.
macOS Tahoe를 쓴다면 한 번시해볼가값가 충분히 있다.
📚 출처
• Show HN: I reverse engineered Apple's video wallpapers
• Building Native Video Wallpapers for macOS Tahoe with Phosphene
📚 출처
'자동화&툴 리뷰' 카테고리의 다른 글
| LLM이라면, 이것을 읽어 주세요 — Anna's Archive와 웹 표준의 탄생 (0) | 2026.05.24 |
|---|---|
| SSH에서 REST로: Slack EMR 데이터 파이프라인 현대화 완전 가이드 (0) | 2026.05.24 |
| Firefox의 Web Serial 지원 발표 — 개발자가 알아야 할 핵심 정리 (0) | 2026.05.23 |
| Show GN: Codex Relay - 모바일에서 코덱스 Terminal, Browser, Git, File Viewer, Markdown 탑재 완벽 가이드 (0) | 2026.05.22 |
| Show GN: Lemini — 두 가지 모드로 동작하는 법 자문 챗봇 완벽 가이드 (0) | 2026.05.20 |