当前位置:首页 > 技术教程 > 正文

[我的NAS+HTPC折腾之旅]篇三:U-NAS安装Jellyfin并实现核心显卡硬解转码

前面两篇文章中,我已经将U-NAS和Kodi都部署好,能够实现NAS+HTPC的基本功能。所以从这一篇开始,我会介绍U-NAS和Kodi中可以安装的一些实用或者好玩的插件。写到这一篇,其实懂的朋友看标题就知道我要说什么,不过我还是要墨迹一遍,解释一下装jellyfin的作用是什么。首先,Kodi是一款优秀的媒体播放器,功能强大,但是主要是用于局域网内的本地播放。如果你用手机想看家里服务器上的电影文件,就算你的网速跟得上,钱包也不一定跟得上。Jellyfin的转码功能就是把服务器里面的文件预先转成一个相对低码率占用带宽比较小的视频流,这样能够节约带宽资源,传统的解码方式是CPU通过ffmpeg实现转码,这种对NAS的CPU压力很大,尤其很多的NAS都是低功耗设计,CPU本身的能力并不是很强。引入GPU解码能够很大程度上解放CPU的负担,让专业的GPU做转码的事就是篇文字的初衷。说到这里还需要说一下自身的硬件平台,是一个1017u的一体机,CPU比较孱弱,GPU是intel的HD核心显卡,如果需要用独立显卡去转码的朋友可能需要在U-NAS中去处理下显卡的驱动问题,朋友们可以根据网上的其他资料自行研究,我没有类似的情况就不展开介绍,为了不折腾已经配置好的实体机,以下设置过程在虚拟机中完成。

创建磁盘群组建立Docker文件夹

我们在U-NAS的控制中心里找到RAID管理器和逻辑卷管理,如果在U-NAS下只挂载了一块硬盘可以直接在逻辑管理器中创建群组,把单盘格式化挂载。如果有组RAID的需要则需要在RAID管理器中设置RAID。

本文模拟了4块硬盘的情况,这里显示出RAID0,1,5,6,10 这几种RAID方式,一般来说RAID0是两块硬盘同时读写,速度最快,但是其中一块盘故障数据全丢。RAID1是2块盘互相备份,但是只能用最小容量的一块盘的容量,安全性比较好。RAID5需要至少3块盘,用来做2用1备或者3用1备这种方式,当1块出现问题可以及时更换重组阵列。RAID6则需要至少4块盘,具有更高的容错能力,可以任意2块盘损坏的时候进行阵列重组。RAID10就是RAID1和RAID0的结合,首先是4块盘两两组合成RAID1,两个RAID1再组RAID0,这种方式能够兼顾读写性能和安全性,但是他只能允许出现这两组里面中分别最多坏一块盘,如果某个raid1组当中两块盘全坏掉,数据也是无法重组的。RAID介绍到这,希望能帮到不同需求的小伙伴,因为我是在虚拟机中演示就随便填了一个RAID10,大家还是根据自己的情况选择。如果读RAID不需要,可以在磁盘群组中直接把所有的盘都勾起来,系统会自动形成一个存储池容量是所有硬盘的加和,这种方式更适合有多块不同容量的用户。

创建raid10存储池,起名unas创建raid10存储池,起名unas

逻辑卷管理中创建卷组,起名123逻辑卷管理中创建卷组,起名123

创建共享文件夹docker,记住框里面的路径,后续在jellyfin设置中会用到。创建共享文件夹docker,记住框里面的路径,后续在jellyfin设置中会用到。

       点击左上角的菜单,找到u-file资源管理器,在docker文件夹中创建另外两个普通文件夹config,cache以及media三个文件夹。       点击左上角的菜单,找到u-file资源管理器,在docker文件夹中创建另外两个普通文件夹config,cache以及media三个文件夹。

U-NAS安装Docker套件

进入app管理器,在右上角的搜索框里搜多docker找到docker控件进行安装。进入app管理器,在右上角的搜索框里搜多docker找到docker控件进行安装。

我们把存储目录设置成docker,点应用,然后点管理docker我们把存储目录设置成docker,点应用,然后点管理docker


第一次登陆需要输入用户名和密码,默认用户名为admin, 密码需要自己设置一个8位数的密码。进入只有会出现另一个提示,我们选择最左边的local也就是本地管理,这时候就看到docker的主页面。虽然页面是英文的,不过还算简明,后面我们就在docker中完成jellyfin的安装和部署。

在docker页面登陆docker在docker页面登陆docker

进入页面后,估计大家跟我一样一脸迷茫。后来我才搞清楚其实这个界面本身就是在docker环境下运行的一个容器。不管那么多,我们先点击页面中间的小鲸鱼图标,进入到本机的容器设置页面。

