树莓派 篇五:树莓派安装 Jellyfin 媒体服务器打造私人影音中心及硬件加速配置
jellyfin介绍
jellyfin是一个免费的媒体系统软件,可以让你控制媒体的管理和流式传输,是emby和plex的替代产品,可以通过多个应用程序将媒体从专用服务器提供给最终用户设备。Jellyfin是Emby 3.5.2发行版的衍生版本,并移植到.NET Core框架以实现全面的跨平台支持。
jellyfin目前支持的平台有:Android、Android TV、Amazon Fire TV、UWP、 Apple iOS(目前正在测试阶段)等等平台,你可以参见jellyfin支持平台获得更多的信息。
jellyfin安装
Jellyfin 在树莓派上也是可以通过 docker 安装的,docker 安装在各个平台上几乎没有区别,而且网上的教程几乎都是基于 docker 安装的,我这里就不再讨论了。如果有需要,将在以后另开个 docer 的专栏。
以下记录一下在树莓派上手动安装和配置 Jellyfin ,更多详细步骤见官方网站。
如果尚未安装APT的HTTPS传输,请执行以下操作:
sudo apt install apt-transport-https
导入GPG签名密钥(由Jellyfin团队签名):
wget -O - https://repo.jellyfin.org/debian/jellyfin_team.gpg.key | sudo apt-key add -
在以下位置添加存储库配置/etc/apt/sources.list.d/jellyfin.list:
echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/debian $( lsb_release -c -s ) main" | sudo tee /etc/apt/sources.list.d/jellyfin.list
也可以直接编辑 /etc/apt/sources.list.d/jellyfin.list
deb [arch=armhf] https://repo.jellyfin.org/debian buster main
注意:debian 支持的版本是stretch和buster。具体要根据你树莓派上的版本来设置(通过命令 lsb_release -c -s 查看)。
更新APT存储库:
sudo apt update
安装Jellyfin:
sudo apt install jellyfin
使用您选择的工具管理Jellyfin系统服务:
sudo service jellyfin status
sudo systemctl restart jellyfin
sudo /etc/init.d/jellyfin stop
接下来,我们通过通过浏览器打开:内网的IP+8096端口 没错你看到的就是Jellyfin的初始化页面。我们按照我下图提示的步骤一步一步设置,并且一步一步点击“Next”就可以啦。过程很简单照做即可。
选择语言
设置默认用户名和密码
这里暂不添加媒体库,直接点击Next
选择语言和国家
保持默认,直接Next
点击Finish完成初始化
经过上面一顿猛如虎的操作之后,初始化也就完成了。接下来继续
点击右上角的图标,接着点击“媒体库”,点击“添加媒体库” 。
选择类容类型,这里根据你的片源的类型。选择语言和国家。最后点击那个文件夹的+号 来绑定媒体文件夹。
在弹出的页面中,选择视频存放的目录就可以啦。
回到主页,就可以看到你刚刚添加的媒体库了。但是如果里面还没有看到影片?那么确定你把影片已经放到上面选择的文件夹中了。
另外,默认树莓派外挂移动硬盘 Jellyfin 是没有足够权限访问的,如果视频在移动硬盘中,可以将移动硬盘赋与足够权限:
sudo chmod 775 /media/pi/ -R
如果还是没看到?不要紧,我们点击“刷新元数据”就可以啦。
电影是加载出来了,但是没有封面怎么办?点击影片的“识别”,并录入电影名字就可以选择封面咯。
最后~以下是播放页面。各种浏览器都可以愉快的播放。另外安卓有客户端。苹果嘛再等等。
硬件加速
Jellyfin支持使用FFMpeg进行视频编码/解码的硬件加速(HWA)。FFMpeg和Jellyfin可以通过视频加速API支持多种硬件加速实施,例如Intel Quicksync(QSV),AMD AMF,nVidia NVENC / NVDEC,OpenMax OMX和MediaCodec。
VAAPI是一种视频加速API,使用libva与本地驱动程序接口以提供HWA。QSV使用VAAPI的修改(分支)版本,并将其与libmfx及其专有驱动程序(QSV支持的处理器列表)连接。
操作系统 推荐的硬件加速
Linux QSV, NVENC, VAAPI
Windows QSV, NVENC, AMF, VAAPI
MacOS None (VideoToolbox Coming Soon)
Android MediaCodec, OMX
树莓派 OMX
Raspberry Pi 3和4
将Jellyfin服务用户添加到视频组,以允许Jellyfin的FFMpeg进程访问编码器,然后重新启动Jellyfin。
sudo usermod -aG video jellyfin
sudo systemctl restart jellyfin
注意如果您使用的是Raspberry Pi 4,则可能需要运行sudo rpi-update内核和固件更新。
在服务器仪表板的“转码”选项卡上的“硬件加速”选择 OpenMAX OMX。FFmpeg 路径可以使用自带的/usr/lib/jellyfin-ffmpeg/ffmpeg,也可以选择自己安装的:/usr/bin/ffmpeg
sudo apt-get install ffmpeg
转码路径:/var/lib/jellyfin/transcodes 如果没有这个文件夹,就要用以下命令创建:
sudo mkdir /var/lib/jellyfin/transcodes
更改分配给GPU的内存量。GPU无法同时处理加速的解码和编码。
sudo nano /boot/config.txt
对于RPi4,添加以下行 gpu_mem=320 此处查看更多
对于RPi3,添加以下行 gpu_mem=256
当然您可以设置任何值,但是4K HEVC的建议数量为320 。
也可以通过树莓派配置界面设置:
sudo raspi-config
选择 7、Advanced Options -- A3 Memory Split 调整分配给GPU的内存。
验证CPU和GPU内存之间的分配:
vcgencmd get_mem arm && vcgencmd get_mem gpu
监视CPU的温度和频率:
vcgencmd measure_temp && vcgencmd measure_clock arm
注意
RPi4当前不支持硬件加速解码,仅支持H.264的硬件加速编码。需要主动散热(加装风扇等散热器),被动散热不足以进行转码。对于RPi3还处在测试阶段,还无法实现实时转码。
要验证您使用的是正确的库,请对您的转码日志运行此命令。可以在管理控制台>日志和/var/log/jellyfin中找到(如果通过存储库则可以找到)。
grep -A2 'Stream mapping:' /var/log/jellyfin/ffmpeg-transcode*
这返回了以下结果。
Stream mapping:
Stream #0:0 -> #0:0 (hevc (native) -> h264 (h264_omx))
Stream #0:1 -> #0:1 (aac (native) -> mp3 (libmp3lame))
Stream #0:0 使用软件解码HEVC,使用硬件加速转码。
Stream #0:1 结果是一样的。解码比编码容易,因此总体上来说是好的结果。硬件解码正在进行中。
更详细的说明见官方网站
树莓派3B——打开硬件加速OpenGL
目前系统已经内置OpenGL driver,但默认是关闭的而使用较慢的软件渲染。注意:Lite版系统是不支持的,因为opengl离不开桌面。一般来说该选项仅支持pi2及以后的版本,当然也可以找一下Pi 1/0开启opengl的方法(https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=166495)
一、打开方法:
sudo raspi-config//打开Advanced Options→GL Driver,选择第二GL (Full KMS) Desktop Drivers或第三选项GL (Fake KMS) Desktop Driver
或者直接在/boot/config.txt里添加一行dtoverlay=vc4-kms-v3d或dtoverlay=vc4-fkms-v3d,分别对应上面两项。
修改之后需要重启树莓派,输入 sudo ls /dev/dri -l 之后若如下显示,则说明支持显卡硬解,关闭 GL 后是没有以下输出的 。
输出 card0 renderD128
pi@raspberrypi:~$ sudo ls /dev/dri -l
总用量 0
drwxr-xr-x 2 root root 80 4月 14 12:45 by-path
crw-rw----+ 1 root video 226, 0 4月 14 12:45 card0
crw-rw----+ 1 root render 226, 128 4月 14 12:45 renderD128
KMS是指Kernel Mode-Setting,理论上该模式会更有效率,因为是通过内核输出的,而Fake KMS则有更好的兼容性,比如打开Full KMS后使用realvnc远程会黑屏等。
需要注意的是,打开该选项可能会导致标准摄像头或者基于OpenGL ES(OpenGL的子集)的视频渲染软件失效(比如kodi),不支持DSI接口的官方显示屏。
二、测试是否已经正确打开OpenGL
在终端打开
sudo apt-get install mesa-utils
glxgears
如果使用的是标准的软件渲染模式,可见三个齿轮运转大概30帧/s并伴有闪烁卡顿,颜色显示也不正常。如果使用的是opengl硬件加速模式,则有60帧/s,不会伴有闪烁,颜色也显示正常。
sudo apt-get install neverball
这个游戏在软件渲染模式之下几乎是不能打开的,即使打开了也非非常卡顿。
其他opengl应用或游戏(建议GPU mem设置不低于256MB):
They Need To Be FedSuper Crate BoxMaldita Castilla —— an atmospheric action arcade game
Stellarium —— an Astronomy program
NeverBall —— a puzzle game
NeverPutt —— mini Golf game
glTron —— Tron style Cycle game
OpenArea —— first person shooter gameSuper Tux Kart —— a Mario Kart style gameFrets on Fire —— a Guitar Hero style game
值友6718263803
校验提示文案
狂少0217
校验提示文案
一半青的蛙
校验提示文案
Oo野火燎原oO
校验提示文案
Yamol
校验提示文案
桀木
校验提示文案
真三天
校验提示文案
三少爷的腱
校验提示文案
一次搬八块砖
校验提示文案
iduzy
校验提示文案
一半青的蛙
校验提示文案
西月丶城主
校验提示文案
桀木
1, 10.5.2 ass中文字幕无法显示,都是口口.升级到10.5.4后直接不显示了
2,Android和ios客户端,srt字幕与画面不同步,延时很随机
3,播放不是很流畅,存在可观察到的略微卡顿,肯定不是网络原因,怀疑是播放器或者解码导致问题,在kodi上播放时(客户端解码>就没问题。
校验提示文案
NarutoGO
校验提示文案
值友4514936926
校验提示文案
骑驴也上树
校验提示文案
骑驴也上树
校验提示文案
值友4514936926
校验提示文案
iduzy
校验提示文案
NarutoGO
校验提示文案
一次搬八块砖
校验提示文案
三少爷的腱
校验提示文案
桀木
1, 10.5.2 ass中文字幕无法显示,都是口口.升级到10.5.4后直接不显示了
2,Android和ios客户端,srt字幕与画面不同步,延时很随机
3,播放不是很流畅,存在可观察到的略微卡顿,肯定不是网络原因,怀疑是播放器或者解码导致问题,在kodi上播放时(客户端解码>就没问题。
校验提示文案
真三天
校验提示文案
一半青的蛙
校验提示文案
西月丶城主
校验提示文案
桀木
校验提示文案
Yamol
校验提示文案
Oo野火燎原oO
校验提示文案
一半青的蛙
校验提示文案
狂少0217
校验提示文案
值友6718263803
校验提示文案