如何在 CPU 为 3865U 的小主机上启用 Jellyfin 的硬解功能

19 天前
 ZGeek

如题:硬件总是报遇到致命错误 docker 镜像为:nyanmisaka/jellyfin:lastest ffmpeg 的报错日志为:

/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -f matroska -init_hw_device vaapi=va:/dev/dri/renderD128,driver=iHD -init_hw_device qsv=qs@va -filter_hw_device qs -hwaccel vaapi -hwaccel_output_format vaapi -noautorotate -i file:"/media/nas/电影/哈利波特/哈利波特 2:消失的密室 BD 国英双语中英双字.mkv" -noautoscale -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 av1_qsv -preset veryfast -b:v 400000 -maxrate 400000 -bufsize 800000 -profile:v:0 main -level 53 -g:v:0 96 -keyint_min:v:0 96 -vf "setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_vaapi=w=960:h=540:format=nv12:extra_hw_frames=24,hwmap=derive_device=qsv,format=qsv" -codec:a:0 libfdk_aac -ac 2 -ab 256000 -af "volume=2" -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 4 -hls_segment_type fmp4 -hls_fmp4_init_filename "77f37e1baa54d62016d7552ac7f4f091-1.mp4" -start_number 0 -hls_segment_filename "/cache/transcodes/77f37e1baa54d62016d7552ac7f4f091%d.mp4" -hls_playlist_type vod -hls_list_size 0 -y "/cache/transcodes/77f37e1baa54d62016d7552ac7f4f091.m3u8"


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=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
  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
DRM_IOCTL_VERSION, unsupported drm device by media driver: vmwg
DRM_IOCTL_VERSION, unsupported drm device by media driver: vmwg
[AVHWDeviceContext @ 0x55a71d72f280] libva: /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so init failed
[AVHWDeviceContext @ 0x55a71d72f280] Failed to initialise VAAPI connection: 18 (invalid parameter).
Device creation failed: -5.
Failed to set value 'vaapi=va:/dev/dri/renderD128,driver=iHD' for option 'init_hw_device': Input/output error
Error parsing global options: Input/output error
1618 次点击
所在节点    NAS
14 条回复
colincat
19 天前
别折腾了 哈哈
ZGeek
19 天前
@colincat 怎么了
A3m0n
19 天前
启动容器的时候需要把显卡设备传进去。

例如:/dev/dri/renderD128
ZGeek
18 天前
@A3m0n 传进去了的
qiaoqiao1235
18 天前
要在外面给权限
chmod 777 /dev/dri/renderD128
我用 plex 是可以的
colincat
18 天前
@ZGeek 没啥意思。
Suaxi
18 天前
docker-compose.yml 或者 docker run 命令里加上 root 权限试试

privileged: true
Panameragt
18 天前
以前折腾过很久,成功后感觉真没啥意思
fish3125
18 天前
我觉得还蛮有用的,硬解在看一些不得不转码的视频 cpu 占用很低。
- 进容器 ls /dev/dri 看看文件是否正确传进去。
日记里似乎有 qsv ,硬解先选择兼容性好的 vaapi 试试,而非 qsv 。
wannianma
18 天前
别折腾了,买个极空间,所有问题都搞定。
cslive
18 天前
裸机系统还是 pve ,如果是 pve 还得核显直通
yanxin1111
18 天前
doveyoung
17 天前
我启用硬解后体验了两天,然后关闭了硬解,配置太差性能跟不上,客户端解的时候播放更流畅。
如果有不支持的编码,那就放弃这个编码的资源。
kakki
17 天前
最后选择用 PR 直接转换格式。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1100467

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX