尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Sunshine 游戏库管理三步走:把 Steam 与 Epic 游戏装进你的串流清单

Sunshine 游戏库管理三步走:把 Steam 与 Epic 游戏装进你的串流清单 Sunshine 游戏库管理三步走把 Steam 与 Epic 游戏装进你的串流清单【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine想让客厅的电视、卧室的平板随时接上电脑玩游戏Sunshine 这个自托管游戏串流服务器加上 Moonlight 客户端就能把整台 PC 变成你的私人云游戏机房。但很多新手卡在了同一步游戏应用怎么添加和配置。别急这篇文章带你从第一次登录 Web 界面走到畅玩 Steam 大作全程像朋友手把手带你操作看完就能动手。一、先给每款游戏办一张登机牌打开 Sunshine 的 Web 界面默认地址https://localhost:47990登录后点开Applications应用页面你会看到这里已经躺着几个预置项目Desktop桌面、Steam Big PictureSteam 大屏幕模式等。这些项目不是写死的它们的幕后档案都存放在一个叫apps.json的配置文件中。你可以把它理解成机场的航班表每个游戏就是一趟航班字段就是登机牌上的各种信息。Sunshine 每次收到串流请求就照着这张表去检票放行。各平台默认配置目录如下系统apps.json 默认位置Windows%ProgramFiles%\Sunshine\config\apps.jsonLinux~/.config/sunshine/apps.jsonmacOS~/.config/sunshine/apps.jsonDocker/config/apps.json 绝大多数时候你不需要手改这个文件Web 界面的表单会自动帮你生成合法 JSON。但看懂它能让你理解界面里每个输入框到底在干什么。一张登机牌由以下几个关键字段组成字段含义通俗解释name应用显示名称客户端上看到的游戏名字cmd主执行命令游戏启动后要等待其退出的命令detached分离式命令启动后 Sunshine不等待、随即进入串流prep-cmd预备命令游戏启动前do、结束后undo的辅助操作working-dir工作目录命令在哪个文件夹下运行image-path图标路径客户端上显示的封面图elevated是否管理员权限某些游戏需要以管理员身份启动auto-detach自动分离应用启动后自动转为不等待模式wait-all等待全部子进程是否等所有衍生进程退出才结束会话二、为什么游戏一启动串流就秒退这是新手遇到的第一个拦路虎也是最值得先讲清楚的机制问题。Sunshine 判断这场串流该不该结束的标准很简单它在等待的进程退出会话就结束。所以如果你的游戏是启动器——比如 Steam 本体先启动、游戏再由 Steam 拉起——那么你配置的cmd指向的是 Steam一旦 Steam 认为任务交接完成甚至显示个运行中就闪一下Sunshine 误以为游戏关了会话立刻断开。解法一用detached命令把主命令换成只负责点火、不负责看管的分离式命令{ name: 赛博朋克2077, detached: [steam://rungameid/1091500] }Sunshine 执行完这个 URI 后直接进入串流状态游戏由 Steam 独立管理两者互不干扰。解法二cmdauto-detach: true如果你希望用cmd启动又怕它卡在等待逻辑上可以打开auto-detach自动分离{ name: Steam 大屏幕模式, cmd: steam://open/bigpicture, auto-detach: true }Sunshine 会检测如果主命令在启动后短时间内约 5 秒就正常退出说明这只是个引路人便自动转为分离模式继续串流。⚠️判定口诀命令只负责拉起用detached命令本身要一直跑比如游戏本体用cmd实在拿不准先勾上auto-detach试试。三、不同平台的游戏登机牌写法不同1. WindowsSteam、Epic 各用各的钥匙Steam 游戏最稳妥的方式是使用 Steam 的 URI 协议。每个游戏的 ID 可以在 Steam 商店页面的网址里找到然后套用格式steam://rungameid/游戏ID{ name: 艾尔登法环, detached: [steam://rungameid/1245620], image-path: elden_ring.png, auto-detach: true }Epic 游戏则通过 Epic 启动器的 URI 协议启动格式是com.epicgames.launcher://apps/应用名?actionlaunch{ name: Fortnite, cmd: com.epicgames.launcher://apps/fortnite?actionlaunch, working-dir: C:\\Program Files\\Epic Games\\Fortnite, elevated: false }如果游戏尤其是老游戏必须以管理员身份运行把elevated设为true即可Sunshine 会提示你确认授权。2. LinuxFlatpak 沙箱里怎么越狱启动Linux 玩家如果通过 Flatpak 安装 Steam会面临沙箱限制Sunshine 直接调steam://可能无效。此时需要在命令前加上flatpak-spawn穿透沙箱{ name: Steam 大屏幕模式, detached: [ flatpak-spawn --host setsid steam steam://open/bigpicture ], prep-cmd: [ { do: flatpak-spawn --host setsid steam steam://open/bigpicture, undo: flatpak-spawn --host setsid steam steam://close/bigpicture } ] }do负责开undo负责关正好呼应下面的预备命令机制。四、分辨率对不上预备命令帮你自动换装串流时客户端请求的往往不是主机的原生分辨率比如你在手机上看 1080p但主机显示器是 4K。如果游戏窗口不能自适应画面就会拉伸或留黑边。预备命令prep-cmd就是解决这个问题的关键道具。它的逻辑很优雅do 游戏启动前执行的动作undo 串流结束后恢复原状的动作。一进一出用完即还原不留痕迹。Windows 场景用 QRes 动态改分辨率{ name: 动态分辨率游戏, cmd: game.exe, prep-cmd: [ { do: cmd /C \C:\\Tools\\QRes.exe /X:%SUNSHINE_CLIENT_WIDTH% /Y:%SUNSHINE_CLIENT_HEIGHT% /R:%SUNSHINE_CLIENT_FPS%\, undo: C:\\Tools\\QRes.exe /X:1920 /Y:1080 /R:60 } ] }Linux X11 场景用 xrandr 改分辨率{ prep-cmd: [ { do: sh -c \xrandr --output HDMI-1 --mode ${SUNSHINE_CLIENT_WIDTH}x${SUNSHINE_CLIENT_HEIGHT} --rate ${SUNSHINE_CLIENT_FPS}\, undo: xrandr --output HDMI-1 --mode 2560x1440 --rate 120 } ] }环境变量速查表预备命令里那些SUNSHINE_开头的变量是 Sunshine 在串流开始时注入的现场情报务必善用环境变量含义示例值SUNSHINE_CLIENT_WIDTH客户端请求的宽度1920SUNSHINE_CLIENT_HEIGHT客户端请求的高度1080SUNSHINE_CLIENT_FPS客户端请求的帧率60SUNSHINE_CLIENT_HDR客户端是否支持 HDRtrue / falseSUNSHINE_APP_NAME当前正在串流的应用名艾尔登法环SUNSHINE_APP_ID当前应用的唯一标识12345undo里的数值必须写死为你的原生分辨率因为它执行时没有客户端变量可用——这正是换装与卸妆的本质区别。五、手柄失灵、输入没反应按这张清单自检串流时画面有了、游戏也跑了但鼠标键盘手柄不响应属于高发问题。按顺序排查系统权限LinuxSunshine 进程需要访问输入设备。把运行 Sunshine 的用户加入input组并重新登录sudo usermod -a -G input 你的用户名虚拟手柄驱动Windows手柄映射依赖 ViGEmBus 虚拟驱动请确认它已正确安装在 Sunshine 的 Troubleshooting 页面也能看到驱动状态。客户端设置Moonlight 侧确认触控/手柄模式没有误设为纯键盘模式。Web 界面输入设置Sunshine 的Input输入配置页里确认游戏手柄类型与你的设备匹配。如果问题依旧不要瞎猜直接去Troubleshooting故障排查页面翻日志。日志里每一条错误都会指明方向比如编码器找不到、设备初始化失败等六、把配置打磨得更顺滑的几个小旋钮当游戏都能正常串流后可以再花几分钟做精装修让体验更稳定缩短退出等待有些游戏退出后进程残留几秒导致串流结束变慢。适当调小exit-timeout可加快会话回收。按需关闭wait-all如果游戏会拉起很多无关子进程而你又不在乎等它们全部退出可把wait-all设为false避免僵尸进程拖住串流会话。给全局预备命令让路如果设置了全局 prep-cmd比如全局分辨率方案但某款游戏不需要可用exclude-global-prep-cmd单独排除。封面轻量化自定义image-path时优先用压缩过的 PNG 或 JPG别把 4K 截图直接丢进去。定期备份apps.json就是你的游戏库资产。每次大调整前复制一份到别处改坏了随时回滚。先试 Desktop 再试游戏任何新配置完成后先用客户端串流Desktop验证链路通畅再切到游戏本身能大幅缩短排错时间。✅ 最佳实践口诀URI 启动最稳、预备命令只做必要操作、改完必测、测完必备份。七、下一步行动现在就添加你的第一款游戏理论到此为止剩下的交给手。现在就打开 Sunshine Web 界面默认https://localhost:47990进入 Applications 页面点击Add New按下面三步操作在Name里填游戏名比如赛博朋克2077在Command里粘贴 Steam 的启动 URIsteam://rungameid/1091500并把类型选为 Detached分离保存后在 Moonlight 客户端刷新应用列表点开游戏享受第一场属于自己的串流开局。遇到任何秒退黑屏无输入问题回到本文第二节和第五节对照自查。配置之路没有标准答案只有反复试出来的最顺手方案——而 Sunshine 已经把最灵活的工具都递到了你手里。现在去配置你的第一个游戏吧【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表