Sunshine 实战:把 PC 画面串到任意屏幕的 4 个关键动作
发布时间:2026/9/20 9:54:37 作者:尧图编辑部 阅读量:1,286

Sunshine 实战把 PC 画面串到任意屏幕的 4 个关键动作【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine周末躺在沙发想在大屏上打游戏主机却搁在书房电视只能黑屏干瞪眼。Sunshine 就是干这个的一个自托管游戏串流主机装在游戏 PC 上把画面硬件编码后推给电视、平板、手机里的 Moonlight 客户端。开源免费无订阅费。关键信息说明主机平台Windows、Linux、macOS实验性、FreeBSD串流客户端Moonlight可装在电视、平板、手机、PC 等任意设备编码方案NVENC / QuickSync / AMF / VAAPI / VideoToolboxCPU 软编兜底管理入口浏览器 Web UI默认 https://localhost:47990费用开源免费无订阅原理速览它凭什么做到数据通路分三段抓取、编码、发送。抓取走各平台原生通道——Windows 用 DXGI 或 WGCLinux 用 KMS、X11 或 NvFBCmacOS 用 ScreenCaptureKit。然后是 GPU 专用编码单元把画面压成视频流这一步最关键硬件编码把 CPU 从压缩里解放出来是串流不卡的核心原因。最后压缩流经网络送到 Moonlight 客户端在另一块屏上解码播放。说白了就是把 GPU 编码结果装进信封沿网线寄给另一块屏幕。延迟表现还取决于发送方式Sunshine 每 16ms 突发发一帧对应 60fps中间网络设备缓冲不够就会丢数据这也是后文排障里丢包问题的根源。编码方案按显卡自动选在 Web UI 的 AudioVideo 页签可切换各平台支持矩阵如下编码 API显卡LinuxmacOSWindowsNVENCNVIDIA支持—支持QuickSyncIntel——支持AMFAMD——支持VAAPIAMD / Intel / NVIDIA支持——VideoToolboxApple / Intel—支持—Vulkan VideoAMD / Intel / NVIDIA实验性——软编CPU任意支持支持支持核心实现分散在 src/nvenc/NVENC和 src/platform/linux/VAAPI、Vulkan Video 等。没有独显就选软编能跑但 1080p 下 CPU 占用明显上升。五分钟跑通最短闭环第 1 步安装。按你的系统选一条# Windows winget install LizardByte.Sunshine # LinuxFlatpak flatpak install --system flathub dev.lizardbyte.app.Sunshine # macOS brew tap LizardByte/homebrew brew install sunshine完整安装包列表AppImage、.deb、.rpm、FreeBSD pkg 等见 docs/getting_started.md。卡住了翻到文末继续深挖。第 2 步启动并打开 Web UI。Linux 上直接起用户服务否则在终端跑sunshinesystemctl --user --now enable app-dev.lizardbyte.app.Sunshine浏览器打开 https://localhost:47990不安全网站的警告来自自签名证书忽略即可。首次启动会要求你创建用户名和密码——当场记下来忘了只能重置。47990 打不开直接查踩坑速查。第 3 步配对客户端。Moonlight 里添加这台主机客户端会显示一个 PIN。登录 Web UI在顶部导航的 PIN 页输入该 PIN给设备起个名字配对完成。完整配对流程见 docs/getting_started.md 的 Configuration 章节。三个值得知道的点应用管理给每个游戏一个启动入口Web UI 里的应用列表就是 Moonlight 客户端看到的入口。每个应用有名称、可执行文件、工作目录还能挂prep-cmd启动前执行的命令。默认列表来自 src_assets/linux/assets/apps.json其中 Steam 大屏的写法{ name: Steam Big Picture, detached: [setsid steam steam://open/bigpicture], prep-cmd: [ { do: , undo: setsid steam steam://close/bigpicture } ], image-path: steam.png }三条行为规则要知道启动新应用会先终止正在串流的应用prep-cmd失败则放弃启动应用退出串流随之结束。客厅里想一键拉起某个游戏或 Steam 大屏时用得上。虚拟手柄客户端的手柄变成主机的手柄你在 Moonlight 端插着 Xbox、DualSense 或 Switch ProSunshine 会在主机上虚拟出同类型手柄传给游戏游戏看到的就是它。Windows 和 Linux 支持最全通用、DS4、DS5、Switch Pro、Xbox 360/One/Series 全支持macOS 暂不支持。Windows 主机可另装 Virtual HID Driver 解锁完整特性Linux 依赖 uinput实现见 src/platform/virtualhid_input.cpp 和 src/platform/linux/input/。不想往 PC 上插手柄、直接用电视那头的手柄玩时用得上。HDR 串流Windows 正式支持Linux 实验性主机开了 HDR、客户端也开了 HDR串流才真正带 HDR客户端不开就按 SDR 解码主机还是 HDR 状态时画面直接过曝。Linux 端要求苛刻Intel/AMD 显卡 VAAPI 的 HEVC Main 10 或 AV1 10-bit 编码 KMS 捕获后端NvFBC 和 X11 不支持 HDR 支持 HDR 渲染的合成器Gamescope 或 KDE Plasma 6。完整要求见 docs/getting_started.md 的 HDR Support 章节。想在大电视上看 HDR 游戏、保住高光细节时用得上。一个完整工作流场景书房里一台老游戏 PC 没接显示器你要把 Steam 大屏直接串到客厅电视。先把机器拉起来。人在别处SSH 登进主机带 X11 启动 Sunshinessh user主机IP export DISPLAY:0; sunshine。NVIDIA 显卡走 NvFBC 捕获不接显示器时显卡可能不输出用 HDMI 欺骗器或 EDID 模拟器补上。接着把画质调到匹配电视。打开 Web UI 的 AudioVideo 页签分辨率设成电视原生值如 3840×2160码率按你的网络情况调顺手在导航栏下拉里选个主题。然后确认应用列表。Applications 页签里找 Steam Big Picture默认就自带没有就按上一节的 apps.json 结构手动添加。最后配对开播。电视上的 Moonlight 添加主机回到 Web UI 的 PIN 页完成配对选 Steam Big Picture 启动。画面出来大屏菜单就位。应用管理界面长这样踩坑速查 忘了 Web UI 账号密码进不去后台根因凭据只存本地无找回入口处置停掉 Sunshine跑sunshine --creds {新用户名} {新密码}重置Flatpak 用flatpak run --commandsunshine前缀浏览器访问 47990 打不开根因防火墙挡了端口或服务没在跑处置先查服务状态再放行 47990 端口画面卡顿、丢包根因主机 2.5Gb 有线客户端只有 1Gb 或 Wi-Fi处置iPerf3 测出瓶颈丢包 5%、抖动 1ms 才算达标降速主机网卡或升级到 0.23.1 之后版本Linux 上连上后键鼠、手柄没反应根因运行 Sunshine 的用户没有 uinput 权限处置把用户加进input组并重新登录FreeBSD 用pw groupmod input -m $USER主机开了 HDR串出来的画面发白过曝根因客户端没开 HDR流按 SDR 解码处置Moonlight 设置里启用 HDRLinux 主机改用 KMS 捕获后端都解决不了先打开 Web UI 的 Troubleshooting 页签每条 warning/error 都能点开看细节按线索逐条过。继续深挖docs/getting_started.md — 各平台安装方式、首次设置、配对流程以及快捷键CtrlAltShiftN 隐藏光标、CtrlAltShiftF1/F12 切显示器docs/configuration.md — port、locale、编码器、音频设备全部配置项逐项说明docs/troubleshooting.md — 凭据重置、iPerf3 网络测试50M 反向 UDP、丢包处理docs/performance_tuning.md — 按你的网络情况选码率与分辨率src/platform/ — 各平台屏幕捕获与编码实现KMS、NvFBC、WGC、VAAPI、ScreenCaptureKit 等tests/ — 单元测试与集成测试想搞懂内部行为从这里入手【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考