2024-03-16, 11:00 AM
(This post was last modified: 2024-03-18, 10:07 PM by agendi. Edited 1 time in total.)
I've read heaps of various forums, each ultimately being checked as solved but none of the fixes seem to work for me.
Ubuntu Server 22.04.4 LTS
AMD Ryzen 4, 12 threads
16gb RAM
NVIDIA Geforce GTX 980ti
Jellyfin:latest installed via Docker.
CUDA installed on Host. Nvidia Docker toolkit installed and working
Docker-compose:
JF transcode Error Log:
FFMPEG command when trying to transcode to Android phone running Jellyfin app:
As far as I can tell I've given all the required permissions. Jellyfin is in the video and render groups. There is no problems accessing the underlying files.
Finally the JF playback screen is attached
Thanks for any assistance and also for a strong, helpful community.
Ubuntu Server 22.04.4 LTS
AMD Ryzen 4, 12 threads
16gb RAM
NVIDIA Geforce GTX 980ti
Jellyfin:latest installed via Docker.
Code:
media:~/docker/jellyfin$ nvidia-smi
Sat Mar 16 21:00:58 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.54.14 Driver Version: 550.54.14 CUDA Version: 12.4 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce GTX 980 Ti Off | 00000000:08:00.0 Off | N/A |
| 33% 41C P8 32W / 260W | 1MiB / 6144MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+
media:~/docker/jellyfin$ sudo apt install libnvidia-decode-550
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
libnvidia-decode-550 is already the newest version (550.54.14-0ubuntu1).
libnvidia-decode-550 set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
media:~/docker/jellyfin$ sudo apt install libnvidia-encode-550
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
libnvidia-encode-550 is already the newest version (550.54.14-0ubuntu1).
libnvidia-encode-550 set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
media:~/docker/jellyfin$ lspci -nn | egrep -i "3d|display|vga"
08:00.0 VGA compatible controller [0300]: NVIDIA Corporation GM200 [GeForce GTX 980 Ti] [10de:17c8] (rev a1)
CUDA installed on Host. Nvidia Docker toolkit installed and working
Code:
media:~/docker/jellyfin$ sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
Sat Mar 16 10:16:08 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.54.14 Driver Version: 550.54.14 CUDA Version: 12.4 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce GTX 980 Ti Off | 00000000:08:00.0 Off | N/A |
| 33% 41C P8 32W / 260W | 1MiB / 6144MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+
Docker-compose:
Code:
version: '3.5'
services:
jellyfin:
image: jellyfin/jellyfin
container_name: jellyfin
#network_mode: 'host'
ports:
- 8096:8096
environment:
- UID=1000
- GID=1000
- TZ=Australia/Sydney
- JELLYFIN_PublishedServerUrl=http://media.local
- NVIDIA_DRIVER_CAPABILITIES=all
- NVIDIA_VISIBLE_DEVICES=all
group_add:
- 109
- 44
volumes:
- ./config:/config
- /storage/cache:/cache
- /storage/media:/media
- /dev/shm:/transcode
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
- /dev/dri/card0:/dev/dri/card0
restart: always
runtime: nvidia
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: ["gpu", "utility"]
JF transcode Error Log:
Code:
[color=#000000]/videos/f7e94857-9638-4808-47bf-d6ae3abee141/hls1/main/0.ts
{"Protocol":0,"Id":"f7e948579638480847bfd6ae3abee141","Path":"/media/movie/The Wheel of Time - The Eye of the World (2021)/The Wheel of Time - The Eye of the World (2021).mkv","EncoderPath":null,"EncoderProtocol":null,"Type":0,"Container":"mkv,webm","Size":14386871296,"Name":"The Wheel of Time - The Eye of the World (2021)","IsRemote":false,"ETag":"e1aa3db25cc9f3f2fc26f212f11ea16b","RunTimeTicks":159983992832,"ReadAtNativeFramerate":false,"IgnoreDts":false,"IgnoreIndex":false,"GenPtsInput":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":true,"IsInfiniteStream":false,"RequiresOpening":false,"OpenToken":null,"RequiresClosing":false,"LiveStreamId":null,"BufferMs":null,"RequiresLooping":false,"SupportsProbing":true,"VideoType":0,"IsoType":null,"Video3DFormat":null,"MediaStreams":[{"Codec":"hevc","CodecTag":null,"Language":"eng","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":"SDR","VideoRangeType":"SDR","VideoDoViTitle":null,"LocalizedUndefined":null,"LocalizedDefault":null,"LocalizedForced":null,"LocalizedExternal":null,"DisplayTitle":"1080p HEVC SDR","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":null,"BitRate":7194155,"BitDepth":8,"RefFrames":1,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":true,"IsForced":false,"Height":880,"Width":1920,"AverageFrameRate":23.976025,"RealFrameRate":23.976025,"Profile":"Main","Type":1,"AspectRatio":"24:11","Index":0,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":"yuv420p","Level":150,"IsAnamorphic":null},{"Codec":"aac","CodecTag":null,"Language":"eng","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":null,"VideoRangeType":null,"VideoDoViTitle":null,"LocalizedUndefined":null,"LocalizedDefault":null,"LocalizedForced":null,"LocalizedExternal":null,"DisplayTitle":"Eng - AAC - 5.1 - Default","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":"5.1","BitRate":538032,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":6,"SampleRate":48000,"IsDefault":true,"IsForced":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":"LC","Type":0,"AspectRatio":null,"Index":1,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null}],"MediaAttachments":[],"Formats":[],"Bitrate":7732187,"Timestamp":null,"RequiredHttpHeaders":{},"TranscodingUrl":null,"TranscodingSubProtocol":null,"TranscodingContainer":null,"AnalyzeDurationMs":null,"DefaultAudioStreamIndex":null,"DefaultSubtitleStreamIndex":null}
/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -init_hw_device cuda=cu:0 -filter_hw_device cu -hwaccel cuda -hwaccel_output_format cuda -threads 1 -autorotate 0 -i file:"/media/movie/The Wheel of Time - The Eye of the World (2021)/The Wheel of Time - The Eye of the World (2021).mkv" -autoscale 0 -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_nvenc -preset p1 -b:v 11990258 -maxrate 11990258 -bufsize 23980516 -g:v:0 72 -keyint_min:v:0 72 -vf "setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_cuda=format=yuv420p" -codec:a:0 libfdk_aac -ac 2 -ab 384000 -ar 48000 -af "volume=2" -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 0 -hls_segment_filename "/config/transcodes/8549c999df642daf16c230480eff3dd6%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/config/transcodes/8549c999df642daf16c230480eff3dd6.m3u8"
ffmpeg version 5.1.4-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 10 (Debian 10.2.1-6)
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
[AVHWDeviceContext @ 0x55b3466ffac0] Cannot load libcuda.so.1
[AVHWDeviceContext @ 0x55b3466ffac0] Could not dynamically load CUDA
Device creation failed: -1.
Failed to set value 'cuda=cu:0' for option 'init_hw_device': Operation not permitted
Error parsing global [/color][color=#ffffff]options: Operation not permitted[/color]
FFMPEG command when trying to transcode to Android phone running Jellyfin app:
Code:
[color=#000000]/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -init_hw_device cuda=cu:0 -filter_hw_device cu -hwaccel cuda -hwaccel_output_format cuda -threads 1 -autorotate 0 -i file:\"/media/movie/The Wheel of Time - The Eye of the World (2021)/The Wheel of Time - The Eye of the World (2021).mkv\" -autoscale 0 -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_nvenc -preset p1 -b:v 11990258 -maxrate 11990258 -bufsize 23980516 -g:v:0 72 -keyint_min:v:0 72 -vf \"setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_cuda=format=yuv420p\" -codec:a:0 libfdk_aac -ac 2 -ab 384000 -ar 48000 -af \"volume=2\" -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 0 -hls_segment_filename \"/config/transcodes/8549c999df642daf16c230480eff3dd6%d.ts\" -hls_playlist_type vod -hls_list_size 0 -y \"/config/transcod[/color][color=#ffffff]es/8549c999df642daf16c230480eff3dd6.m3u8\"[/color]
As far as I can tell I've given all the required permissions. Jellyfin is in the video and render groups. There is no problems accessing the underlying files.
Finally the JF playback screen is attached
Thanks for any assistance and also for a strong, helpful community.