国庆节结束了,虽然没有歇几天。
还是在折腾媒体服务器
试了好多方案,最终稳定的还是onedirve + oneindex + VLC播放器。
先把电影上传到onedirve;
然后用oneindex生成在线播放网址;
最后复制到VLC播放器来播放。
有个问题我不知道是个别还是怎样,我用家里的Wifi看电影的话,不管电影有多长,总会在播放一段时间后出现卡顿,换播放器也是卡顿,基本上不能看。
但是如果换成4G,速度就会非常快。
所以我的流量用的是哗哗的。
这不知道是onedrive对同一个IP持续下载后的限速,还是我家的网络问题。
oneindex的搜索是个问题
oneindex的作者似乎没有考虑把搜索问题解决。
我研究了几天原作者的代码,发现一个可能暂时能用的办法,暂时还没有实现。
- 原作者是把onedrive的文件缓存到
cache
文件夹中; - 有多少个文件夹,就会在
cache
文件夹中生成多少个.php
文件; .php
文件命名规则是固定的,文件名是md5('dir_' . $path) . '.php'
;$path
指的是绝对路径,从onedrive根目录开始;- 每个
php
文件中存储的数据是php的数组,数组有字段name
,size
,lastModifiedDateTime
,downloadUrl
,folder
,其中folder
存储的是bool格式的数据,字段中无当前目录值。 - 这种格式的数据应当是onedrive的API直接返回的。
开始的时候,想要在每次搜索时把所有的php
缓存文件读取出来,然后依次查找对应的关键字,搜索是基于缓存的,没有缓存就什么都搜索不出来。
先不说这种思路有没有实现,因为中间有大量的循环和递归,目录越多越深,执行的速度就会越慢。
放弃这种思路。
考虑用下面的方法:
- 目前原作者已经将最难的API完成,能拿到所有的文件;
- 可能作者是为了方便,或者安全,把所有的文件目录(文件夹)用md5加密;
- 而md5解密一般来说比较困难,但是对应关系基本上是一一对应的;
- 所以再利用一个缓存文件,把原文和密文对应起来;
- 搜索时先查询所有结果,得到每条结果及结果所在的
php
文件名; - 然后在新缓存文件中找到该密文文件名对应的原路径;
- 显示查询结果。
理论上可以实现,但是目前还没有完成。
搜索功能能用就行了
因为文件越来越多,目录越来越多,不可能用Ctrl+F能解决所有的问题。
等我实现上面的那个功能以后,再回来记录。
这种搜索只能是判断字符串是否包含关键字,如果搜索的关键字是一个通用的字符,那么就会出来大量的结果。
我又不是在造搜索引擎,先不考虑那么多,我也不会去故意搜索无意义的字符。
下载了1.4T的影视了
一般下载还是Aria2。
前一段时间才发现了另一个下载工具rrshareweb
,官网地址,Github项目地址,不过软件不是开源的,我认为应该没有太大的风险,用的时候就打开,不用的时候就关闭就行了。
这东西占CPU很严重,可能有一点点挖矿的嫌疑。
因为Aria2下载东西再多,也不会占用多少CPU;但是我只要一打开rrshareweb就会吃掉40%左右的CPU,服务器的风扇开始疯狂的转。
所以尽量平时不开,需要下载的时候再开一下。
这东西下载别的东西不知道,但是下载人人自己做的影视还是非常快的,而且可以批量下载,有利有弊,权衡后使用。
该软件做成服务
测试的服务器是Centos7.5,/etc/systemd/system/
下增加文件rrshare.service
,内容如下:
1 | [Unit] |
软件主要有两个文件rrshareweb
和p4pclient
,两个文件都需要增加执行权限。
然后使用service rrshare start
命令启动就可以了。
切记,不用的时候关闭,不知道有什么风险。