体验较好的低延迟串流方案 | MoonLight+Sunshine+Tailscale

I.前言 关于网络串流用于游戏工作这方面文章,网络上已经有较多成品,不过很多都言之不详,又或是内容可能有些过时之类的。这里我总结出自行搭建的经验给大家参考。本教程完全基于Windows环境,其他环境请自行摸索。 为什么不使用Parsec,可以到文末杂谈中查看咱的闲聊o((>ω< ))o II.需求 文中提到的所有软件均可在此处下载。 必须 [硬件]宿主机,最低系统要求:Windows 10 21H2 [软件]SunShine(Github Releases) 串流服务器 [软件]Moonlight 串流客户端 官方PC版:Github Releases 移动端:推荐使用修改版TZJ Github Releases 较好的网络环境,最好有IPv6或公网IP [软件]Tailscale(官网) 虚拟组网软件+点对点文件传输 [软件]Parsec-vdd v0.45 (官网下载) 虚拟显示器 [软件]vddswitcher (Github Releases) 虚拟显示器分辨率切换工具 可选 [软件]AudioRelay (官网) 麦克风或其他音频穿透 [软件]LocalSend (Github) 跨平台局域网文件,文本,剪切板传输工具 [软件]SyncClipboard (Github) 自动检测剪切板,文件同步 其他 - 米系游戏启动器 [软件]咪咕 - 星铁移动UI (Github Issue) [软件]原神fps-unlock by 34736384 (Github Releases) 用于启动移动端UI 移动端为何选择TZJ版? 官方移动版缺乏原生触控输入,较为方便的分辨率和码率修改功能。修改版本配合Sunshine使用,体验非常好。所有修改内容详见该项目主页(Github) 阿西西版功能更多,为什么不用阿西西版? 详见:“阿西西的日常” : 游戏串流界小偷、假大佬、毒瘤up主 III.网络环境 使用网络串流,尤其是游戏串流,一般不推荐中转模式(较高的延迟和不稳定的串流体验)。我的建议是,在任何使用环境下,能使用直连模式就不要使用中转。 本文使用Tailscale进行打洞组网而不是暴露端口方案,以下是配置好网络环境的方式。 1.桥接模式 光猫桥接模式可以去除光猫与路由器之间一层NAT。 无论是否有公网IP,桥接模式都可以通过联系运营商直接修改。 这里需要注意,修改桥接模式后需要自行在路由器侧配置宽带账号密码才可上网。在修改之前,务必知道自己的宽带账号密码。如果不了解,可以拨打对应运营商客服电话进行获取。 重置宽带密码可能需要如下材料: ...

七月 16, 2024 · 邮文

今日更新备案,网站恢复访问

2024-06-19 注销"琼ICP备2023004600号-1"的网站备案,同日邮寄注销主体申请表 2024-06-25 邮政快递发了5天终于将申请表寄到海南,随后被通知忘记随文件寄送身份证复印件,于是下单了更贵的顺丰重新寄送 2024-06-27 顺丰送达,原海南主体注销 2024-06-28 提交阿里云浙江ICP备案申请 2024-07-02 浙江ICP备案审核通过,备案由原来的"琼ICP备2023004600号"更换为"浙ICP备2024107040号"。 2024-07-09 公安备案"浙公网安备33032702001074号"通过。

七月 2, 2024 · 邮文

建站笔记-宝塔迁移1Panel搭建Typecho时常见问题

