在 PVE 7 上安装 Emby,创建家庭影音中心

前面两篇我们介绍了如何安装黑群晖以及 PVE 的硬件直通,今天我们继续介绍如何在 PVE 7 上安装家庭影音系统—Emby。

本篇文章的 Emby 是安装在 PVE 宿主机中的,并不是安装在群晖里的,还请区分。推荐不想进行硬件直通的用户进行此方法。

需要注意的是,如果要启用硬解功能,需额外订阅 Emby Premiere。

Emby 可以自动刮削媒体信息,但是前提要求媒体文件名符合 Emby 自动识别逻辑。更多信息另请参阅 Emby 媒体命名要求

推荐将不同类型的媒体文件分类在不同文件夹,并且上级有一个总文件夹,例如下图:

这样只需要挂载一个总文件夹即可。

一、在 PVE 中安装 Docker

Docker 官方给了自动安装脚本,只需要连上 PVE 的终端,输入以下命令:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

这里的“–mirror Aliyun”是指在阿里云的镜像进行下载,对大陆用户较为友好;如果想从官方途径下载,把其去掉即可。

安装完毕后,输入以下命令查验 Docker 版本:

docker --version

有例如下图回显则表示正确:

二、安装图形化 Docker 管理器:Portainer (可选)

该步骤可选,安装她对于以后管理 Docker 容器,镜像等比较方便,不用累死累活地记那些命令行了。但是创建新容器的时候还是推荐用命令行,这点在 Portainer 里不是很方便,且她还没有中文翻译。

要安装的话,首先输入以下命令创建新的数据卷(Volume):

docker volume create portainer_data

输入以下命令来下载镜像并启动容器:

docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest

完成后,用浏览器打开 https://ip地址:9443/ 即可访问后台。初次创建须设置密码。

三、将群晖中的共享文件夹挂载到 PVE 上

PVE 的宿主机是不能直接访问虚拟机里的数据的,我们需要将群晖中的硬盘映射到 PVE 中,就像以驱动器的形式映射到 Windows 上。

首先打开群晖后台,打开控制面板—共享文件夹,点击一下储存影片等媒体文件的文件夹,或者你要映射给 PVE 的文件夹,选择上面的“编辑”,再选择“NFS 权限”—“新增”:

在新弹出的窗口中,第一行的“~IP 地址”填写 PVE 本机的 IP 地址,勾选下图中的两个选项,然后点击保存:

记住左下角的“装载路径”,一会儿得用到,然后点击“保存”:

回到 PVE 的终端,安装 NFS 客户端:

apt install nfs-common

创建挂载目录(目录可以自定义名称):

mkdir -p /mnt/media

创建计划任务,使其开机自动挂载:

nano /etc/fstab

在文件末尾添加如下内容:

<群晖 IP 地址>:<群晖中的装载路径+存储媒体文件的路径> <PVE 的挂载目录> nfs defaults 0 0

例如,如果群晖 IP 地址为 10.23.33.3,群晖中的装载路径为 /volume2/syntour,PVE 中的挂载目录为 /mnt/media,媒体文件存储在syntour共享文件夹下的 /Emby_Media 目录中,则应输入以下命令:

10.23.33.3:/volume2/syntour/Emby_Media /mnt/media nfs defaults 0 0

然后按 Ctrl+O 保存,按 Ctrl+X 退出。

输入以下命令挂载目录:

mount /mnt/media

输入以下命令查看挂载目录中是否有对应群晖中的文件或文件夹:

ls /mnt/media

若有回显,则表示挂载成功:

若想取消挂载的话,删除 /etc/fstab 中新增的那一行,然后在终端中输入以下命令弹出挂载目录即可:

unmount /mnt/media

四、安装 Emby

开篇说过,Emby 并不是什么都免费的,有一些功能还要订阅其会员,价格不菲。对于我们这些普通老百姓,当然咯,还有开心版可以用。

先在 PVE 中创建一个空白目录,供 Emby 储存配置:

mkdir -p /emby/config

对于使用 Nvidia 显卡的小伙伴们,还需要几个额外步骤以让 Docker 可以调用 GPU(安装 nvidia-container-runtime,须手动将下面命令中的 sudo 去除):

curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | \
  apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | \
  tee /etc/apt/sources.list.d/nvidia-container-runtime.list
apt-get update
apt-get install nvidia-container-runtime

安装完成后,Docker 就可以调用 Nvidia GPUs 了。

输入以下命令来下载并创建原版 Emby

