news 2026/9/4 12:20:37

Sunshine 游戏串流服务器:从零装到调出60fps的实操手册

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Sunshine 游戏串流服务器:从零装到调出60fps的实操手册

Sunshine 游戏串流服务器:从零装到调出60fps的实操手册

【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine

周五晚上,你瘫在沙发上,卧室那台配了 RTX 4070 的机器还开着,你却不想爬起来换地方。要是能把它的画质和帧率原样搬到客厅这台 75 寸电视上,那就完美了。Sunshine 就是干这个的:一个跑在你自己电脑上的游戏串流服务器,Moonlight 客户端连上它,画面和声音实时推到你手里的任何一块屏幕上。

它到底是个什么东西?

Sunshine 是一个开源的自托管串流服务端,装在跑游戏的那台电脑上;电视、平板、手机上装配套的 Moonlight 客户端,就能把主机画面连同声音、按键一起搬过去。

和别的方案比,它有几个实在的好处:

  • 不用交月费,软件完全免费
  • 数据不出你家门,画面走的是你自己家局域网
  • N 卡、A 卡、U 卡的硬件编码都支持,老机器也能跑
  • 客户端生态全:手机、平板、电视盒子、树莓派都有 Moonlight

顺带说一句,老玩家熟悉的 NVIDIA GameStream 已经从 GeForce Experience 里撤掉了,Sunshine 是它的开源继任者,而且不挑显卡品牌。

一帧画面是怎么跑到你屏幕上的?

串流听起来玄乎,其实链路很短。你按下一键开始游戏之后:

  1. 游戏照常在主机上跑,GPU 渲染出画面;
  2. GPU 顺手把这帧画面压缩成视频流。这就是硬件编码——GPU 扛下编码这桩脏活,CPU 能歇着,延迟也压得住;
  3. 视频流加上 Opus 编码的音频,通过 RTSP 协商、UDP 传输走局域网发出去。UDP 是"丢了就丢"的协议,适合这种宁可丢帧不能等画面的场景;
  4. Moonlight 客户端收到后用自家显卡解码、显示,你的按键则走另一条路反向传回主机。

全程大概就是一帧来回几百毫秒的事,比人眨一下眼睛快得多。想看代码的话,视频编码核心在 src/video.cpp,连接协商和传输在 src/rtsp.cpp,音频抓取在 src/audio.cpp。

上图是 Sunshine 自带的应用管理界面,你可以把 Steam、游戏或者整个桌面都登记成一个"应用",Moonlight 端点一下就串。

三步把它跑起来

路径 A:装官方安装包(90% 的人选这个)

适合想最快玩起来的人。从项目 Release 页下载对应系统的安装包:Windows 是 MSI、Debian/Ubuntu 是 .deb、macOS 是 dmg。以 Ubuntu 为例,下载好 deb 之后一条命令装完:

sudo dpkg -i ./sunshine_*.deb sudo apt install -f # 缺依赖的话补一下

装完自动注册成系统服务,开机自启。打开浏览器访问localhost:47990,能看到设置界面并设置密码,就成了。

路径 B:Docker(玩容器、想隔离环境的选它)

注意官方文档提醒过:Docker 方案对大多数用户不是首选,因为要把显卡设备直接捅进容器,配置比安装包多几步。但如果你习惯用容器管理一切,下面这个 compose 文件够用了,它做的事是:拉起官方镜像、把 GPU 设备直通进去、映射好串流需要的端口。

services: sunshine: image: lizardbyte/sunshine:latest-ubuntu-24.04 container_name: sunshine restart: unless-stopped ipc: host volumes: - ./config:/config devices: - /dev/dri:/dev/dri ports: - "47984-47990:47984-47990/tcp" - "48010:48010" - "47998-48000:47998-48000/udp"
docker compose up -d

然后还是访问localhost:47990。容器里/config对应宿主机的./config,配置文件就落在那里,方便备份。

路径 C:源码编译(想改代码的选它)

适合开发者。依赖装齐之后,大致是标准的 CMake 三步:

git clone https://gitcode.com/GitHub_Trending/su/Sunshine cd Sunshine mkdir build && cd build cmake .. && make -j$(nproc) && sudo make install

Linux 下编译需要 FFmpeg、各平台显示相关开发库,具体清单可以看 docs/building.md。这步要是卡住了,十有八九是依赖没装全,先别怀疑人生。

装完别急着开玩,先调这几个参数

打开localhost:47990的配置页,顶部有搜索框,直接搜参数名就能跳过去,比翻配置文件快得多。

