别再忍受网抑云欺压了,用起外网IP来搭建自己的私有云音乐吧
作者:V君 发布于:2022-3-14 11:01 Monday 分类:我的应用
TL;DR for 立即想拿来用的人:[ 下载 | 源代码 ]
1)解压,用文本编辑器修改配置文件 config.json
◆ListenPrefix 用来配置监听的IP和端口,格式是 http://+:12345
若要指定监听的网卡,将加号改成对应网卡IP即可
◆Libraries 里面每一项作为音乐库定义,Key是显示名称,Value是物理路径
音乐库目录结构
$/专辑
cover.jpg
01.flac
02.flac
03.flac
/BK
scan1.png
scan2.png
scan3.png
/AAC_
01.m4a
02.m4a
03.m4a
◆MediaFilePattern、BkFilePattern 保持默认即可
2)然后直接双击 FNZCM.ConHost.exe 启动,启动后扫描媒体库获取元数据生成列表
在浏览器打开监听的地址就可以浏览媒体库、专辑、音轨、BK,音轨页面可以在线播放
当文件发生变化时,点击首页底部的 Reload 来刷新媒体库
接着就可以将M3U8链接甩给播放器 APP 在线播放
X)进阶:如果嫌FLAC使用流量太多,肉疼的话还可以批量生成高品质AAC(m4a)
(文件大小缩减到一半以下,音质损失可忽略不计)
只是目前配套的批量转换工具还没有发布直接可用的版本
感兴趣的小伙伴可以阅读源代码了解使用方法,自己编译一个来用)
简单扯一扯缘起
由于无法忍受网抑云肆意下架、移除歌单中的收藏项,而且自己上传一些私有音乐,相似但不同的变异版本它识别得乱七八糟,我决定丢掉它找别的方法听歌。(其实最无法忍受的是吃相太难看)
起初回到原始的下载 FLAC 放到电脑或者手机直接播放,在电脑直接播放本地(局域网共享)文件还行,只是手机端就没这么方便了,还得考虑存储空间,得想办法随时随地直接播放家里的媒体库才行。
简单扯一扯开发感想
碍于爱折腾的个性,首先不使用现成的产品,不管你免费与否、开源与否❌
私有云音乐的本质就是一个流媒体服务器,如果是局域网,直接走共享即可,但是出门在外还想用家里的音乐库,这就得想想办法了。
最开始的步伐迈开的太大,想做一个大而全的网页版,扯蛋不说一直没整出一个像样的东西来
后来想起音乐播放 APP 可以载入 M3U8 格式的列表,这样就不用自己造界面的轮子了,咱可以基于静态目录结构实现随时随地用 VLC 之类的 APP 在线播放。用播放器的好处还有兼容性高,已知一些高规格的FLAC文件无法在浏览器播放,而 VLC 能轻松播放。
于是这个简化版的私有云音乐就出来了,它还有一个接地气的内部名称:“土炮云”
用C♯了写个传声筒——经由局域网在另一台电脑上播放声音
作者:V君 发布于:2022-2-10 22:39 Thursday 分类:我的应用
在发送端静音,然后用命令行参数启动
AudioNTR.exe 操作 参数…
示例
AudioNTR.exe receiver 2333
AudioNTR.exe transmitter 192.168.1.2 2333
只在两边都是 Windows 10 的环境下使用过,不确保其他环境也能用…
这玩意的全称是 Audio Net Transmitter Receiver 不要想歪了))
简单扯一扯缘起
在家中电子垃圾堆翻出一块焊满电容的独立声卡,是 PCI 插槽的,又找出一块有 PCI 插槽的主板,直推 XM4 一直当着播放机单独用,效果十分满意。但也有些毛病,经常出现主力机的声音(音箱)听不到或者听不清的情况。偶尔还会有发出声音的网页开着,不注意就很尴尬……
那时候首先去咕狗搜「Play audio on another computer」找到一堆现成的收费软件。(当然在做出来之后又发现了一堆开源的实现…)由于前些年摸过音频处理,知道有 NAudio 这个库在 NT6+ 可以轻松地截取、回放声音,于是就有了这个小玩意。
简单扯一扯开发感想
要狠狠地赞 NAudio 这个音频库,基本上想做的事情都在它的预期范围内,零造轮子,把组件连接起来就能用!
最后配一个简单的不能再简单地原理图
用C♯写了个特别的TCP端口转发器,经由SOCKS5转发TCP连接
作者:V君 发布于:2022-1-14 5:43 Friday 分类:我的应用
命令行参数
TcpRedirector.exe 监听地址 监听端口 SOCKS5地址(或者域名) SOCKS5端口 目的地址(或者域名) 目的端口
示例
TcpRedirector.exe 127.0.0.1 1234 127.0.0.1 1080 example.com 80
仅支持匿名验证SOCKS5
只在 Windows 10、Server 2019 环境下使用过,不确保其他环境也能用…
简单扯一扯缘起
由于众所周知的原因…………………………
简单扯一扯开发感想
没啥想扯的,无非是不想用别人做好现成的,那就造轮子,在自己的机器上跑了两天,没出问题才发上来(其实是懒得安装py环境,那就自己简单写一个
让 dnsmasq-china-list 分流列表跑在 windows 之用 C♯ 写 DNS 转发器
作者:V君 发布于:2021-12-12 4:48 Sunday 分类:我的应用
命令行参数
DnsForwarder.exe 默认DNS .CN域名DNS 配置文件
示例
DnsForwarder.exe 192.168.233.233 114.114.114.114 c:\dnsmasq-china-list.conf
只在 Windows 10 环境下调试通过,不确保其他环境也能用…
简单扯一扯缘起
由于众所周知的原因,光是有了可靠的 DNS 还不行,直接使用会让部分国内网站变慢甚至打不开,这时候就只能上分流方案了。网上查到的都是用 dnsmasq 跑在路由器、linux、WSL上,没找到 windows 下直接能用的方案,那就只能自己造轮子了…
简单扯一扯开发感想
要做一个东西首先要确定理论上的可行性。我不想太深入 DNS 协议,先想到的是盲转发,也就是监听 53 端口进来的 DNS 请求,提取报文中的域名,然后原样转发到匹配的 DNS 服务器,得到响应之后再原路返回。那么就稍微啃了一下 DNS 的协议报文。从 DNS 报文中提取域名还算简单,简单 PoC 之后就适配到 dnsmasq-china-list 配置文件了。起初匹配表是个字典,键和值都是字符串,键是域名,值是 DNS 服务器 IP,载入配置文件之后观察内存占用已经将近 40MB 了,然后又抽空优化了一下把大量重复的 DNS 服务器改成查表,这下内存占用就下降了数 MB。UDP 的使用姿势也从无脑循环改为异步收发,对上游服务响应超时的情况也做了应对处理,及早释放资源。
用C♯访问共享内存(MACMSharedMemory)调用Afterburner控制显卡风扇转速
作者:V君 发布于:2021-10-26 20:25 Tuesday 分类:我的应用
0) 确保 MSI Afterburner 正常运行
1) 一些命令行示例
◆ 显示全部显卡风扇转速: -q
◆ 显示第一块显卡风扇转速: -q0
◆ 将全部显卡风扇设置为自动:-sAUTO
◆ 将全部显卡风扇设置为全速:-s100
◆ 将全部显卡风扇设置为最低转速:-s0
◆ 将第一块显卡风扇设置为自动:-sAUTO -i0
◇ 无参启动会输出完整用法
X) 只在 Windows 10 环境下调试通过,不确保其他环境也能用…
扯一扯这次折腾的经历
〇缘起
我为啥没事要控制显卡风扇转速呢?我只敷衍一下说懂得都懂吧 _(:з)∠)_
原因这部分略过,在找到 MSI Afterburner 共享内存的方式之前我还尝试了许多不靠谱的其他方式,最终选择了小飞机。
①使用来自 guru3D 论坛别人封装库的尝试:有BUG啊
起初在咕狗上找小飞机的 API,然后就找到 guru3D 论坛上标题为
《MSI Afterburner .NET Class Library》
的帖子,提供了一个加密混淆了的 .NET 程序集和一份文档。用起来感觉还行,读取全部显卡的风扇转速。
但是要设置风扇转速的时候它只能动前两块显卡,如果要设置第三块及以上的显卡,(不要问…),这个库会出现内存访问违规,也就是传说中的 Access Violation(AV)……
由于这个程序集不提供源代码,那就只能自己实现了,况且 MSI Afterburner 提供了 SDK 示例,虽然是用 C++ 写的,但也能勉强读懂吧,反正只要能调整风扇转速就达到了这次的目的。
②自己照着 SDK 实现:还凑合
默认情况下 SDK 示例能在 C:\Program Files (x86)\MSI Afterburner\SDK\Samples\SharedMemory\MACMSharedMemorySample 找到。 主要看 MACMSharedMemorySampleDlg.cpp 就可以了。 整个流程大概分成四个阶段:连接、读取、修改、写入,读写的时候有个全局互斥锁,还有个 MACM 签名用来避免误操作,最后不要忘了释放资源。 结构体定义我就懒得自己重新扒 C++ 而是从《MSI Afterburner .NET Class Library》里面直接扒出来了,对外公开的数据结构没有混淆,也不能混淆 乂目
●结语
这只能称之为一个小作品或者小节目吧,还可以再扩展一下吧核心、显存频率引出来的,但是懒了 _(:з)∠)_ 其实是月底还没写这个月的博客,有点慌了w 因为要恰饭,所以就算是家里蹲,留给自己的时间也不多,一直想做一个自己的个人博客还在咕着 _(:з)∠)_ 忙完这阵子之后我想先深入了解一下 Blazor 然后尝试做个博客管理界面,至于前台嘛,为了方便互联网档案馆之类的场景,我决定还是做成全站伪静态,服务端渲染的页面。
★题外话(?)
对于不想安装小飞机又想用命令行控制显卡风扇转速的小伙伴,我这里有个方法能将小飞机强行精简绿化,最终的 7z 压缩包只有 1.2MB。
去官网下载安装包,然后用 7-zip 解开,挑出下面列出的文件,然后再修改一下配置文件 MSIAfterburner.cfgMSI Afterburner v4.6.4.16117 Beta 4
│ LogitechLcd.dll
│ MSIAfterburner.cfg
│ MSIAfterburner.dat
│ MSIAfterburner.exe
│ MSIAfterburner.oem
│ MSIAfterburner.oem1
│ MSIAfterburner.oem2
│ RTCore.cfg
│ RTCore.dll
│ RTCore32.sys
│ RTCore64.sys
│ RTFC.dll
│ RTHAL.dll
│ RTMUI.dll
│ RTUI.dll
│
├─Profiles
│ MSIAfterburner.cfg
│
└─Skins
MSIModern.usf 配置文件内容[Settings]
Skin=MSIModern.usf 用这种方式需要自己打32、64位的 VC2008 运行库
blogger
Google Web Translator
热门日志
随机日志
最新日志
最新评论
- bngvzuoukj
【数据删除】 - bngvrmswfj
【数据删除】 - V君
@昆仑山伯爵:欢... - 昆仑山伯爵
关于无盘的项目... - Ninokz
5块显示器,XD,好... - V君
@k1mlka:发现dmhy... - k1mlka
有在nas上挂着想... - 秘鲁的人
不错不错 - 秘鲁的人
嘤嘤嘤操 - preferences
解决了,谢谢博...
分类
存档
- 2022年4月(1)
- 2022年3月(1)
- 2022年2月(1)
- 2022年1月(1)
- 2021年12月(1)
- 2021年11月(1)
- 2021年10月(1)
- 2021年9月(1)
- 2021年8月(1)
- 2021年7月(1)
- 2021年6月(1)
- 2021年5月(1)
- 2021年4月(1)
- 2021年3月(1)
- 2021年2月(1)
- 2021年1月(1)
- 2020年12月(1)
- 2020年11月(1)
- 2020年10月(2)
- 2020年9月(1)
- 2020年8月(1)
- 2020年7月(1)
- 2020年6月(1)
- 2020年5月(1)
- 2020年4月(2)
- 2020年3月(3)
- 2020年2月(1)
- 2020年1月(1)
- 2019年12月(1)
- 2019年11月(1)
- 2019年10月(1)
- 2019年9月(1)
- 2019年8月(2)
- 2019年7月(1)
- 2019年6月(1)
- 2019年5月(1)
- 2019年4月(1)
- 2019年3月(1)
- 2019年2月(1)
- 2019年1月(2)
- 2018年12月(2)
- 2018年11月(1)
- 2018年10月(3)
- 2018年9月(4)
- 2018年8月(6)
- 2018年7月(4)
- 2018年6月(1)
- 2018年5月(2)
- 2018年4月(2)
- 2018年3月(3)
- 2018年2月(1)
- 2018年1月(1)
- 2017年12月(1)
- 2017年10月(2)
- 2017年9月(1)
- 2017年8月(2)
- 2017年7月(1)
- 2017年6月(5)
- 2017年5月(2)
- 2017年4月(2)
- 2017年3月(3)
- 2017年2月(2)
- 2017年1月(2)
- 2016年12月(3)
- 2016年11月(2)
- 2016年10月(3)
- 2016年9月(4)
- 2016年8月(2)
- 2016年7月(4)
- 2016年6月(3)
- 2016年5月(1)
- 2016年4月(4)
- 2016年3月(3)
- 2016年2月(1)
- 2016年1月(5)
- 2015年12月(4)
- 2015年11月(5)
- 2015年10月(1)
- 2015年9月(6)
- 2015年8月(4)
- 2015年7月(1)
- 2015年6月(6)
- 2015年5月(3)
- 2015年4月(3)
- 2015年3月(2)
- 2015年2月(1)
- 2015年1月(3)
- 2014年12月(1)
- 2014年11月(1)
- 2014年10月(1)
- 2014年9月(3)
- 2014年8月(1)
- 2014年7月(1)
- 2014年6月(1)
- 2014年5月(3)
- 2014年4月(1)
- 2014年3月(1)
- 2014年2月(2)
- 2014年1月(1)
- 2013年12月(2)
- 2013年11月(2)
- 2013年10月(1)
- 2013年9月(3)
- 2013年8月(14)
- 2013年7月(7)
- 2013年4月(1)
- 2013年3月(4)
- 2013年2月(6)
- 2013年1月(6)
- 2012年12月(8)
- 2012年11月(6)