玩客云 线刷Armbian 搭配Alist 阿里云盘 Jellyfin NovaVideoPlayer搞电视墙
啰嗦的背景
喜欢看电影,买了个投影仪,是这一切折腾的开端。
投影仪虽然有当贝系统,但是想看的电影总是需要**电视会员,那我肯定是不用的。因为有爱腾优的会员,最开始都是使用手机投屏,当呗的投影仪好就好在投屏基本没有广告。然而遇到某些电影,要不就是会员也得加钱点映,要不就是根本没资源,当时的解决方案是电脑迅雷找资源,下好了之后拷贝到U盘,插到投影仪或者客厅电视播放。
这个过程听着就烦人。有没有更好的方案呢?
这时候有个快被淘汰的叫玩客云的便宜矿渣进入了视线。
大概了解之后去拼多多找货,结果发现都是些刷好系统的,原本的玩客云系统已经不能使用。其实我最开始就是想要个能够方便(快速)下载电影,并且不需要再用U盘挪来挪去的工具。所以最后在小黄鱼花高价买了个已绝育的原装玩客云。
到手后一番折腾,可惜并没有意淫中的美妙。玩客云的好处在于,它有一个比较成熟完整的网盘系统,可以在电脑或者手机客户端直接远程添加下载,可以勉强充当一个私有网盘使用,可以开启smb服务,投影仪支持直接打开smb文件夹中的视频。然而这一切都毁在下载上,说好的永久免费迅雷会员呢,结果大部分资源根本下不动,下的动的用玩客云下载还不如我电脑迅雷试用会员呢。系统也不太稳定的样子,手机客户端经常需要多次刷新才能显示链接上。
接着开始琢磨玩客云的玩法,从搜索结果来看,主流的做法都是刷个Armbian系统,然后装docker玩一些应用。于是开始琢磨刷机。
开始刷机
具体的刷机步骤不描述了,网上太多,只记录一下思路。搜索到的大多数教程,都是使用U盘,需要先刷一个安卓底包,再刷5.88版本的Armbian系统,再刷5.9版本。太麻烦了太麻烦了。继续找,在恩山论坛找到了线刷的办法(参考:玩客云-Armbian23.05-直刷包-内核6.1)。然后去github下载了最新版本的直刷包,京东3.5买了一条双头USB线,在一个夜深人静的周六下午,经历了暴力拆机和多次短接失败之后成功刷入了Armbian系统…
阿里云盘初体验
最开始刷完之后我是有点懵的,我刷机是要干嘛来着…
噢,对了,我要看电影。这时候我其实还想着下载这个事。但是在搜索电影资源的时候发现了阿里云盘这个玩意儿。我感觉打开了新世界的大门,原来不用下载就能看(大部分)想看的高清电影!还可以投屏!在这几天中,我沉迷于在阿里云盘上找资源,晚上直接使用手机阿里云盘投屏看视频…
我买个玩客云来干啥来着…
为了不荒废这个便宜的矿渣,经过一番学习(百度),了解到还可以把阿里云盘挂载到本地路径供局域网的电脑、投影仪、电视访问,也算是找到一点(几乎没有)用处。
具体步骤也不描述了,百度一大堆,仅介绍一下思路。我参考:玩客云安装armbian后将阿里网盘挂载为本地磁盘,并共享给摄像头当存储设备 这篇文章(以及大量其他文章),在armbian系统中安装了docker, 使用aliyundrive-webdav,davfs2,将我的阿里云盘挂载到本地路径了…
开始折腾Jellyfin和Alist
如果就挂到本地,像访问文件夹一样去访问播放,那我还不如手机投屏还方便呢…
这时候“学习”到有个东西叫Jellyfin, 可以扫描(挂载到)本地的文件夹,刮削海报和电影信息,自动生成海报墙,提供了安卓客户端,可以安装到投影仪和电视,遥控器在海报墙之间刷来刷去,想想都美滋滋啊(虽然没什么*用)。
最开始使用docker安装了jellyfin。在添加媒体库的时候,选择了阿里云aliyundrive-webdav挂载的目录,发现跑特别慢,观察玩客云负载, 发现aliyundrive-web服务基本上把cpu占满了,才几百个电影文件夹, 仿佛要跑到地老天荒(玩客云弱鸡 )。此外,aliyundrive-webdav有个缺点,使用了它之后我只能看到我备份盘的文件,但是看不到资源盘的文件,而我大多数电影资源都在资源盘,需要手动移动道备份盘。
这时候发现一个叫alist的开源项目,可以实现aliyundrive-webdav更多的功能,挂载更多的的网盘,也提供webdav服务。于是我选择把jellyfin的容器停掉,使用docker安装了一个最新版本:
docker run -d --restart=always -v /root/**/alist:/opt/alist/data -p 5244:5244 -e PUID=0 -e PGID=0 -e UMASK=022 --name="alist" xhofe/alist:latest
访问http://*.*.*.*:5244,然后挂载阿里云盘,选择资源盘…还算是非常快速方便的连上了我的阿里云盘。
这次我使用了本地安装的办法安装Jellyfin(为了省资源提效率):
sudo apt install curl gnupg
curl -fsSL https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/jellyfin.gpg
echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release ) $( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release ) main" | sudo tee /etc/apt/sources.list.d/jellyfin.list
sudo apt update
sudo apt install jellyfin
访问http://*.*.*.*:8096就可以继续折腾jellyfin了。这次我使用rclone来挂载alist webdav到本地,挂载完成后继续尝试添加媒体库,开始刮削。by the way , 实测,因为某些原因,需要修改系统hosts文件或者在路由器设置代理,才能正常的访问api,themoviedb.org 刮削到海报和电影信息。经过观察,这次cpu占用率要低很多,20%左右,也比较顺利的刷出了海报墙。
KODI 和 NovaVideoPlayer
我最开始装了个ios端的jellyfin客户端,发现播不动,因为玩客云性能太渣渣,解码太慢了,cpu都占满。然后查了下文档,在jellyfin后台设置优先使用fmp4-hls, 换了个infuse,使用客户端解码,终于可以播放了。
有人推荐使用KODI,但是根据我的亲身经历,这产品经理真…不好用,反人类,装个最新版的一到配置的时候还卡死, 折腾一晚上搞不出效果,放弃…
然后在投影仪和电视上都安装Jellyfin的安卓客户端,再装一个当贝播放器,用Jellyfin浏览电影信息,播放的时候选择使用当贝播放器,实现客户端硬件解码,基本上阿里云盘资源中的电影都能秒点开秒播放了。到此,基本上算是告一段落…?
在播放电影时,观察玩客云的负载,发现rclone 服务占用较高,推测是需要从阿里云盘下载数据挂载到本地再给客户端播放。此外,想着等公网ip申请下来,我在外使用(伪需求,绝对伪需求)时,流量还得经过家里的带宽和玩客云,太不美观了。于是看了下alist的官网,找到了NovaVideoPlayer这款播放器https://github.com/nova-video-player/aos-AVP, 它的最新版本已经支持webdav。直接在github release页面下载它们最新的apk安装包,安装到电视上,配置alist webdav地址,它会自动扫描文件夹,自动连接themoviedb刮削电影信息和海报,生成海报墙,自带影视分类,自带客户端解码播放,也可以选择使用第三方播放器,可以在线自动搜索下载字幕…总之一切都很美妙,等我装好了之后,发现刮削过程中玩客云负载并不高;我选择了一部近50G的高清电影播放,几乎秒开,整个播放过程玩客云保持“冷静”,流量直接从阿里云盘到客户端Nova解码播放…完美,感动得想哭。
总结
简单总结一下,对于我这样的电影党 + 乞丐流派,玩客云刷Armbian,装alist 挂载阿里云盘 ,使用NovaVideoPlayer观看电影,几乎是我尝试下来的最佳实践。当然,由于Jellyfin的界面相对于Nova,还是更美观一点(Nova更偏向之前WP的扁平化风格),因此Jellyfin我也一直留着,在局域网内看电影依然美滋滋。
至于下一步折腾什么?
申请了公网ip, 准备考虑弄个客户端,挂载个闲置的移动硬盘,弄个私人网盘玩玩,就当给我乞丐版的macbook扩容了。
相关文章:
玩客云 线刷Armbian 搭配Alist 阿里云盘 Jellyfin NovaVideoPlayer搞电视墙
啰嗦的背景 喜欢看电影,买了个投影仪,是这一切折腾的开端。 投影仪虽然有当贝系统,但是想看的电影总是需要**电视会员,那我肯定是不用的。因为有爱腾优的会员,最开始都是使用手机投屏,当呗的投影仪好就好…...
9月1日,每日信息差
1、华大智造:已实现海外基因测序仪和测序试剂的量产,实现了海外基因测序仪和测序试剂的量产 2、邮储银行下调定存利率。价格表显示,整存整取,一年期存款年利率为1.58%,二年期年利率为1.85%,三年期年利率为…...
【大数据】Flink 详解(六):源码篇 Ⅰ
Flink 详解(六):源码篇 Ⅰ 55、Flink 作业的提交流程?56、Flink 作业提交分为几种方式?57、Flink JobGraph 是在什么时候生成的?58、那在 JobGraph 提交集群之前都经历哪些过程?59、看你提到 Pi…...
ShardingSphere——弹性伸缩原理
摘要 支持自定义分片算法,减少数据伸缩及迁移时的业务影响,提供一站式的通用弹性伸缩解决方案,是 Apache ShardingSphere 弹性伸缩的主要设计目标。对于使用单数据库运行的系统来说,如何安全简单地将数据迁移至水平分片的数据库上…...
Linux项目自动化构建工具-make/Makefile
一、什么是make和makefile make是一条指令 Makefile是当前目录下的一个文件 二、makefile文件编写 依赖关系::前为要目标文件,后为其依赖的文件 依赖方法:用依赖文件生成目标文件的具体指令 简便写法: $:表示目标文件 $^:表示…...
Python爬虫实战:自动化数据采集与分析
在大数据时代,数据采集与分析已经成为了许多行业的核心竞争力。Python作为一门广泛应用的编程语言,拥有丰富的爬虫库,使得我们能够轻松实现自动化数据采集与分析。本文将通过一个简单的示例,带您了解如何使用Python进行爬虫实战。…...
视频智能分析平台EasyCVR安防视频汇聚平台助力森林公园防火安全的应用方案
一、研发背景 随着经济的发展和人们生活水平的提高,越来越多的人喜欢在周末去周边的森林公园旅游,享受大自然的美景,并进行野炊和烧烤等娱乐活动。然而,近年来由于烟蒂和烧烤碳渣等人为因素,森林公园火灾频繁发生。森…...
跨境做独立站,如何低成本引流?
大家都知道,海外的消费习惯与国内不同,独立站一向是海外消费者的最喜欢的购物方式之一,这也吸引了许多跨境商家开设独立站。 独立站不同于其他的第三方平台,其他平台可以靠平台自身流量来获得转化,而独立站本身没有流…...
leetcode55.跳跃游戏 【贪心】
题目: 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。 示例…...
探秘C语言扫雷游戏实现技巧
本篇博客会讲解,如何使用C语言实现扫雷小游戏。 0.思路及准备工作 使用2个二维数组mine和show,分别来存储雷的位置信息和排查出来的雷的信息,前者隐藏,后者展示给玩家。假设盘面大小是99,这2个二维数组都要开大一圈…...
Leetcode112. 路径总和
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 t…...
生成12位短id,自增且不连续,永不重复,不依赖数据库
基本思路: 设计模式:单例模式 是否加锁:是 synchronized 获取最后一次生成的时间戳值T0 限定初始时间为2023-08-01 00:00:00,获取当前时间时间戳T1,T1与初始时间的毫秒差值T2,转为16进制,转为字符串为r1,获取该字符串的长度L1…...
Zip压缩文件夹php打包函数代码
Zip压缩文件夹php打包函数代码,Zip相关函数是PHP的扩展功能,此函数可以直接复制使用。 以下是代码: <?php # 将文件夹的文件压缩到文件里 class Zip {/*** 将目标文件夹下的内容压缩到zip中(zip包含文件夹目录)* @param $sourcePath *文件夹路径 例: /home/test* @p…...
RISC-V交叉工具链riscv-gnu-toolchain编译
文章目录 1、下载2、编译1. 依赖安装2. 编译 3、运行 1、下载 $ sudo apt-get install git wget build-essential $ git clone https://github.com/riscv-collab/riscv-gnu-toolchain $ git checkout 2023.06.02注意上面 clone 的仓库,我们称其为构建脚本仓库&…...
我能“C“——指针进阶(上)
目录 指针的概念 1. 字符指针 2. 指针数组 3. 数组指针 3.1 数组指针的定义 3.2 &数组名VS数组名 3.3 数组指针的使用 4. 数组参数、指针参数 4.1 一维数组传参 4.2 二维数组传参 4.3 一级指针传参 4.4 二级指针传参 5. 函数指针 阅读两段有趣的代码&…...
SQLServer2008数据库还原失败 恢复失败
源地址:http://www.taodudu.cc/news/show-1609349.html?actiononClick 还原数据库问题解决方案 在还原数据库“Dsideal_school_db”时,有时会遇见上图中的问题“因为数据库正在使用,所以无法获得对数据库的独占访问权”,此时我们…...
【微服务部署】04-ForwardedHeaders
文章目录 1. ForwardedHeaders1.1 场景1.2 关键的HTTP头1.3 核心处理要点 1. ForwardedHeaders 1.1 场景 获取用户IP获取用户请求的原始URL 1.2 关键的HTTP头 X-Forwarded-ForX-Forwarded-ProtoX-Forwarded-Host 1.3 核心处理要点 设置PathBase设置ForwardedHeaders中间件…...
JVM 垃圾收集器
重点:CMS,G1,ZGC 主要垃圾收集器如下,图中标出了它们的工作区域、垃圾收集算法,以及配合关系。 Serial 收集器 Serial 收集器是最基础、历史最悠久的收集器。 如同它的名字(串行),…...
CSS 样式使用link和@import有什么区别
在页面导入样式时,使用link和import有以下区别: 位置:link标签可以放置在HTML文档的head或body中的任何位置,而import规则必须出现在CSS样式表的顶部。 加载方式:当浏览器解析到link标签时,会立即请求并加…...
LeetCode-2511-最多可以摧毁的敌人城堡数目
题目链接 代码实现: class Solution {/** 找 1 -> -1 的时候,经过0的最大个数* 解题思路:双指针*/public int captureForts(int[] forts) {int len forts.length;if(len1){return 0;}int max Integer.MIN_VALUE;boolean flag false;boo…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
MySQL 主从同步异常处理
阅读原文:https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主,遇到的这个错误: Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一,通常表示ÿ…...
