———用途———
将任意视频/文件编码为噪声视频,通过解码得到原始视频/文件。
这可以做到对已封禁或正在被审查的视频提供保护。

———原理———
通过 Reed-Solomon 编码 将任意文件转换为白噪声视频,并在允许范围内部分丢失数据的情况下可将噪声视频还原到哈希值(SHA-256)相同的原始文件。
项目地址:https://github.com/ERR0RPR0MPT/Labyrinth-go

———优点———

  1. 如果你需要转换的原始文件是一个视频,那么恭喜你,这是项目实现的主要目标。
    使用此方法转换得到的原始视频即使哈希不匹配,在可接受的数据损失下,画面仍然是可读的。
    这种方案对比使用对视频逐帧处理为白噪声再上传到视频平台压缩后下载下来处理为原视频的方法,后一种方法的数据已经被压缩丢失的差不多了,所以基本上不可行;此方法中可以将白噪声使用低分辨率视频作为载体,避免被二次编码时压缩过多数据。

如果你需要转换的是一个文件,那你需要万无一失地确保解码不会出现错误。

  1. 项目没有使用任何加密算法,所以编码后的噪声视频也能看出存在各种明文特征。你可以搭配压缩或加密程序使用本项目。

  2. 此方案也可以用于其他的场景,比如可以打破某些云盘只能上传视频不能上传文件的限制。

  3. 项目使用 Go 实现,对配置要求不是很高。

