Jellyfin hangs during transcoding on TrueNAS SCALE 25.04.2.6

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-smi shows 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.

After approximately 2 minutes of transcoding, Jellyfin starts logging:

Microsoft.AspNetCore.Server.Kestrel:
“The heartbeat has been running longer than 1 second.
This could be caused by thread pool starvation.”

Immediately before this, the /health endpoint starts timing out.

I had too many problem via the browser, never use it now, just use the app. If you hit problems with the app at least it’s something you can narrow down a lot better than all the trash a browser it trying to do.

I fixed it—it turned out to be something really stupid.

The server was being severely power-capped by the iLO without me realizing it. As soon as something “demanding”, like a transcode, started, the CPU would throttle down so much that the Jellyfin web server couldn’t keep up.