评论区有朋友提醒,目前1Panel最新版使用Docker部署已经不会再出现404和奇怪报错啦 | 伪静态肯定还是要手动设置的o((>ω< ))o I.登录页404 前阵子更换服务器,把原来的宝塔面板换成了1Panel,发现博客数据库和网站文件夹直接迁移过去无法正常使用,在Typecho登录页会报404错误,多次尝试后,在1Panel的Github issues里找到了解决办法: 在1Panel部署的PHP环境中,配置文件里,在OpenResty配置文件中加入以下四行内容 1 2 3 4 5 6 7 8 9 10 11 12 13 (省略) location ~ [^/]\.php(/|$) { fastcgi_pass 127.0.0.1:9000; include fastcgi-php.conf; include fastcgi_params; fastcgi_split_path_info ^(.+?\.php)(/.*)$; #这行 set $path_info $fastcgi_path_info; #这行 fastcgi_param PATH_INFO $path_info; #这行 fastcgi_param SCRIPT_NAME $fastcgi_script_name; #这行 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } if ($scheme = http) { (省略) 保存重载即可。 ...

十一月 22, 2023 · 邮文

排障笔记-解决PVE中节点SWAP占用过高问题&一些关于PVE宿主硬盘的题外话

0.前言 之前部署了Jellyfin媒体服务器之后,偶然一次打开pve主节点概要界面,发现,咦,SWAP怎么都爆红了… 随后又又想起来一个问题,这硬盘刚安装上去的时候写入读取数据都在5T左右,怎么这小主机用了这点时间涨了25T读取,10T写入,再这样下去SSD岂不是很快要寄了w(゚Д゚)w 最近忙着优化权限结构和媒体下载硬链接,以及部署一些服务,到现在才着手开始解决这个问题。SWAP占用一直很高的话,PVE主硬盘会大量读取写入,很伤硬盘而且也会导致性能下降。下面来讲讲解决办法。 I.前提条件 你的PVE系统除了换源,加温度显示或者删除订阅弹窗这些不影响Linux系统本体的操作之外,没有对本体进行多余的修改。 这点很重要,因为我参阅了Proxmox VE的论坛,影响Swap使用的有很多。使用第三方脚本时一定要注意对Swap的调整。 II.了解SWAP和Swappiness 以下内容从网上摘的,改了点表述,适当加了点东西,使之更加易懂。鉴于我看的网上那些文章大都是搬运,不太能找得到来源,就不标注来源了。 (中文互联网太多自动爬虫搬运资源,乱拉shit o(≧口≦)o) 关于 Swap Swap(Swap 分区、Swap 内存),中文名是交换分区,类似于 Windows 中的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。 因此,Swap 分区的作用就是牺牲硬盘,增加内存,解决 VPS 内存不够用或者爆满的问题。不过鉴于硬盘速度肯定是慢于内存,因此非必要情况下,大量地使用这个貌似不是件好事捏 Swappiness 的通俗解释 Swappiness可以用来调整系统在何时开始使用SWAP,Swappiness 可以设置为 0 到 100 之间的值。 swappiness=0: 表示最大限度使用物理内存,物理内存用满之后才用swap空间 swappiness=100: 表示积极使用swap分区,并且会把内存上的数据及时地搬运到swap空间里面 linux中该项默认值为60。也就是说,你的内存在使用到100-60=40%的时候,就会开始使用交换内存。大家知道,内存的速度会比磁盘快很多,过早地使用SWAP会加大系统IO,同时造成大量页的交换进出,严重影响系统的性能。 举例: 我的笔记本电脑有 16 GB 的内存和 8 GB 的交换空间。如果我在内核参数中,swappiness设置为60,那么在使用大约 6 GB (16G*40% == 6.4G)的内存后,我的笔记本就会开始使用SWAP,这会不必要地使我的应用程序变慢。所以咱应该知道怎么改这个参数。 III.让PVE少吃点SWAP Seems like proxmox only offers swap for lvm installs, I’m a zfs only guy so I never had the option in the installer. ...

八月 10, 2023 · 邮文

全过程小贴士-Docker搭建qBittorrent下载器和Jellyfin家庭媒体服务器

0.前言 最近几天忙着部署家庭媒体服务器,中间遇到了很多问题。考虑到个人时间有限,接下来高三并不会有太多时间打磨文章,因此暂时不提供详细的教程。这里只提供一些Tips,供部署遇到问题时排错参考用,基本涵盖了大多数个人部署的时候遇到的问题。详细的部署教程可以参阅网络,文末会推荐一些个人认为质量不错的教程。 I.推荐使用的东西 主程序部分 Jellyfin镜像:nyanmisaka/jellyfin (俗称中国特供版) 该镜像作者对该镜像的描述: 考虑到手动安装或编译 Intel 核显驱动对于用户来说并不容易,本文在此提供了一个开箱即用的 Docker 镜像,包含最新的驱动、jellyfin-ffmpeg、补丁、CJK 系统字体等。后续硬件加速的第一手修复也会推送到此镜像中。Docker 配置文件和相关选项可以继续沿用 jellyfin/jellyfin 的相关教程。 个人主要负责 Jellyfin 硬件编解码和滤镜相关功能的开发,范畴之外的功能请求可能不会回应。 开发者提供的中国特供版镜像 qBittorrent镜像:nevinee/qbittorrent 该镜像作者对该镜像的描述: qB 4.5.4/完成通知/自动分类/IYUU辅助/批量删改TK/TK出错标记/PT辅助脚本 本镜像非魔改版、非快验版、非Enhanced增强版,qBittorrent自身的行为/功能全部未做任何改动 附加功能部分 媒体管理工具:NASTool 这个工具是一站式的媒体刮削,硬链接,自动重命名工具,并且带有PT站点自动签到功能,个人使用非常方便,识别也很准确。如果可以通过验证,建议使用这个工具,他可以替代下面的Hlink和Sonarr和Jackett。不过因为之前无止境的宣传,他已经停止更新了,且用且珍惜罢。 硬链接工具:Hlink(Github) 这个工具具有Web管理界面。能够很方便地兼顾对下载的种子进行做种和Jellyfin搜刮,且支持qBittorrent下载完成后触发自动硬链接。 工具提示:其生成的硬链接会自动检测,刮削改名后不会导致重复生成,非常方便。 自动追番剧工具:AutoBangumi(Github) 这个工具具有Web管理界面,下载器目前仅适配qBittorrent,追番源目前仅有Mikan Project 蜜柑计划 (需代理访问)。 AutoBangumi下面简称AB。AB可以自动获取你在蜜柑计划中订阅的番剧并在番剧更新时自动添加下载任务到qBittorrent中。它甚至可以自动目录结构和文件名为修改可供Jellyfin刮削的样式,并且通过qBittorrent的自带API修改,可以在刮削的同时兼顾做种,可以说是很好用啦φ(゜▽゜*)♪ 自动追剧工具:Sonarr和Jackett 这两个工具我个人并未使用,鉴于网络上很多人推荐使用这个工具,这里仅作列出。关于他们的详情请见文末推荐文章。(哦对了,他俩拿来追番一点都不好用,因为他们无法根据英文很好地匹配想要的番剧,且程序相对复杂。)仅推荐追美剧等英文节目。 II.踩大坑-Jellyfin服务端 关于本地化适配 虽然前文推荐了nyanmisaka的Jellyfin,这里还要提一嘴。Jellyfin原版的客户端(包括linuxserver.io提供的)对中文的支持并不友好,生成的头图或者字幕,都经常会出现方格状,无法正常显示中文。推荐中的nyanmisaka制作的Jellyfin镜像补全了CJK中文字体,开箱即适配中文,无需额外加字体。 关于硬件解码 鉴于本人所使用的J4125小主机性能低下,并不适合服务器端解码,因此本人并未涉足这一块。不过,如果使用推荐的Docker镜像,并且Docker运行的宿主机能够访问到显卡,只要为docker配置如下设备映射: 1 2 devices: - "/dev/dri:/dev/dri" 就可以直接在Jellyfin开启硬件解码了,英特尔显卡一般用Intel QSV 如果你跟我一样,Docker是在PVE主机中的LXC里运行的,那么你可能还需要额外配置一下。可以参考这篇教程,写的还是不错的。下面摘一些该教程中的片段,仅供参考,条件允许可以点原作者的链接支持一下哦qwq 关于刮削时代理 你可能会发现Jellyfin控制台东找西找找不到设置代理的地方,加上国内不好访问TMDB,难以刮削中文数据。没错,官方确实没在网页端设计这个功能。不过,你可以设置系统环境变量。如果使用Docker,你可以在Jellyfin容器的环境变量处添加HTTP代理,需要用到的环境变量如下: 1 2 http_proxy= https_proxy= 注意:这里的大坑在于,大多数情况下,你的代理软件(例如小猫咪)只会告诉你HTTP代理端口,而不告诉你HTTPS端口。但配置代理的时候时http和https代理两个都要配置的,否则不能有效代理容器。http与https代理填写同一个地址即可。例如我的模板: 1 2 http_proxy=http://192.168.100.1:7890 https_proxy=http://192.168.100.1:7890 重点:该客户端与媒体不兼容,服务器未发送兼容的媒体格式 这是个比较笼统的报错形式。不过一般情况下,其实并不是“该客户端与媒体不兼容”的问题,一般问题在于服务端。 ...

八月 7, 2023 · 邮文