Jellyfin hangs during transcoding on TrueNAS SCALE 25.04.2.6 (CPU and GPU)
Hi everyone,
I’m running into a strange issue with Jellyfin on TrueNAS SCALE and I’m hoping someone has seen this before.
System
-
HPE ProLiant DL380p Gen8
-
Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
-
95gb ECC RAM
-
TrueNAS SCALE 25.04.2.6
-
Jellyfin App 1.3.12
-
Jellyfin 10.11.11
-
NVIDIA Quadro P620
-
NVIDIA hardware acceleration enabled (CUDA/NVDEC/NVENC)
The problem
Direct Play works perfectly.
As soon as a movie requires transcoding (both CPU and GPU transcoding), playback never starts. The browser keeps loading indefinitely. Jellyfin hangs and no usefull error or measage in log.
During playback:
-
ffmpeg starts correctly
-
nvidia-smishows ffmpeg using the GPU (when hardware transcoding is enabled) -
ffmpeg continuously creates transcode segments
-
Jellyfin CPU usage increases to ~400%
-
After a while the Jellyfin health endpoint starts timing out
-
The browser never starts playback
What I’ve already verified
GPU
Hardware acceleration appears to work correctly.
Inside the container:
ffmpeg -hwaccels
returns:
cuda
vaapi
qsv
drm
opencl
vulkan
and
ffmpeg -encoders | grep nvenc
returns
h264_nvenc
hevc_nvenc
av1_nvenc
On the host nvidia-smi shows ffmpeg using the GPU while transcoding.
ffmpeg
The transcode log shows no CUDA or encoder errors.
The command starts correctly and begins writing HLS/fMP4 segments.
The transcode directory fills with dozens of .mp4 segment files.
However, playback never starts.
Things already ruled out
-
Reverse proxy (same behaviour when connecting directly to the TrueNAS IP)
-
Same in browser and app
-
Broken media file
-
CUDA/NVENC availability
-
Incorrect media path
Container
The generated TrueNAS compose file looks standard.
Relevant mounts:
ffmpeg -hwaccels
/downloads -> bind mount
/config -> bind mount
/cache -> bind mount
/cache/transcodes -> Docker volume
Question
Has anyone seen Jellyfin hang during transcoding like this on TrueNAS SCALE 25.04?
It almost looks like ffmpeg is successfully producing the transcoded segments, but Jellyfin itself stops serving them to the client and eventually becomes unresponsive.
I’m happy to provide additional logs if there’s something specific I should capture.
Ik zou er eventueel ook nog de volledige ffmpeg-transcode-opdracht aan toevoegen (die heb je al uit de log). Voor de Jellyfin-ontwikkelaars of ervaren gebruikers is dat vaak erg waardevol en voorkomt het veel vervolgvragen.