———缺点———

  1. 为了保证数据尽可能的完整性,项目使用视频中的 8 个像素 表示数据的 1 字节,以及使用 Reed-Solomon 编码 进行数据纠错。这导致白噪声视频的大小是原始文件的 5-10 倍(取决于 dataShards 与 parityShards 的比值)
  2. 对磁盘 IO 有较高要求。
  3. 项目目前处于能用的状态,但经实验,经过冗余产生的噪声无论 dataShards 与 parityShards 的比值如何,经过转换得到的解码文件的质量总与视频损失的码率有关,可能是压缩时总是均匀损失数据导致的?(或者只是单纯的 Bug
  4. 在时间消耗上,编码 100MB 的数据需要 12min 左右,解码需要 8min 左右,对于急需使用此数据的情况来说较慢。
技术编码

这是一个适配 Intel 集显, A 卡, N 卡的 公网 IPV6 直连 P2P Moonlight 推流方案。

理论上对服务器同样适用,只需另外安装一个虚拟显卡设备即可。

废话少说,上正片:

安装 OpenStream

打开 OpenStream 官网

点击下载,然后安装。

安装完成之后桌面上会出现 OpenStream 图标,双击运行。

选择“Configure”进行配置,选择你机器对应的编码器以及要使用编码方式。

设置好之后点击“Go back”,然后点击“Start”运行服务器。程序会显示“Server Up”即为成功。

在同一局域网内使用 Moonlight 测试一下 Server 是否在线。

安装 GameStation IPV6 Forwarder

直接点击这里下载程序。

下载完之后安装即可。

DDNS:IPV6 绑定域名

使用 DDNS 把机器的动态 IPV6 地址绑定到域名上。

这步请自行 Google,网上很多教程。

使用域名连接 GameStation

在 Moonlight 客户端中添加设备,输入刚刚配置好的域名,保存连接,在主机端输入 PIN 进行验证。

连接成功后即可实现远程公网直连 不需要 N 卡 / A 卡 / 只有集显的 Moonlight 串流。

注意事项

  1. 要实现 IPV6 直连,GameStation 和客户端必须同时拥有公网 IPV6 地址。
  2. 如果 Moonlight 客户端提示端口未开放,请检查本机的 Windows Defender 防火墙设置(我设置的是全部程序放行,具体请 Google),或者检查路由器是否开启了防火墙。
MoonlightIntel集显独显N卡A卡推流IPV6P2P公网直连OpenStreamGS-IPv6-Forwarder

❗需要注意的事项❗

本人现已弃用 QQ🐧 , 改用 Telegram✈️ 作为最常用的通讯软件.

您发送的内容已经由 机器人🤖 自动流转到了 Telegram✈️ 上, 您无需再次发送消息.

也就是说, 当我看见了您发送的消息后会通过 机器人🤖 自动回复您, 形式同 QQ🐧 聊天完全相同.

本人的 QQ空间🐧📝 将正常使用,不受影响.

鉴于网络环境(GFW)影响, 如果我没有及时回复您的消息, 请尝试通过以下方式联系我:

📝 Blog 留言板: https://comment.blog.fwder.cn

📮 邮箱: weclont@qq.com | ee780835@gmail.com

✈️ Telegram: https://t.me/weclont

👓 Discord: weclont#5287

声明

前言

最近我的一个兄弟在搞NAS,他和我聊了聊下面的一段话:

于是乎我突发奇想:既然家里的NAS支持千兆传输,那又何尝不能当“虚拟内存”来使用呢(?)

制作“虚拟内存”需要本地盘的加持,而SMB协议却无法挂载为本地盘。也许ISCSI协议可以实现我的需求,但遗憾的是,ISCSI协议需要使用一整块分区来作为硬盘,我使用了4块硬盘组了RAID,主板上的硬盘接口已经被占满,,我不可能会为了挂载NAS为本地盘而格式化我NAS上的所有数据,所以只能从SMB协议这边下手了。

因为SMB协议的种种限制,要想获得“基于SMB协议的虚拟内存”还是需要一点技巧的。

下面开灶。

NASWindowsSMBVHDX

前言

之前只在 Windows 平台上跑过 xmrig ,理所应当的使用的是 msys2 进行无捐编译。

现在有了30多台 Android 设备,决定让它们锻炼锻炼筋骨,于是就有了这篇文章。

过程

起初通过msys2+ndk进行交叉编译,后来因为无法编译出libuv和hwloc两个库而以失败告终。

最后在Github的xmrig项目中的一个issue 和 https://xmrig.com/docs/miner/build/ubuntu 找到了灵感:

XZiar commented

termux下可以直接编译。
https://xmrig.com/docs/miner/build/ubuntu
按advanced build来。
不过安卓下libuv编译有点问题,./build_deps.sh完成后要单独去libuv目录下用cmake再编译一次,然后把生成的libuv_a.a替换script/deps/lib下的libuv.a。

XmrigCMake项目编译Android

2021.3.5 更新 新增NAS硬盘休眠

前言

自从两年前入了一台星际蜗牛以来,我就一直在使用黑群晖DSM系统,并且在各个系统版本之前切换。

为什么不换其他的系统呢?因为群晖功能多,教程也多,去看了看DSM以外的系统,比如FreeNAS,OpenMediaVault、Windows等等,感觉都没有使用DSM方便,所以直接上黑群晖了。

但是使用两年下来,自我感觉DSM系统体验并不好。首先,对我这台机器而言,有几个十分膈应人的Bug(硬盘不休眠那个Bug我真的是找了两年翻遍全网都修不好没办法就不搞了),其次,群晖系统比其他Linux系统较为封闭,我整不了活。。

终于,在上周,硬盘因为io延迟太高被系统误判挂了两块盘,系统里检查说是存储卷损毁。。运行Ubuntu CD上去一看,真无语,数据都还在,又只是因为延迟盘挂了。

我想既然还要重装系统那还不如直接换,因为这种io延迟已经有很多次了(大概率不是硬盘问题,曾经试过装win系统,硬盘7x24小时稳定运行没出任何差错,除非满占用基本没有大的io延迟)。

Ubuntu 在各个方面都能胜任,拿他做个NAS系统也不是不可以是吧~

于是,就有了下面的文章。

NASUbuntuUbuntu打造NAS系统