【jellyfin docker部署】

发布于:2025-01-14 ⋅ 阅读:(15) ⋅ 点赞:(0)

docker安装

sudo docker run -d \
  --privileged \
  --name=jellyfin \
  --volume /opt/1panel/apps/jellyfin/config:/config \
  --volume /media/devmon/新加卷/jellyfin/cache:/cache \
  --volume /media/devmon/新加卷/media:/media \
  --volume /media/devmon/新加卷/jellyfin/fonts:/usr/share/fonts/truetype/dejavu \
  --user root \
  --publish 8096:8096 \
  --publish 8920:8920 \
  --restart=unless-stopped \
  --device /dev/dri:/dev/dri \
  --device /dev/dma_heap:/dev/dma_heap \
  --device /dev/mali0:/dev/mali0 \
  --device /dev/rga:/dev/rga \
  --device /dev/mpp_service:/dev/mpp_service \
  $(for dev in dma_heap mali0 iep mpp-service vpu_service vpu-service \
       hevc_service hevc-service rkvdec rkvenc vepu h265e; do \
    [ -e "/dev/$dev" ] && echo "--device=/dev/$dev"; \
  done) \
  jellyfin/jellyfin

将设备映射到 Docker 容器

设备名称 说明 用途
/dev/dri Direct Rendering Interface,提供 GPU 的直接渲染接口。 GPU 硬件加速,常用于 VA-API 或 DRM 驱动的图形渲染和视频解码。
/dev/dma_heap 动态内存分配堆,常用于视频帧缓冲区等内存密集型操作。 帧缓冲区管理、共享内存等。
/dev/mali0 Mali GPU 设备接口(用于 ARM Mali 系列 GPU)。 图形处理、OpenCL 加速。
/dev/rga Rockchip 的 RGA(Raster Graphic Acceleration)硬件加速器。 图像缩放、旋转、颜色空间转换等操作。
/dev/mpp_service Media Process Platform (MPP) 的主要控制接口。 用于硬件视频编解码服务。

这些设备用于 GPU 和 VPU 的硬件加速,Jellyfin 在使用 FFmpeg 处理视频时会利用它们

jellyfin容器内置ffmpeg

在这里插入图片描述

FFmpeg硬件设备初始化

/usr/lib/jellyfin-ffmpeg/ffmpeg -v debug -init_hw_device rkmpp=rk -init_hw_device opencl=ocl@rk

ffmpeg version 7.0.2-Jellyfin Copyright (c) 2000-2024 the FFmpeg developers
  built with gcc 12 (Debian 12.2.0-14)
  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto=auto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=arm64 --cross-prefix=/usr/bin/aarch64-linux-gnu- --toolchain=hardened --enable-cross-compile --enable-rkmpp --enable-rkrga
  libavutil      59.  8.100 / 59.  8.100
  libavcodec     61.  3.100 / 61.  3.100
  libavformat    61.  1.100 / 61.  1.100
  libavdevice    61.  1.100 / 61.  1.100
  libavfilter    10.  1.100 / 10.  1.100
  libswscale      8.  1.100 /  8.  1.100
  libswresample   5.  1.100 /  5.  1.100
  libpostproc    58.  1.100 / 58.  1.100
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with argument 'debug'.
Reading option '-init_hw_device' ... matched as option 'init_hw_device' (initialise hardware device) with argument 'rkmpp=rk'.
Reading option '-init_hw_device' ... matched as option 'init_hw_device' (initialise hardware device) with argument 'opencl=ocl@rk'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument debug.
Applying option init_hw_device (initialise hardware device) with argument rkmpp=rk.
Applying option init_hw_device (initialise hardware device) with argument opencl=ocl@rk.
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
[AVHWDeviceContext @ 0x559de810d0] 1 OpenCL platforms found.
[AVHWDeviceContext @ 0x559de810d0] 1 OpenCL devices found on platform "ARM Platform".
[AVHWDeviceContext @ 0x559de810d0] 0.0: ARM Platform / Mali-G610 r0p0
[AVHWDeviceContext @ 0x559de810d0] cl_arm_import_memory found as platform extension.
[AVHWDeviceContext @ 0x559de810d0] cl_khr_image2d_from_buffer found as platform extension.
[AVHWDeviceContext @ 0x559de810d0] DRM to OpenCL mapping on ARM function found (clImportMemoryARM).
Successfully parsed a group of options.
Universal media converter
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

Use -h to get full help or, even better, run 'man ffmpeg'

在这里插入图片描述

转码设置

在这里插入图片描述