Moonlight + Sunshine互联网串流方案介绍

最近买了Steam端的双人成行,有时候想躺在床上玩,但是把电脑显示器什么的搬过来太麻烦了,所以想到是否可以串流到平板上,因为之前玩PS5时用到过串流软件体验还是很不错的,首先想到的是steam link这个官方提供的串流方案,用起来还算不错,但是手柄连接只能玩steam里的游戏,所以寻求一种通用的串流方案。

Moonlight + Sunshine

Moonlight + Sunshine 是一套基于 NVIDIA GameStream 协议局域网 / 互联网远程桌面与游戏串流方案

  • Sunshine
    运行在 被控端(服务器 / 主机) 的开源串流服务
  • Moonlight
    运行在 客户端(手机 / 平板 / PC / 电视) 的串流接收与输入端

可理解为:
Sunshine = 服务端(推流)
Moonlight = 客户端(接收 + 控制)

体验下来非常不错延迟很低,局域网内基本可以做到30ms左右的延迟,普通游戏的游玩基本感受不到什么延迟,而且对手柄的支持非常好,居然可以直接调用手柄的陀螺仪,让我非常惊喜,而且要互联网串流也完全没问题。

Sunshine安装

Sunshine是开源软件,直接到github上下载即可,下载页面:https://github.com/LizardByte/Sunshine/releases

相信用这个的大多数都是在windows电脑上,所以下载这个Sunshine-Windows-AMD64-installer.exe安装版就可以了,他可以帮我们注册服务,方便开机启动,这样我们可以远程打开电脑自动运行。

安装完成运行,会提供一个47990的本地管理端口,浏览器访问:http://localhost:47990/既可打开,首次访问要求设置用户名密码,设置好重新进入就可以看到主页面,这里暂时基本不用配置其他什么了。

Moonlight安装

如果是要串流到Android平板或者手机上,可以到这里下载:https://github.com/moonlight-stream/moonlight-android/releases

我这里下载不需要root权限的版本:app-nonRoot-release.apk

如果是苹果用户直接去app store搜索Moonlight即可找到安装,安装好后打开局域网内可以直接扫描添加服务端,当你服务端Sunshine已启动,自动就会识别到服务端,点击连接会要求在服务端输入PIN码以及设备名称,回到Sunshine配置页面点击PIN菜单,输入Moonlight上连接时弹出的PIN码,随便填写一个设备名称确定,即可完成配对,这时再到Moonlight上连接既可连上服务端。

互联网串流

这也是我用这套方案串流最大的好处之一,在外面使用手机流量也可以进行云游戏,前提是你家的宽带拥有互联网IP,路由器也支持端口映射。

以下是Sunshine 使用的核心端口一览

整理了 Sunshine 在默认配置下使用的核心端口,以及在 互联网远程串流 场景中需要进行端口映射的最小集合。

端口号 协议 用途说明 是否建议公网映射
47990 TCP Web 管理界面(配置、日志、应用管理) ❌ 不建议
47989 TCP Moonlight ↔ Sunshine 会话控制通道 ✅ 必须
47998 UDP 视频流传输(主要带宽占用) ✅ 必须
47999 UDP 音频流传输 ✅ 必须
48000 UDP 输入数据回传(键盘 / 鼠标 / 手柄) ✅ 必须

其中后面4个端口是需要要映射出来的,第一个是配置管理页面的端口,这个最好不要映射。

我们在局域网上PIN配对完成后,互联网上只需要手动添加服务输入外网IP连接即可。

相关推荐
leaves falling15 小时前
c语言-扫雷游戏
c语言·单片机·游戏
南村群童欺我老无力.1 天前
Flutter 框架跨平台鸿蒙开发 - 开发双人对战五子棋游戏
flutter·游戏·华为·typescript·harmonyos
夜雨声烦丿1 天前
Flutter 框架跨平台鸿蒙开发 - 消消乐游戏开发教程
flutter·游戏·华为·harmonyos
夜雨声烦丿1 天前
Flutter 框架跨平台鸿蒙开发 - 数独求解器开发教程
flutter·游戏·华为·harmonyos
da_vinci_x1 天前
图标量产:从“手绘地狱”到“风格克隆”?Style Reference 的工业化实战
前端·游戏·ui·prompt·aigc·设计师·游戏美术
南村群童欺我老无力.1 天前
Flutter 框架跨平台鸿蒙开发 - 打造经典连连看游戏
flutter·游戏·华为·harmonyos
小白阿龙1 天前
鸿蒙+flutter 跨平台开发——合成大西瓜游戏的实现
flutter·游戏·harmonyos·鸿蒙
WaWaJie_Ngen1 天前
C++实现一笔画游戏
c++·算法·游戏·游戏程序·课程设计
小尧嵌入式1 天前
【Linux开发一】类间相互使用|继承类和构造写法|虚函数实现多态|五子棋游戏|整数相除混合小数|括号使用|最长问题
开发语言·c++·算法·游戏
向前V1 天前
Flutter for OpenHarmony数独游戏App实战:胜利弹窗
java·flutter·游戏