前几个月从海鲜市场淘了个 N5105 的小机器,一直也没费心折腾,恰好前阵子又看见了 CasaOS 感觉还有点意思,颜值够然后管理 Docker 也方便,就装了一个,然后到 Jellyfin 这里在配置硬解和 HDR 颜色映射时就疯狂报错
该客户端与媒体不兼容,服务器未发送兼容的媒体格式
因为之前在 Windows 系统时曾经装过可以确定这个 CPU 是能支撑硬解的所以问题大概率出在 Docker 对显卡的识别上,先跟着官方的教程走了一圈—— HWA Tutorial On Intel GPU
期间把 Ubuntu 20.04 升级到了 22.04 ,显卡和 FFmpeg 信息基本正常了,甚至设置中的硬解也能开启,唯独 HDR 色彩映射依然报错,
docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va -init_hw_device opencl@va
会返回
[AVHWDeviceContext @ 0x55c3afa6fcc0] No VA display found for device /dev/dri/renderD128.
Device creation failed: -22.
Failed to set value 'vaapi=va:/dev/dri/renderD128' for option 'init_hw_device': Invalid argument
Error parsing global options: Invalid argument
经过检索发现 CasaOS 默认的 Jellyfin 镜像是 linuxserver/jellyfin
然后他们有一个 Opencl-Intel - Docker mod for Jellyfin ,只需要在启动命令中添加环境变量即可在启动时自动安装
environment:
- DOCKER_MODS=linuxserver/mods:jellyfin-opencl-intel
具体到 CasaOS 中的设置则是如下图一样添加即可
另外发现 CasaOS 中 Jellyfin 的默认设备映射里其实都可以清掉,其中有一些似乎是给树莓派等设备的设备挂载,对 n5105 而言只需要映射 /dev/dri/
即可
以上都准备妥当之后就可以去 Jellyfin 的控制台-播放菜单中开启颜色映射,不过 n5105 并不支持 VPP 色调映射,需要打开下方的色调映射选项
色调映射可以将视频的动态范围从 HDR 变换成 SDR,同时保持图像细节与颜色等对于表现原始场景非常重要的信息。目前仅对 HDR10 或 HLG 视频生效。此项需要对应的 OpenCL 或 CUDA 运行库。
以上,即可正常通过 Jellyfin 硬解 HDR HEVC 视频了