简易串流教程

引言

在当前的计算机领域,串流通常指的是将音频、视频或其他数据从服务器传输到客户端的过程。本文将介绍如何在校园网环境下使用 Sunshine 和 Moonlight 进行视频串流。哔哩哔哩上有不少的串流教程,讲得基本很详细,所以有不少相关重复的内容我暂不会再赘述。

Sunshine 介绍

Sunshine 是串流的发送端。该软件是开源的,建议在具有高性能显卡(独立显卡优先)的 x64 Windows 平台上使用。

校园网串流部署

校园网可以视为一个覆盖范围很广的内网。由于作者本人就读于北京邮电大学,该校校园网不收费且速度较快,在进行串流时具有得天独厚的优势。如果校园网条件较好,设备之间是有概率能够直接通信的,那么部署起来会非常简单,只需要获取 Sunshine 服务器的 IP 地址并在 Moonlight 中输入即可。

不过,如果不做任何处理,客户端可能无法发现 Sunshine 服务器。若您发现这个问题,可以参考的设置方法如下。

以管理员身份运行 PowerShell,输入以下命令放行串流所需端口:

[!TIP]

如果您使用 Windows 11 24H2 以上版本,可以使用 sudo(需要开启)

开启规则的命令:

1
2
3
sudo netsh advfirewall firewall add rule name="Sunshine UDP 放行" dir=in action=allow protocol=UDP localport=47998-48000

sudo netsh advfirewall firewall add rule name="Sunshine TCP 放行" dir=in action=allow protocol=TCP localport=47984,47989,47990,48010

关闭规则的命令:

1
2
sudo netsh advfirewall firewall delete rule name="Sunshine UDP 放行"
sudo netsh advfirewall firewall delete rule name="Sunshine TCP 放行"
1
2
3
netsh advfirewall firewall add rule name="Sunshine UDP 放行" dir=in action=allow protocol=UDP localport=47998-48000

netsh advfirewall firewall add rule name="Sunshine TCP 放行" dir=in action=allow protocol=TCP localport=47984,47989,47990,48010

如果想删除这两个规则请输入以下命令:

1
2
3
netsh advfirewall firewall delete rule name="Sunshine UDP 放行"

netsh advfirewall firewall delete rule name="Sunshine TCP 放行"

以上方法参考自:https://www.gmero.com/p/13

禁用自启动

在服务中将 Sunshine 相关改为“手动”即可。不过,根据我对相关资料的查找,如果您需要在串流中对宿主机进行重启操作,那么极不推荐关闭自启动。

Moonlight 介绍

Moonlight 是 Sunshine 串流的接收端。该软件同样是开源的,对性能的要求不高,且支持的平台极多,如 ARM64 Windows、ARMv7/v8/x86/x64 Android 等非主流平台。

Windows 端 Moonlight 常用快捷键

快捷键 功能说明
Ctrl + Shift + Alt + Q 串流过程中结束串流
Ctrl + Shift + Alt + X 切换全屏/窗口化显示模式;解决 Windows 状态栏未正常隐藏问题
Ctrl + Shift + Alt + D 隐藏 Moonlight 窗口
Ctrl + Shift + Alt + S 显示连接信息
Ctrl + Shift + Alt + M 切换鼠标:远程桌面模式/游戏模式
Ctrl + Shift + Alt + N 切换鼠标显示/隐藏

个人推荐设置

除去默认设置,建议打开:

  • 为远程桌面而不是游戏优化鼠标(在 Moonlight 处于窗口模式下时,可以实现窗口和窗口外部的无缝鼠标切换)
  • 捕获系统快捷键-全屏(字面意思,灵活的快捷键穿透)

建议关闭:

  • 垂直同步(当网络条件不佳时,强行垂直同步会加剧卡顿)

其他用法

当作高清电脑副屏使用(可以达到原生最合适的分辨率)。注意,该情况下由于 Sunshine 更新,现有教程可能会出现问题。主要解决方案也很简单,暂不做细致描述,请读者注意填写的内容是“ID”还是其他特定格式。

使用的软件为 parsec-vdd,该软件还有一个妙用,可以用来防止高分屏切换时出现的窗口跳变问题(该问题似乎出现在 Windows 11 24H2 上,23H2 则正常)。该问题不属于串流内容,我会新开一篇文章来介绍。

使用中的一些问题记录

配置列表

在该配置列表中,如果打开了“断开连接后恢复配置”,则必须保证断开连接时 Windows 系统不是锁屏状态。如果处于锁屏界面,Sunshine 可能无法恢复显示器,甚至可能因为显示器长时间未被唤醒而进入现代待机状态,导致下一次串流无法正常进行。

发表了 54 篇文章 | 总计 47794 字
本博客已稳定运行
使用 Hugo 构建
主题 StackJimmy 设计,由 蛋卷儿 深入修改