LXC安装jellyfin并开启硬件转码

2021-01-27 19:10:08 26点赞 132收藏 19评论

创作立场声明:需要一台安装有proxmox的机器,安装教程在社区有很多大佬写过。用于容器硬解的显卡是intel核显。安装过程需要一点点linux的知识。

前言

如果你是一个proxmox用户又恰好装了群晖,想让群晖里的docker里装的jellyfin使用硬件转码是一件十分复杂的事情。另外,如果为了使用显卡硬件转码而安装一个虚拟机也会十分复杂,主要原因是intel显卡直通的配置十分复杂而且成功与否因板而异,docker挂载显卡设备比较麻烦。

最简单的方法莫过于直接将jellyfin安装到宿主机的debian系统中,可惜这样做不是很优雅。jellyfin侵入了proxmox的环境,如果对linux不是非常熟悉,在管理jellyfin时可能会影响到其他软件。LXC提供了一套很好的解决方案,在保留了proxmox优秀的管理能力的同时,又让配置不是很复杂。

最直观的感受就是在安卓手机使用proxmon管理虚拟机,可以看到虚拟机的性能曲线,可以方便地扩缩容,还可以直接在手机上进入某个系统的控制台。摸索LXC挂载显卡花了不少时间,写个文章让更多人避免掉坑。

创建支持挂载显卡的容器

创建 CT时注意取消选中非特权容器。访问硬件需要特权容器,我创建的容器ID为109 (记住这个ID后文要用)

创建109容器创建109容器

系统我选择了ubuntu18.04,其他系统操作也一样

使用ubuntu1804模板使用ubuntu1804模板

网络设置一个 ip,注意 ip 需要加上 netmask 也就是后面的`/24`

网络网络

配置完成后直接启动容器。

在容器中安装jellyfin

启动容器以后先配置一下软件源,具体操作可以参考阿里云镜像源。

这一步可以选做,用默认镜像源在国内只是下载速度会慢一些。

然后把软件都升级一下

apt update

apt upgrade

接着根据官方教程安装

顺便搬运一下官网的安装流程

sudo apt install apt-transport-https software-properties-common

sudo add-apt-repository universe

wget -O - https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | sudo apt-key add -

echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/ubuntu $( lsb_release -c -s ) main" | sudo tee /etc/apt/sources.list.d/jellyfin.list

sudo apt update

sudo apt install jellyfin

安装完后执行 service jellyfin status,显示状态为 running 说明安装成功。

jellyfin服务状态jellyfin服务状态

在浏览器中输入 http://容器ip:8096 就可以进入jellyfin,对显卡硬解没有需求的值友来说,再把nas的电影目录挂载到容器中,已经可以开始用了。如果希望jellyfin能进行实时转码,cpu又不太好可以接着配置显卡硬解。


重头戏,配置显卡挂载

第一步 安装宿主机的显卡驱动

以下操作在宿主机执行

以下操作在宿主机执行

以下操作在宿主机执行

1. 进入宿主机的shell,常规操作先更新一下。

apt update

2. 安装驱动和检测工具。

apt install i965-va-driver vainfo

3. 检查显卡编解码是否正常

执行vainfo,如果显示出支持的各种编解码信息(Supported profile and entrypoints)说明驱动安装成功。

vainfo

会输出以下内容:

root@pve:~# vainfo

error: can't connect to X server!

libva info: VA-API version 1.4.0

libva info: va_getDriverName() returns 0

libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so

libva info: Found init function __vaDriverInit_1_4

libva info: va_openDriver() returns 0

vainfo: VA-API version: 1.4 (libva 2.4.0)

vainfo: Driver version: Intel i965 driver for Intel(R) Coffee Lake - 2.3.0

vainfo: Supported profile and entrypoints

VAProfileMPEG2Simple : VAEntrypointVLD

VAProfileMPEG2Simple : VAEntrypointEncSlice

VAProfileMPEG2Main : VAEntrypointVLD

VAProfileMPEG2Main : VAEntrypointEncSlice

VAProfileH264ConstrainedBaseline: VAEntrypointVLD

VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice

VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP

VAProfileH264Main : VAEntrypointVLD

VAProfileH264Main : VAEntrypointEncSlice

VAProfileH264Main : VAEntrypointEncSliceLP

VAProfileH264High : VAEntrypointVLD

VAProfileH264High : VAEntrypointEncSlice

VAProfileH264High : VAEntrypointEncSliceLP

VAProfileH264MultiviewHigh : VAEntrypointVLD

