树莓派4B 安装Emby/Jellyfin服务端 开启硬件解码

第一步.安装Emby/Jellyfin

直接安装

安装Emby

https://emby.media/linux-server.html选择你树莓派对应的发行版,直接复制命令安装

安装好后,命令行输入下面命令

systemctl start emby-server.service //启动embyserver
systemctl enbale emby-server.service //设置开机启动
systemctl status emby-server.service //查看embyserver服务状态

启动成功后即可在 http://ServerIP:8096 访问,ServerIP是树莓派的IP地址。

安装Jellyfin

https://jellyfin.org/docs/general/administration/installing.html中根据你的发行版按照文档安装

systemctl start jellyfin.service //启动jellyfin
systemctl enbale jellyfin.service //设置开机启动
systemctl status jellyfin.service //查看jellyfin服务状态

Docker安装 除了镜像名字不同其他的都一样

Docker安装Emby

先安装Docker,然后去Dockerhub找到emby-server镜像 linuxserver/emby

#拉取docker镜像 会自动按照操作系统拉取相应的镜像 无论系统是32位还是64位
docker pull   linuxserver/emby 

#运行镜像  不要直接复制粘贴 先看下面的传入参数解释 按需修改 
#传参说明 例如 -v /a:/b 左边的/a是你系统中的实际路径,右边的/b是映射到容器中的路径
,docker run -d \
  --name=emby \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Asia/Shanghai \
  -p 8096:8096 \
  -p 8920:8920 `#optional` \
  -v /path/to/config:/config \
  -v /path/to/tvshows:/data/tvshows \
  -v /path/to/movies:/data/movies \
  -v /opt/vc/lib:/opt/vc/lib `#optional` \
  --device /dev/dri:/dev/dri `#optional` \
  --device /dev/vchiq:/dev/vchiq `#optional` \
  --device /dev/video10:/dev/video10 `#optional` \
  --device /dev/video11:/dev/video11 `#optional` \
  --device /dev/video12:/dev/video12 `#optional` \
  --restart unless-stopped \
  linuxserver/emby

Docker安装Jellyfin 除了镜像名字不同其他的都一样

#拉取docker镜像 会自动按照操作系统拉取相应的镜像 无论系统是32位还是64位
docker pull   linuxserver/jellyfin 

#运行镜像  不要直接复制粘贴 先看下面的传入参数解释 按需修改 
#传参说明 例如 -v /a:/b 左边的/a是你系统中的实际路径,右边的/b是映射到容器中的路径
,docker run -d \
  --name=emby \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Asia/Shanghai \
  -p 8096:8096 \
  -p 8920:8920 `#optional` \
  -v /path/to/config:/config \
  -v /path/to/tvshows:/data/tvshows \
  -v /path/to/movies:/data/movies \
  -v /opt/vc/lib:/opt/vc/lib `#optional` \
  --device /dev/dri:/dev/dri `#optional` \
  --device /dev/vchiq:/dev/vchiq `#optional` \
  --device /dev/video10:/dev/video10 `#optional` \
  --device /dev/video11:/dev/video11 `#optional` \
  --device /dev/video12:/dev/video12 `#optional` \
  --restart unless-stopped \
  linuxserver/jellyfin

运行成功后即可在 http://ServerIP:8096 访问,ServerIP是树莓派的IP地址。

docker传入参数详解

参数功能
-p 8096Http WebUI。
-p 8920Https webUI(您需要设置自己的证书)。
-e PUID=1000用于UserID-指定用户ID 用于解决权限问题
-e PGID=1000用于GroupID-指定组ID 用于解决权限问题
-e TZ=Asia/Shanghai指定时区 默认是上海
-v /config配置文件位置。这可能会变得非常大,对于一个大型集合,可能会达到50gb +。
-v /data/tvshows媒体在这里。添加尽可能多的需要例如/data/movies/data/tv等等。
-v /data/movies媒体在这里。添加尽可能多的需要例如/data/movies/data/tv等等。
-v /opt/vc/libRaspberry Pi OpenMAX的路径libs可选
--device /dev/dri仅当您要使用Intel或AMD GPU进行硬件加速视频编码(vaapi)时才需要。
--device /dev/vchiq仅当您要使用Raspberry Pi OpenMax视频编码(Bellagio)时才需要。
--device /dev/video10仅在要使用Raspberry Pi V4L2视频编码时才需要。
--device /dev/video11仅在要使用Raspberry Pi V4L2视频编码时才需要。
--device /dev/video12仅在要使用Raspberry Pi V4L2视频编码时才需要。
参数作用

PUID和PGID可以用来指定用户ID和组ID,可以解决-v传入目录时权限不足的问题,将其传入为目录拥有者ID即可 查询可以使用下面的命令 比如我的目录拥有者ID是dragonfsky 当然也可以都设置成0 即拥有root权限 但这可能会导致安全问题.

[dragonfsky@dragonfsky-mi ~]$ id dragonfsky
用户id=1000(dragonfsky) 组id=1001(dragonfsky) 组=1001(dragonfsky),998(wheel),991(lp),3(sys),90(network),98(power),1000(autologin)

树莓派硬件解码方式有两种

OpenMAX(Raspberry Pi)

Raspberry Pi OpenMAX的硬件加速用户需要通过在运行或创建容器时传递以下选项,将/ dev / vchiq视频设备安装在容器中以及系统OpenMax库中:

--device=/dev/vchiq:/dev/vchiq
-v /opt/vc/lib:/opt/vc/lib

V4L2(Raspberry Pi)

Raspberry Pi V4L2的硬件加速用户将需要在运行或创建容器时通过传递以下选项来将其/ dev / video1X设备安装在容器内:

--device=/dev/video10:/dev/video10
--device=/dev/video11:/dev/video11
--device=/dev/video12:/dev/video12

第二步.增加GPU内存

要使用硬件加速,我们需要给树莓派GPU分配更多的内存。修改/boot/config.txt中的gpu_mem字段,如果没有的话就增加。我使用的发行版是Manjaro arm 64位,默认的设置gpu_mem=96,我将其改成gpu_mem=320。当然如果你内存够多的话可以考虑加多一点。

#这是我修改后的显示
[root@dragonfsky ~]# cat /boot/config.txt
# See /boot/overlays/README for all available options

gpu_mem=320
initramfs initramfs-linux.img followkernel
kernel=kernel8.img
arm_64bit=1
enable_gic=1
disable_overscan=1

#enable sound
dtparam=audio=on
hdmi_drive=2

#enable vc4
dtoverlay=vc4-fkms-v3d
max_framebuffers=2

改完以后重启即可生效。接下来就可以直接在emby/jellyfin中开启硬件转码加速

emby-点击设置-服务器-转码
emby-开启硬件加速
jellyfin-设置-控制台-播放

选择开启硬件加速即可,我这里把临时转码改到了USB硬盘上,默认路径是在config文件夹下,建议尽量把这个保存路径放在外置硬盘上。如果是SD卡装系统的话也尽量把SWAP关掉,开启了反而会让系统变卡并且消耗SD卡寿命。

总结

其实树莓派这性能就算开启了硬件加速也很难流畅的转码,经常CPU就跑满了 O(∩_∩)O哈哈哈~。如果不需要硬件转码可以直接在 用户 设置中,把允许转码取消。

emby-用户
jellyfin-用户