真正影响体感的就下面这几项:

参数推荐值为什么重要
分辨率 / 帧率1080p/60 起步客户端按这个要画面,超了显卡和网络都扛不住
编码格式N 卡选 H.265,其他 H.264H.265 同画质省 30% 带宽,但吃一点客户端解码
视频码率25 Mbps 起低于 20M 画面开始"塑料感",4K 再往上加
音频通道立体声 2 通道想听 5.1 环绕再开 6 通道,普通游戏双声道够了
UPnP建议开着自动在路由器上打洞,省得手动放行端口

改完点保存,Sunshine 会自动重启服务生效,不用手动操作。

两种典型玩法,参数照着抄就行

客厅电视 4K 党:电视和主机都走网线,这是底线,无线串 4K 基本别想。

  • 分辨率 4K、60fps,码率拉到 50~60 Mbps
  • 编码 H.265,码率分配策略选"质量优先"
  • 电视端 Moonlight 开硬件解码,老电视盒子可能顶不住 4K H.265,先拿 1080p 试
  • 音频开 6 通道,主机侧把 5.1 输出指给对应声卡

iPad / 手机便携党:我一般 1080p 给 25Mbps,5GHz WiFi 够跑;你要是 4K 电视,码率拉到 50M 但必须走网线。

  • 分辨率 1080p、60fps,码率 20~25 Mbps
  • 编码 H.264,兼容性最好,老手机也能硬解
  • 尽量连 5GHz 频段,信号弱就先降码率再降帧率
  • 触屏设备在 Moonlight 里把虚拟控制器布局调好再玩

卡住了看这里

你看到的现象大概率原因一条命令或操作
Moonlight 搜不到主机路由器没放行端口配置页里打开 UPnP;或手动放行 47984~47990 TCP、47998~48000 UDP
串起来画面糊码率太低视频码率加到 30 Mbps 以上再对比
有画面没声音抓取设备选错配置页"音频"里把输入设备切到你想用的声卡
按了开始没反应/卡住显卡驱动太久没更新更新显卡驱动后重启 Sunshine 服务
不知道哪错了看日志打开localhost:47990的日志页,或直接翻~/.config/sunshine下的日志文件

日志页会实时滚动打印运行状态,编码器初始化失败、端口被占这类问题都能直接看到,比盲猜快。

最后

把 Sunshine 装起来其实就半小时的事:挑一条路径装好,打开 47990 配一下码率和编码,Moonlight 一连,客厅就是你的游戏机房了。现在就按上面"三步把它跑起来"先装一把,串起来再回来调参数。

【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 12:19:54

电竞系统性能优化指南:从工具使用到核心原理的深度实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/4 12:19:02

Stability AI生成模型:3步跑通出图

Stability AI生成模型:3步跑通出图 【免费下载链接】generative-models Generative Models by Stability AI 项目地址: https://gitcode.com/GitHub_Trending/ge/generative-models 你是不是也经历过:Stability AI 的 generative-models 仓库 clo…

作者头像 李华
网站建设 2026/9/4 12:19:00

Darknet+YOLOv3烟雾检测工业级训练闭环

简介:本资源面向计算机视觉初学者与安防检测方向开发者,提供开箱即用的Darknet框架下YOLOv3烟雾检测完整训练成果与数据支撑。资源包含已收敛的yolov3-smoke_best.weights权重文件及配套配置(cfg、names、data)、训练过程loss与mA…

作者头像 李华
网站建设 2026/9/4 12:16:22

1949 个开发者作品集灵感库:照着抄,别再对着空白页发呆

1949 个开发者作品集灵感库:照着抄,别再对着空白页发呆 【免费下载链接】developer-portfolios A list of developer portfolios for your inspiration 项目地址: https://gitcode.com/GitHub_Trending/de/developer-portfolios 做作品集最磨人的…

作者头像 李华
网站建设 2026/9/4 12:14:07

单片机毕设选题推荐:基于 STM32/51 单片机的 HS-04 超声波无线数据监测终端设计 基于 STM32/51 单片机的 ESP8266 无线超声波测距报警系统设计(022906)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

作者头像 李华
网站建设 2026/9/4 12:11:27

YOLOv8火焰烟雾检测工程落地全栈方案

简介:本资源是一套开箱即用的YOLOv8火焰与烟雾双目标检测解决方案,面向智能安防、工业巡检及火灾预警等场景的计算机视觉开发者与初学者。资源包含已训练完成的PyTorch模型(.pt格式)、高质量标注数据集(1984个YOLO格式…

作者头像 李华