U-NAS安装Jellyfin并实现核心显卡硬解转码

进入设置页面以后,找到左边的images进入到容器镜像的搜索下载页面。进入设置页面以后,找到左边的images进入到容器镜像的搜索下载页面。

image这里输入jellyfin/jellyfen 点pull the imageimage这里输入jellyfin/jellyfen 点pull the image

然后点击左侧container选项卡,点击右侧的add container然后点击左侧container选项卡,点击右侧的add container

Name这里写jellyfin,镜像输入jellyfin后会自己关联出名字,如图填写完整。Name这里写jellyfin,镜像输入jellyfin后会自己关联出名字,如图填写完整。

网页下拉到底部,这里需要对容器的网络,硬盘文件挂载,启动参数等做设置。

首先点最左边的commands & logging选项卡,这里有我们需要填写的参数。在CMD栏中输入:

--device=/dev/dri:/dev/dri

这段代码的作用是让docker中的jellyfin能够直接调用主机中的核心显卡,截图中两侧的单引号是软件自动加上的,输入时不需填写引号。

CMD栏填入 --device=/dev/dri:/dev/driCMD栏填入 --device=/dev/dri:/dev/dri

然后我们填写第二个选项卡volumes,这个选项卡是把容器的文件映射到本地硬盘上,便于修改和设置。我们需要把

左侧红色框内根据自己的共享文件夹设置中自己设置共享目录的路径。左侧红色框内根据自己的共享文件夹设置中自己设置共享目录的路径。

接下来network选项卡里我选择host,这样设置最简单,避免加好多参数。对自己有自信的朋友可以尝试bridge,设置会稍复杂一点。

U-NAS安装Jellyfin并实现核心显卡硬解转码

接下来是Restart policy,这里我们点选always

U-NAS安装Jellyfin并实现核心显卡硬解转码

这些设置完成以后就可以点界面上方的按钮deploy the container来运行容器,浏览器新开个窗口输入unas的ip地址:8096,例如我的unas的ip地址是192.168.18.128那么进入jellyfin的地址就是192.168.18.128:8096。进入后我们就进入到软件的设置界面。

要输入的地址后:8096要输入的地址后:8096

界面首先让我们选择语言,我们选simple chinese中文。

进入后,我们填写登陆jellyfin的用户名密码,这个用户名和密码不一定和unas保持一致,可以自由填写。

U-NAS安装Jellyfin并实现核心显卡硬解转码

然后我们点击,添加媒体库,这里我索引一部电影做例子。

U-NAS安装Jellyfin并实现核心显卡硬解转码

这里我们选择类型是movie,名称也是movie,索引目录选择存放电影的目录。

U-NAS安装Jellyfin并实现核心显卡硬解转码

U-NAS安装Jellyfin并实现核心显卡硬解转码

设置好点ok,一路ok,登陆后进入主页面,点左侧的三横杠拉出菜单,点击控制台。

U-NAS安装Jellyfin并实现核心显卡硬解转码

然后找到播放,打开硬件转码,选择vaapi向下找到确定。

这时候可以尝试播放下影片看看转码是否起作用,如果硬解没有打开会跳出。

U-NAS安装Jellyfin并实现核心显卡硬解转码

设置好之后点小房子图标退回到jellyfin主页面,这时候在/media目录的电影已经被扫描出来了,点击进去看看能否播放。如果能放说明设置没问题,大家可以多尝试几部片子。

U-NAS安装Jellyfin并实现核心显卡硬解转码

使用感受和总结

说心里话,U-NAS这个docker设置界面刚开始也是把我折腾个半死。这个Portainer没有中文界面还不是最麻烦的,更麻烦的地方是很多设置不知道在哪里去找,与我熟悉的群辉和omv里面的设置界面完全不一样。好在也算折腾过一些NAS的人,磕磕绊绊的算是弄出来了,不然第二篇里立的flag就要自己打脸了。如果说U-NAS和omv还有黑群的区别,从我目前的接触看U-NAS的文件管理界面相比于omv简单很多,但是不如群辉直观,而且像docker这么重要的套件没有自己开发一个,感觉风格上东拼西凑,没有啥整体感,这个体验比不上群辉和omv。但是U-NAS也有自己的优点,比如基于debian 9,可以更好的支持硬件,能实现GPU转码,这些在比较封闭的群辉中是难以实现的。另外,文件管理器这些相比omv来说更接地气,也更容易上手,安卓端的APP我没有都用,感觉没有群辉那么精致但至少提供了,比起omv大量的手动配置操作已经好很多了。目前黑群是相当流行的,毕竟套件丰富好用,omv取了一个极客的思路,给了使用者很大的自由,自己动手。U-NAS更像是一个在中间找平衡的产物,不失为一种新的选择。


更新时间 2023-02-10