VAProfileH264StereoHigh : VAEntrypointVLD

VAProfileVC1Simple : VAEntrypointVLD

VAProfileVC1Main : VAEntrypointVLD

VAProfileVC1Advanced : VAEntrypointVLD

VAProfileNone : VAEntrypointVideoProc

VAProfileJPEGBaseline : VAEntrypointVLD

VAProfileJPEGBaseline : VAEntrypointEncPicture

VAProfileVP8Version0_3 : VAEntrypointVLD

VAProfileHEVCMain : VAEntrypointVLD

VAProfileHEVCMain10 : VAEntrypointVLD

VAProfileVP9Profile0 : VAEntrypointVLD

VAProfileVP9Profile2 : VAEntrypointVLD

如果执行报错或者没有正确试别解码配置,检查是否阻止了模块加载。(比如配置显卡直通的时候会配置驱动黑名单,让宿主机不要加载显卡的驱动,让位给vfio。后续会有显卡直通的文章发布,篇幅比较长现在还在进行重新排版,张大妈的文章编辑器不能直接用markdown还是有点麻烦)

如果有问题欢迎在评论区留言。写这篇文章的时候用于演示的CPU是G5400,核心显卡型号为hd600。


第二步 让容器可以使用显卡

1. 获取显卡分组信息

这部分操作仍然需要在宿主机执行,输入命令:

ls -l /etc/dri

输出如下:

root@pve:~# ls -l /dev/dri/

total 0

drwxr-xr-x 2 root root 80 Oct 13 12:39 by-path

crw-rw---- 1 root video 226, 0 Oct 13 12:39 card0

crw-rw---- 1 root render 226, 128 Oct 13 12:39 renderD128

这里的操作是挂载显卡的关键。先找到card0,可以看到设备号"226,0",再找到renderD128,可以看到设备号为"226,128"。记下card0的设备号为226:0,renderD128的设备号为226:128。

2. 将显卡挂载到虚拟机

proxmox的每个lxc都有一个配置文件,这些容器配置文件放在`/etc/pve/lxc`下,命名为 "虚拟机ID.conf"。下面的所有109都是指容器ID,如果你的容器ID不是109需要自行替换命令中的109。

编辑109号容器配置,命令:

nano /etc/pve/lxc/109.conf

在配置文件末尾加入下面几行

lxc.cgroup.devices.allow: c 226:0 rwm

lxc.cgroup.devices.allow: c 226:128 rwm

lxc.cgroup.devices.allow: c 29:0 rwm

lxc.autodev: 1

lxc.hook.autodev: /var/lib/lxc/109/mount_hook.sh

其中226:0和226:128是上一步获得的`设备号`。

使用nano创建mount_hook.sh。命令:

nano /var/lib/lxc/109/mount_hook.sh

在文件中加入

mkdir -p ${LXC_ROOTFS_MOUNT}/dev/dri

mknod -m 666 ${LXC_ROOTFS_MOUNT}/dev/dri/card0 c 226 0

mknod -m 666 ${LXC_ROOTFS_MOUNT}/dev/dri/renderD128 c 226 128

mknod -m 666 ${LXC_ROOTFS_MOUNT}/dev/fb0 c 29 0

以上这些配置的目的是让容器拥有访问显卡设备的权限。

第三步 验证容器是否可以进行硬解

以下操作全部在容器的控制台中完成。接下来进入容器控制台。

1. 检查显卡设备是否存在,命令:

ls /dev/dri

应该存在两个设备,分别是 card0 renderD128,说明容器成功挂载了这两个设备。

2. 检查容器中解码是否正常

vainfo

如果与刚才宿主机执行这条命令输出内容相似说明解码正常。

3. 启用jellyfin硬件转码

在jellyfin中硬件转码的设置在控制台->服务器->播放

进入控制台进入控制台

把硬件加速改为VAAPI,在下面的VAAPI设备里输入/dev/dri/renderD128。此时只要打开的视频编码是显卡支持硬解的编码类型,转码就会使用显卡完成,大幅度降低cpu的压力。

配置硬件加速配置硬件加速

配置硬件加速配置硬件加速

如果在看电影过程中发现黑屏或者花屏,可以适当关闭一部分编码的硬件编码。

总结

LXC安装jellyfin搭配手机控制软件proxmon可以直观地监视容器与虚拟机的状态,让家庭影音系统的搭建更加方便灵活。配合硬解可以很好地利用上因为安装了proxmox而闲置的核显资源。

proxmonproxmon

