当前位置: 首页 > news >正文

玩客云 线刷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 的仓库&#xff0c;我们称其为构建脚本仓库&…...

我能“C“——指针进阶(上)

目录 指针的概念 1. 字符指针 2. 指针数组 3. 数组指针 3.1 数组指针的定义 3.2 &数组名VS数组名 3.3 数组指针的使用 4. 数组参数、指针参数 4.1 一维数组传参 4.2 二维数组传参 4.3 一级指针传参 4.4 二级指针传参 5. 函数指针 阅读两段有趣的代码&…...

SQLServer2008数据库还原失败 恢复失败

源地址&#xff1a;http://www.taodudu.cc/news/show-1609349.html?actiononClick 还原数据库问题解决方案 在还原数据库“Dsideal_school_db”时&#xff0c;有时会遇见上图中的问题“因为数据库正在使用&#xff0c;所以无法获得对数据库的独占访问权”&#xff0c;此时我们…...

【微服务部署】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 垃圾收集器

重点&#xff1a;CMS&#xff0c;G1&#xff0c;ZGC 主要垃圾收集器如下&#xff0c;图中标出了它们的工作区域、垃圾收集算法&#xff0c;以及配合关系。 Serial 收集器 Serial 收集器是最基础、历史最悠久的收集器。 如同它的名字&#xff08;串行&#xff09;&#xff0c…...

CSS 样式使用link和@import有什么区别

在页面导入样式时&#xff0c;使用link和import有以下区别&#xff1a; 位置&#xff1a;link标签可以放置在HTML文档的head或body中的任何位置&#xff0c;而import规则必须出现在CSS样式表的顶部。 加载方式&#xff1a;当浏览器解析到link标签时&#xff0c;会立即请求并加…...

LeetCode-2511-最多可以摧毁的敌人城堡数目

题目链接 代码实现&#xff1a; class Solution {/** 找 1 -> -1 的时候&#xff0c;经过0的最大个数* 解题思路&#xff1a;双指针*/public int captureForts(int[] forts) {int len forts.length;if(len1){return 0;}int max Integer.MIN_VALUE;boolean flag false;boo…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者&#xff1a;吴岐诗&#xff0c;杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言&#xff1a;融合数据湖与数仓的创新之路 在数字金融时代&#xff0c;数据已成为金融机构的核心竞争力。杭银消费金…...

Vue ③-生命周期 || 脚手架

生命周期 思考&#xff1a;什么时候可以发送初始化渲染请求&#xff1f;&#xff08;越早越好&#xff09; 什么时候可以开始操作dom&#xff1f;&#xff08;至少dom得渲染出来&#xff09; Vue生命周期&#xff1a; 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...

MyBatis中关于缓存的理解

MyBatis缓存 MyBatis系统当中默认定义两级缓存&#xff1a;一级缓存、二级缓存 默认情况下&#xff0c;只有一级缓存开启&#xff08;sqlSession级别的缓存&#xff09;二级缓存需要手动开启配置&#xff0c;需要局域namespace级别的缓存 一级缓存&#xff08;本地缓存&#…...

《信号与系统》第 6 章 信号与系统的时域和频域特性

目录 6.0 引言 6.1 傅里叶变换的模和相位表示 6.2 线性时不变系统频率响应的模和相位表示 6.2.1 线性与非线性相位 6.2.2 群时延 6.2.3 对数模和相位图 6.3 理想频率选择性滤波器的时域特性 6.4 非理想滤波器的时域和频域特性讨论 6.5 一阶与二阶连续时间系统 6.5.1 …...

一些实用的chrome扩展0x01

简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序&#xff0c;无论是测试应用程序、搜寻漏洞还是收集情报&#xff0c;它们都能提升工作流程。 FoxyProxy 代理管理工具&#xff0c;此扩展简化了使用代理&#xff08;如 Burp…...