ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Sunshine 游戏串流配置实战手册:10 分钟把 PC 游戏搬进客厅大屏

Sunshine 游戏串流配置实战手册:10 分钟把 PC 游戏搬进客厅大屏 Sunshine 游戏串流配置实战手册10 分钟把 PC 游戏搬进客厅大屏【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine想躺在沙发上用平板接着玩电脑里的《博德之门 3》想在客厅电视上和朋友开一把《双人成行》这些体验背后都绕不开同一件事——游戏串流配置。Sunshine 是一款自托管、开源的游戏流媒体服务器负责在电脑端把游戏发射出去配合 Moonlight 客户端就能跨设备畅玩。这篇Sunshine 教程不整虚的先带你走通一条零门槛的快速通道再升级到分辨率自适应、预备命令这些进阶玩法全程说人话、带实操。上图就是你接下来要打交道的主战场管理页里的 Applications 板块。默认安装后自带 Desktop 和 Steam Big Picture 两个入口你的任务就是在这里不断添加新应用。先弄清一件事Sunshine 眼里的游戏到底是什么把 Sunshine 想象成一位发令员他完全不认识你的游戏只认你塞给他的一张启动说明卡片——游戏叫什么、用哪条命令启动、要不要先干点准备工作。这张卡片的数据最后都会落进配置目录下的apps.json文件里而 Web 管理页就是编辑卡片的图形化前台。从玩家的视角看一次串流的完整链路是这样的记住这条链路客户端负责选Sunshine 负责跑。后面所有配置都是在优化跑这一步的表现。5 分钟快速上手三步添加你的第一个游戏第一步登录管理页找到应用列表浏览器打开https://localhost:47990首次运行会要求你设置用户名和密码也可用启动时屏幕打印的 PIN 码。登录后点击顶部导航的Applications再点右下角的Add New一个空白卡片就出现了。 小技巧首次配置完成后建议把用户名密码记下来——Sunshine 只展示一次忘了就得去翻配置文件。第二步把启动说明写清楚新增卡片里最核心的字段就三个应用名称、启动命令、工作目录。先说最省心的场景——Steam 游戏。它自带一套协议链接类似网址Sunshine 只要负责敲门剩下的活全交给 Steam 自己{ name: Baldurs Gate 3, detached: [steam://rungameid/1086940], auto-detach: true, image-path: bg3.png }这段配置在做什么detached表示这条命令是发了就不管的——Sunshine 敲一下steam://rungameid/1086940的门就立刻松手不傻等游戏退出。auto-detach: true更是双重保险哪怕命令还挂着Sunshine 也会自动把进程脱钩串流会话不会因为进程状态而中断。⚠️ 注意Steam 的协议链接并不存在游戏进程让 Sunshine 等待所以必须用detached或auto-detach否则你会遇到下文第一个坑——秒退。第三步保存、刷新客户端、实测一把填完点保存然后务必重启你的 Moonlight 客户端。管理页顶部那句小字已经剧透了应用列表只在客户端重启后刷新。重启后你就能在客户端里看到新游戏点开即玩。进阶玩法给游戏启动加一段热身预备命令让分辨率跟着客户端走如果显示器是 4K、客户端是 1080p 的平板游戏默认按 4K 跑画面又糊又卡。这时就该上预备命令了——它在游戏启动前执行一段热身结束后还能用undo一键还原。把它类比成开赛前的热身环节先调好状态再上场打完再收拾场地{ name: SuperTuxKart, cmd: supertuxkart, working-dir: /home/you/games/stk, prep-cmd: [ { do: xrandr --output DP-1 --mode ${SUNSHINE_CLIENT_WIDTH}x${SUNSHINE_CLIENT_HEIGHT} --rate ${SUNSHINE_CLIENT_FPS}, undo: xrandr --output DP-1 --mode 2560x1440 --rate 120 } ] }这段配置在做什么游戏启动前do会把显示器临时切成客户端请求的分辨率和帧率${SUNSHINE_CLIENT_WIDTH}这些变量由 Sunshine 自动注入对应你客户端的实际设置串流结束后undo再把桌面恢复成 1440p 的原样。显示器接口名请按你的实际情况改成HDMI-1、DP-1等。环境变量速查Sunshine 递给你的小纸条预备命令里能用哪些变量记住下面这张常用表就够了环境变量含义示例值SUNSHINE_CLIENT_WIDTH客户端请求的宽度1920SUNSHINE_CLIENT_HEIGHT客户端请求的高度1080SUNSHINE_CLIENT_FPS客户端请求的帧率60SUNSHINE_CLIENT_HDR客户端是否开启 HDRtrue / falseSUNSHINE_APP_NAME当前启动的应用名Baldurs Gate 3管好等不等wait-all 与 auto-detach有些游戏支持直接在命令行里收参数比切分辨率更干净。比如 Windows 下给游戏传宽高{ name: Cities: Skylines II, cmd: \D:\\Games\\Cities\\Cities2.exe\ -screen-width ${SUNSHINE_CLIENT_WIDTH} -screen-height ${SUNSHINE_CLIENT_HEIGHT}, working-dir: D:\\Games\\Cities, wait-all: false, exit-timeout: 5 }这段配置在做什么把客户端的分辨率直接以命令行参数喂给游戏游戏自己会适配窗口大小wait-all: false表示不傻等所有预备命令收尾exit-timeout: 5则给残留进程 5 秒的优雅退出时间避免留下僵尸进程。 小技巧什么时候用detached什么时候用cmd一句话——游戏启动后你还想盯着它比如要看退出码就用cmd游戏是点完就跑的类型Steam、Epic 这类平台就用detached。游戏秒退、黑屏、无声音照这张表自查配置不生效时别慌八成落在下面三个高频坑里现象常见原因解决思路游戏启动后串流立刻结束用了cmd等一个不存在的退出信号改detached或开启auto-detach客户端看不到新添加的游戏没重启 Moonlight 客户端重启客户端刷新应用列表分辨率、帧率与客户端不匹配没配预备命令或命令里的接口名写错核对xrandr的接口名用环境变量动态切换再给你一份坑点速查清单保存前逐条过一遍✅ Steam / Epic 游戏一律走协议链接 auto-detach别用cmd硬等✅ 依赖工作目录的程序务必填working-dir否则游戏可能找不到存档和资源⚠️ 路径含空格命令和路径记得加英文引号包起来⚠️ 图标建议用 PNG 小图塞超大图会拖慢管理页加载⚠️ 改完配置随手备份一份apps.json出问题一键还原Windows、Linux、Flatpak三平台添加差异对照维度WindowsLinux原生Flatpak 沙箱Steam 游戏steam://rungameid/xxx同上可用setsid脱钩需flatpak-spawn --host前缀分辨率调整给游戏传参或调用系统工具xrandr先--host逃出沙箱再执行工作目录反斜杠路径D:\Games\...正斜杠路径/home/you/...指向沙箱内路径常见坑权限/虚拟手柄驱动input组权限沙箱拦截外部命令⚠️ 注意Flatpak 版 Sunshine 跑在沙箱里直接调xrandr会被拦。用flatpak-spawn --host把命令转发到宿主机执行是绕过沙箱的标准姿势。下一步行动与延伸阅读现在就去打开https://localhost:47990按三步法添加你的第一款 Steam 游戏再配一条分辨率自适应命令客厅大屏之旅就从今晚开始。想再深挖官方文档里还有大量现成模板docs/app_examples.md 覆盖各平台常见应用docs/configuration.md 讲全局设置docs/getting_started.md 管入门安装。想从源码角度搞懂配置如何被解析可以git clone https://gitcode.com/GitHub_Trending/su/Sunshine后重点阅读src/config.cpp与src/confighttp.cpp——你会发现今天学的每一个字段都能在代码里找到对应的落点。【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表