docker run -d \
    --name embyserver \
    --volume /emby/config:/config \ # 配置储存目录
    --volume /mnt/media:/mnt/share1 \ # 挂载的媒体目录
    --net=host \ # 启用 DLNA 及 Wake-on-Lan
    --device /dev/dri:/dev/dri \ # VAAPI/NVDEC/NVENC 硬解渲染节点
    --runtime=nvidia \ # 使用 NVIDIA GPUs
    --publish 8096:8096 \ # HTTP 端口
    --publish 8920:8920 \ # HTTPS 端口
    --env UID=0
    --env GID=0
    --env GIDLIST=0
    emby/embyserver:latest

输入以下命令来下载并创建特别版 Emby:

docker run \
--network=bridge \  # 也可以将 bridge 改成 host 以启用 DLNA
-p '8096:8096' \  # HTTP 端口
-p '8920:8920' \  # HTTPS 端口
-p '1900:1900/udp' \
-p '7359:7359/udp' \
-v /emby/config:/config \  # Emby 配置储存目录
-v /mnt/media/:/data \  # 挂载的媒体目录
-e TZ="Asia/Shanghai" \
--device /dev/dri:/dev/dri \  # VAAPI/NVDEC/NVENC 硬解渲染节点
--runtime=nvidia \ # 使用 NVIDIA GPUs
-e UID=0 \
-e GID=0 \
-e GIDLIST=0 \
--restart always \
--name emby \
-d lovechen/embyserver:latest

完成后,浏览器打开 http://PVE 的 IP 地址:8096,完成引导即可。

五、添加 Emby 媒体库

打开 Emby 后,点击右上角的小人,然后点击“管理 Emby Server”来进入后台管理面板:

点击左边菜单栏里的“媒体库”,然后点击上方的“新媒体库”来添加媒体。这里 Emby 的内容类型有电影、电视节目、混合内容等,Never 推荐电影和电视节目要分开放,电影就专门给电影就好了;电视节目可包含的种类多,例如电视剧,动漫番剧,纪录片和综艺等。混合内容则是所有内容都揉到一起。这里我们先添加个电影,在内容类型里选择“电影”,名称自定义,然后点一下文件夹旁边的“+”,然后找到 /data 目录(宿主机映射到 Docker 中的目录),如果还有子文件夹的话再点一下专门存电影的文件夹,然后点确定;没有的话直接点确定即可。然后进行该媒体库的设定,可以参照我的设定:

设置好后点击下面的“确定”,再点击上面的“扫描媒体库文件”。要想添加别的类型的媒体可重复上述步骤。

点击左侧菜单栏中的“首页”,不出意外的话挂载目录中的媒体文件应该会有显示了:

封面和名称可能不会正常显示,这涉及到刮削的问题了,我们以后再说。要想手动改的话可以把鼠标放在封面上,点击右下角的三个点:

再点击“识别”,输入电影名称或者选项中几个网站对应影片的 ID:

点击相应的电影,再点击“确定”就可以识别出来了:

六、配置硬解

打开Emby后台面板,点击左侧菜单栏的 “转码”,在 “启用硬件加速(如果可用)”下选择 “高级”,如果配置 Emby 正确的话,应该会出现 PVE 中的显卡(前提是没直通给虚拟机):

依据显卡情况决定勾选选项即可,然后滑到最下面保存。点开一部影片(最好是 4k 片,大多数情况下都需要显卡转下码才能在浏览器里播放),点击下面栏中的小齿轮,选择“播放统计”,如果出现小绿标了则说明硬解成功:

这里需要注意以下,播放 4k 影片还是推荐使用客户端,浏览器会出现很多问题,现在主流浏览器(除了 Safari)几乎都不支持 h.265 播放(或效果很差),Google Chrome 放着放着就自动暂停了,而用客户端几乎是没问题的。对于各平台的客户端,可参照这篇文章

参考文献:

Anonymous (2022) Emby Media Server. 地址: https://hub.docker.com/r/~ (访问于 28 Aug. 2022)

emby (2022) Emby Media Server. 地址: https://hub.docker.com/r/emby/embyserver (访问于 28 Aug. 2022)

Portainer (2022) Install Portainer with Docker on Linux. 地址: https://docs.portainer.io/start/install/server/docker/linux (访问于 28 Aug. 2022)。

菜鸟教程 (n.d.) Debian Docker 安装. 地址: https://www.runoob.com/docker/debian-docker-install.html (访问于 28 Aug. 2022)。

神奇码农 (2022) debian/ubuntu挂载NFS. 地址: https://www.sqmn666.com/archives/debianubuntu%E6%8C%82%E8%BD%BDnfs (访问于 28 Aug. 2022)

Digiprove sealCopyright secured by Digiprove © 2022 Never.