目前已经发布了两篇关于proxmox的文章,All in One计划成功启航,欢迎关注,这篇文章是我半年前突发奇想在LXC中安装jellyfin的流程的记录,为了发到社区对原来的博客进行了重新排版和内容优化。现在我正在All in One设备完成这篇文章,如果你对All in One感兴趣请多多点赞评论,后续还会更新更多教程文章。

展开 收起

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

1849元起

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

1796元起

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

2499元起

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

3499元起

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

1999元起

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

5899元起

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

2599元起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2499元起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2179元起

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

3199元起

UGREEN 绿联 DH2600 双盘位NAS (N5105、4GB)

UGREEN 绿联 DH2600 双盘位NAS (N5105、4GB)

1349元起

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

2799元起

TERRAMASTER 铁威马 F4-424 Pro 四盘位NAS(Intel Core i3、32GB)黑色

TERRAMASTER 铁威马 F4-424 Pro 四盘位NAS(Intel Core i3、32GB)黑色

3599元起

ZSpace 极空间 私有云 T2 2盘位NAS存储(RK 3568、4GB)

ZSpace 极空间 私有云 T2 2盘位NAS存储(RK 3568、4GB)

1699元起

ZSpace 极空间 私有云Z2Pro 四核2盘位NAS家庭个人云网络存储服务器手机平板扩容适用iPhone15 水

ZSpace 极空间 私有云Z2Pro 四核2盘位NAS家庭个人云网络存储服务器手机平板扩容适用iPhone15 水

1299元起

sgwbox 拾光坞 N3 星光版V(瑞芯微RK3566,2G,支持docker)

sgwbox 拾光坞 N3 星光版V(瑞芯微RK3566,2G,支持docker)

387.78元起
19评论

  • 精彩
  • 最新
  • 你好,有博客吗?发现你的一些教程我之前也碰到过类似的坑,后来摸索自己解决了一些。 [高兴] 想去你博客看看更多文章,看看有没有更多的内容,学习一下。

    校验提示文案

    提交
    blog.timzhong.top欢迎关注,也欢迎加好友,这几天会更新博客添加建议方式

    校验提示文案

    提交
    *联系方式

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 请问jellyfin如何读取nas的影音资源?纯小白一个,按照楼主的教程搭建了jellyfin,却不知道如果在媒体库中连到黑裙的文件夹

    校验提示文案

    提交
    挂载nfs或者smb

    校验提示文案

    提交
    收起所有回复
  • 小白求教这样搞完之后可以实现pve宿主设备hdmi直接输出图像声音吗,想搞win10核显直通折腾半个月都没成功 [喜极而泣]

    校验提示文案

    提交
    去看看
    e3 1265l v3也是折腾了很久不能直通,按这个教程核显直通成功。总结踩坑经验:1 安装旧版驱动时断掉外网,防止win10自动安装驱动;并且,关闭数字强制签名验证,测试旧版驱动,可能要测试很多版本。2 vga:none模式不能成功,可以用vga:std试试,成功后禁用显示器1 只用直通的显示器2 就行。3 可能直通成功后声卡无输出,这又要试win10的版本,实测21h2可用。

    校验提示文案

    提交
    🐮🐮🐮我不搞了

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • lxc安装jellyfin后转码会占用硬盘,满了之后就没法转码了,怎么解决?

    校验提示文案

    提交
    容量给大一点?

    校验提示文案

    提交
    这样好像不太行,我查了一下,其他人也有这个问题,但是只有网页端播放的时候才会出现。现在给了25G,还是不够用。有空试试别的客户端播放有没有问题。但是很奇怪,你们都没碰见这个问题吗?而且磁盘满了之后lxc就完蛋了,重启也不行。

    校验提示文案

    提交
    收起所有回复
  • 第二步 让容器可以使用显卡
    1. 获取显卡分组信息
    下面的
    ls -l /etc/dri
    写错了
    应该是ls -l /dev/dri

    校验提示文案

    提交
  • 行文清晰通顺,点赞

    校验提示文案

    提交
  • 不知道问题在哪儿,LTC加载宿主驱动文件目录失败,感觉就是没加载上

    校验提示文案

    提交
    问题出在lxc.cgroup.devices.allow这里,网上都是抄来抄去,但在较新版本里,参数已改成了cgroup2

    校验提示文案

    提交
    收起所有回复
  • 请问 "lxc.cgroup.devices.allow: c 29:0 rwm" 中 " 29:0" 代表什么设备?

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
相关好价
最新文章 热门文章
132
扫一下,分享更方便,购买更轻松