Sunshine macOS 安装配置全流程:6 步跑通游戏串流,3 个报错一次讲透
Sunshine macOS 安装配置全流程:6 步跑通游戏串流,3 个报错一次讲透
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
想在 Mac 上把 Mac 当串流主机,让 Moonlight 客户端低延迟拉流,却不想啃 CMake 报错?本文带你把 Sunshine macOS 安装这条路一次走通:跑通 Web UI、搞定系统权限、把编码器调到顺手,报错时直接对号入座,全程不用翻源码。
动手前,先把这几项过一遍
装之前花两分钟核对下环境,省得中途反复返工:
| 检查项 | 最低要求 | 备注 |
|---|---|---|
| 系统版本 | macOS 11.0(Big Sur)及以上 | 系统音频原生采集需 macOS 14+ |
| 芯片架构 | Apple Silicon 或 Intel | 两者均走 VideoToolbox 硬编 |
| 依赖工具 | Homebrew 或 MacPorts 二选一 | 官方构建脚本默认走 Homebrew |
| 构建工具 | CMake 3.25+、Ninja | 装源码构建时才需要 |
| 编译器 | Apple Clang 15+(C++23) | Xcode Command Line Tools 自带 |
| 端口 | 47990(HTTP)、48010(RTSP) | 被占用需改配置,见后文 |
从 0 到 1 跑通:两条路任选
路线 A:不想编译的,直接拿现成的。
- 下载与你芯片对应的 DMG(arm64 给 Apple Silicon,x86_64 给 Intel)。为什么:预编译包已含签名,跳过所有构建坑。
# 按芯片二选一,下载 Sunshine-macOS-arm64.dmg 或 Sunshine-macOS-x86_64.dmg打开
.dmg,把Sunshine.app拖进Applications,弹出镜像。为什么:macOS 应用标准安装姿势。如果这步卡住 → 见下方"应用被拦截"那条。首次启动,依次放行"屏幕录制""输入监控(键鼠)"权限;macOS 15+ 还会弹"本地网络"。为什么:采集画面和注入输入都靠这些权限。如果这步卡住 → 见下方"权限已给但仍被拒"那条。
浏览器打开
https://localhost:47990,记下首次生成的用户名密码,浏览器警告"不安全"属正常(自签证书)。为什么:Web UI 是后续所有配置的入口。
路线 B:想自己编译的,三步搞定。
- 克隆仓库并装齐依赖(构建文档里的 macOS 依赖清单):
git clone https://gitcode.com/GitHub_Trending/su/Sunshine.git --recurse-submodules cd Sunshine brew install boost cmake ninja node openssl@3 opus pkgconf qtbase qtsvg miniupnpc为什么:这些就是官方 scripts/macos_build.sh 脚本用的同一套公式。如果这步卡住 → 见下方"cmake 阶段报错"那条。
- 配置并编译,产物在
build/目录:
cmake -B build -G Ninja -S . -DCMAKE_BUILD_TYPE=Release cmake --build build -j 4 # -j 后的数字可换成你的 CPU 核数为什么:Ninja 比默认生成器快,Release 保证串流性能。
跑起来后,Web UI 里加你的应用(参考 macOS 应用清单模板),Moonlight 客户端输入 PIN 配对,就能开始串流了。
跑通之后,把它调好用
配置集中在~/.config/sunshine/sunshine.conf,也可以直接在 Web UI 里搜着改(详见 配置文档)。Mac 上最常被动的几项:
| 配置项 | 作用 | 推荐值 |
|---|---|---|
vt_software | VideoToolbox 是否允许回退软编 | auto(硬件不够用时自动兜底) |
vt_coder | 熵编码方式 | auto;画质优先可试cavlc |
audio_sink | 系统音频采集设备 | macOS 14+ 留空走原生采集;老系统填 BlackHole 设备名 |
max_bitrate | 码率上限(Kbps) | 0(跟随 Moonlight 请求),弱网可设5000 |
ping_timeout | 客户端心跳超时(ms) | 跨设备串流不稳时适当调大 |
min_log_level | 日志级别 | 排查时改trace,平时info |
Apple Silicon 用户加分项:M 系列的 VideoToolbox 硬编足够应付 1080p60,保持
vt_software = auto即可;真要压帧数时优先动max_bitrate,别动编码器本身。
报错了?先对号入座
症状:浏览器打不开 47990,或提示"无法访问"
- 根因:首次启动时权限没给全,服务没起来;或者 47990 被别的程序占了。看 Web UI 的 Troubleshooting 页或终端日志里有没有
Permission denied字样,能直接定位。 - 解法:先补权限再重启 Sunshine;确认端口用
lsof -i :47990,被占就改配置里对应端口号。
症状:权限明明都给了,仍提示采集被拒
- 根因:macOS 的隐私开关和 Sunshine 的条目对不上——常见于重装或更新后旧条目失效,日志里表现为反复"access denied"。
- 解法:到"系统设置 > 隐私与安全性"里删掉 Sunshine 的旧条目,重新添加当前安装的应用,然后选 macOS 给出的"退出并重新打开",让它带着新权限重启。
症状:源码构建在 cmake 阶段就炸(找不到头文件或库)
- 根因:通常是依赖没装全,或 OpenSSL 是 keg-only、头文件没被找到;看报错第一行缺的是哪个路径,基本能对上号。
- 解法:对照第 5 步把
brew install重跑一遍;仍缺 SSL 头文件时,按芯片补一个符号链接:
# Apple Silicon ln -s /opt/homebrew/opt/openssl/include/openssl /opt/homebrew/include/opensslIntel 用户把路径换成/usr/local/前缀即可。
装好后每两周跑一次brew outdated sunshine(源码构建用户就git pull看看),有新版再更新,别等串流卡了才想起来。
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考