Jellyfin Forum
Attempting hardware acceleration, ffmpeg -init_hw_device says "No device found" - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+--- Thread: Attempting hardware acceleration, ffmpeg -init_hw_device says "No device found" (/t-attempting-hardware-acceleration-ffmpeg-init-hw-device-says-no-device-found)



Attempting hardware acceleration, ffmpeg -init_hw_device says "No device found" - guiniveretoo - 2023-07-21

I have all these lovely movies and shows that are 10-bit and the poor cpu just can't keep up with them, they stutter and jitter, on the computer, on my phone, on the TV (via Roku).

Ubuntu 22.04.2 LTS, Jellyfin 10.8.10, ffmpeg version 5.1.3-Jellyfin

We recently installed a Radeon 270, hoping that it would help. I'm not sure it was installed correctly, I'd love help diagnosing that if it's relevant. I'm trying to go through the steps here: https://jellyfin.org/docs/general/administration/hardware-acceleration/amd

I'm stuck on step 6:

Code:
    $ sudo /usr/lib/jellyfin-ffmpeg/ffmpeg -v debug -init_hw_device opencl=ocl:.0,device_vendor="Advanced Micro Devices"
    ffmpeg version 5.1.3-Jellyfin Copyright (c) 2000-2022 the FFmpeg developers
      built with gcc 11 (Ubuntu 11.3.0-1ubuntu1~22.04.1)
      configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libsvtav1 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
      libavutil      57. 28.100 / 57. 28.100
      libavcodec    59. 37.100 / 59. 37.100
      libavformat    59. 27.100 / 59. 27.100
      libavdevice    59.  7.100 / 59.  7.100
      libavfilter    8. 44.100 /  8. 44.100
      libswscale      6.  7.100 /  6.  7.100
      libswresample  4.  7.100 /  4.  7.100
      libpostproc    56.  6.100 / 56.  6.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 'opencl=ocl:.0,device_vendor=Advanced Micro Devices'.
    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 opencl=ocl:.0,device_vendor=Advanced Micro Devices.
    [AVHWDeviceContext @ 0x55acc4e08580] 1 OpenCL platforms found.
    [AVHWDeviceContext @ 0x55acc4e08580] No devices found on platform "AMD Accelerated Parallel Processing".
    [AVHWDeviceContext @ 0x55acc4e08580] No matching devices found.
    Device creation failed: -19.
    Failed to set value 'opencl=ocl:.0,device_vendor=Advanced Micro Devices' for option 'init_hw_device': No such device
    Error parsing global options: No such device

I believe I have the correct drivers installed:

Code:
$ lspci -k | grep -EA3 'VGA|3D|Display'
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Curacao XT / Trinidad XT [Radeon R7 370 / R9 270X/370X]
        Subsystem: PC Partner Limited / Sapphire Technology Curacao XT / Trinidad XT [Radeon R7 370 / R9 270X/370X]
        Kernel driver in use: amdgpu
        Kernel modules: radeon, amdgpu

rocm-opencl-runtime is installed and up-to-date, but clinfo gives no devices found:

Code:
$ sudo clinfo
Number of platforms:                            1
  Platform Profile:                              FULL_PROFILE
  Platform Version:                              OpenCL 2.1 AMD-APP (3581.0)
  Platform Name:                                AMD Accelerated Parallel Processing
  Platform Vendor:                              Advanced Micro Devices, Inc.
  Platform Extensions:                          cl_khr_icd cl_amd_event_callback


  Platform Name:                                AMD Accelerated Parallel Processing
Number of devices:                              0

Am I doing anything wrong? Do I just need to suck it up and upgrade my hardware more or is something set up incorrectly?


RE: Attempting hardware acceleration, ffmpeg -init_hw_device says "No device found" - TheDreadPirate - 2023-07-21

Jellyfin's documentation says you should be using VAAPI, but the documentation implies that it only works for Vega and newer? Otherwise use AMD AMF, but then you are dependent on the built in hardware decode/encode engine. UVD 4.0, the engine in the 270, only supports decoding H264 (assuming 8-bit). No H264 encoding support, meaning no accelerated transcoding. And no HEVC acceleration at all.


RE: Attempting hardware acceleration, ffmpeg -init_hw_device says "No device found" - guiniveretoo - 2023-07-21

(2023-07-21, 07:48 PM)TheDreadPirate Wrote: Jellyfin's documentation says you should be using VAAPI, but the documentation implies that it only works for Vega and newer?  Otherwise use AMD AMF, but then you are dependent on the built in hardware decode/encode engine.  UVD 4.0, the engine in the 270, only supports decoding H264 (assuming 8-bit).  No H264 encoding support, meaning no accelerated transcoding.  And no HEVC acceleration at all.

So basically, I'm SOL until I upgrade my hardware, is what I'm hearing? Thank you.


RE: Attempting hardware acceleration, ffmpeg -init_hw_device says "No device found" - TheDreadPirate - 2023-07-21

If your playback hardware supports your media natively, you can direct play without transcoding.  No problem.  But it sounds like that is not the case, which means you probably are SOL.

If you do decide to upgrade, let us know your budget and we can give suggestions. Look at my specs in my signature. It really doesn't take much hardware to have a good Jellyfin experience. It's just a matter of choosing the right hardware for your media (videos codec mostly).

For the record, what CPU do you have?


RE: Attempting hardware acceleration, ffmpeg -init_hw_device says "No device found" - guiniveretoo - 2023-07-22

(2023-07-21, 11:34 PM)TheDreadPirate Wrote: For the record, what CPU do you have?

Pentium E5200 Dual Core, 1.7 GHz 

Old as shit, I know. It's an old desktop machine that was picked up from craigslist when someone was cleaning out their office. At this point, I'm not really expecting it to be good for much except the case, and maybe not even that. If we upgrade the GPU, we have to upgrade the motherboad essentially, and also the power.

I'd love recommedations for minimum GPUs that would run everything I'm wanting to watch. We don't have a 4k anything nor are we planning on getting any, I'm aiming for 1080p everything if I can. I don't have any specific upper limit (yay disposable income), just would prefer to stay on the lower end of the budget if possible (byebye disposable income).


RE: Attempting hardware acceleration, ffmpeg -init_hw_device says "No device found" - TheDreadPirate - 2023-07-23

You really don't need much to have a good Jellyfin experience (see the modest specs in my signature). It's all about matching the codecs your library is stored in with the right hardware. It's really a matter if you have AV1 media already or want to encode your library with AV1. If you don't care about AV1 at the moment, just about any 8th gen Intel CPU and newer will serve 5-10 users if transcoding. More users if there is no transcoding (don't count on this).

If you do care about AV1, any 13th gen Intel CPU will do. Or any CPU + Intel Arc A380.

I've posted this before in other threads, but here are the three tenants of a smooth Jellyfin exper

1. Know what server and playback hardware you have
2. Know what your server and playback hardware is capable of
3. Know your media library

When your library (mainly videos codecs) lines up with what your server GPU hardware can decode you will have a smooth transcode experience. When your library lines up with what your playback hardware can decode you will have a smooth direct play experience. When your library doesn't line up with your hardware's capabilities, you're going to have a bad time.