Transcode Issues - Movie playback "buffering"

Server Version#: 1.42.2.10156 (“plexpass”)

Player Version#: Multi platform latest releases (tvOS, iOS, Roku, etc.)

This has been a perPLEXing issue. It started manifesting a few days ago - at least I noticed it then. The general behavior is selecting a movie will result in the pre-roll playing and then the movie will just sit with the buffering wheel. On some devices that is all you get, on mobile (iOS) you get an “Error Opening Input” message. I have tried moving files to other disks in the array, replacing the files with alternative copies, I removed and remade the library, checked that the Nvidia driver is up to date and passed through - hw transcoding works for other media - and messed with playback settings. Sometimes direct play will work but not always. I limit remote streaming to 1080p - 12mbps. I do not think it is the Nvidia pass through for hw transcoding since it works for other media playback. I made sure this is happening with different encoded media in case there was an issue with a specific format. It seems to be random movies, with different codecs, but also so far only “movie” media.

Not sure if I have a database issue, driver issue, or something else, I reset permissions on the media shares as well just for good measure.

Any direction would be appreciated.

Plex Media Server Logs_2025-12-31_14-30-20.zip (6.2 MB)

The Nvidia is seen and being used.

Dec 31, 2025 14:04:31.128 [22688536181560] DEBUG - [Notify] Now watching "/tv/Vikings (2013)/Season 05"
Dec 31, 2025 14:04:31.128 [22688498453304] DEBUG - [Req#6dcfd/Transcode] Found session GUID of qtwwekxqqts4os9bcoyk8lvc in session start.
Dec 31, 2025 14:04:31.128 [22688498453304] DEBUG - [Req#6dcfd/Transcode] Cleaning directory for session qtwwekxqqts4os9bcoyk8lvc ()
Dec 31, 2025 14:04:31.129 [22688498453304] DEBUG - [Req#6dcfd/Transcode] Starting a transcode session qtwwekxqqts4os9bcoyk8lvc at offset -1.0 (state=3)
Dec 31, 2025 14:04:31.129 [22688498453304] DEBUG - [Req#6dcfd/Transcode] TPU: hardware transcoding: using hardware decode accelerator nvdec
Dec 31, 2025 14:04:31.129 [22688498453304] DEBUG - [Req#6dcfd/Transcode] TPU: hardware transcoding: zero-copy support present
Dec 31, 2025 14:04:31.129 [22688498453304] DEBUG - [Req#6dcfd/Transcode] TPU: hardware transcoding: using zero-copy transcoding
Dec 31, 2025 14:04:31.129 [22688498453304] DEBUG - [Req#6dcfd/Transcode] [Universal] Using local file path instead of URL: /Pre-Rolls/Retro-2021.mp4
Dec 31, 2025 14:04:31.129 [22688498453304] DEBUG - [Req#6dcfd/Transcode] TPU: hardware transcoding: final decoder: nvdec, final encoder: nvenc
Dec 31, 2025 14:04:31.129 [22688498453304] DEBUG - [Req#6dcfd/Transcode/JobRunner] Job running: CUDA_CACHE_PATH="/config/Library/Application Support/Plex Media Server/Cache/Shaders/CUDA" FFMPEG_EXTERNAL_LIBS='/config/Library/Application\ Support/Plex\ Media\ Server/Codecs/46f74ab-560174306fe167a5978a79dd-linux-x86_64/' X_PLEX_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx "/usr/lib/plexmediaserver/Plex Transcoder" "-codec:#0x02" h264 "-hwaccel:#0x02" nvdec "-hwaccel_fallback_threshold:#0x02" 10 "-threads:#0x02" 1 "-hwaccel_output_format:#0x02" cuda "-hwaccel_device:#0x02" cuda "-codec:#0x01" aac -analyzeduration 20000000 -probesize 20000000 -i /Pre-Rolls/Retro-2021.mp4 -filter_complex "[0:#0x02]hwupload[0];[0]scale_cuda=w=1920:h=1080:format=nv12[1]" -map "[1]" -codec:0 h264_nvenc -b:0 11205k -maxrate:0 11205k -bufsize:0 22410k -forced-idr:0 1 -r:0 59.939999999999998 -force_key_frames:0 "expr:gte(t,n_forced*1)" -filter_complex "[0:#0x01] aresample=async=1:ochl='stereo':rematrix_maxval=0.000000dB:osr=48000[2]" -map "[2]" -metadata:s:1 language=eng -codec:1 aac -b:1 151k -f dash -seg_duration 1 -dash_segment_type mp4 -init_seg_name 'init-stream$RepresentationID$.m4s' -media_seg_name 'chunk-stream$RepresentationID$-$Number%05d$.m4s' -window_size 5 -delete_removed false -skip_to_segment 1 -time_delta 0.0625 -manifest_name "http://127.0.0.1:32400/video/:/transcode/session/qtwwekxqqts4os9bcoyk8lvc/6d4a0331-3dad-409a-8908-931549880cd2/manifest?X-Plex-Http-Pipeline=infinite" -avoid_negative_ts disabled -map_metadata -1 -map_chapters -1 dash -start_at_zero -copyts -vsync cfr -init_hw_device cuda=cuda:pci:0000:17:00.0 -filter_hw_device cuda -y -nostats -loglevel quiet -loglevel_plex error -progressurl http://127.0.0.1:32400/video/:/transcode/session/qtwwekxqqts4os9bcoyk8lvc/6d4a0331-3dad-409a-8908-931549880cd2/progress
Dec 31, 2025 14:04:31.129 [22688498453304] DEBUG - [Req#6dcfd/Transcode/JobRunner] In directory: "/transcode/Transcode/Sessions/plex-transcode-qtwwekxqqts4os9bcoyk8lvc-6d4a0331-3dad-409a-8908-931549880cd2"
Dec 31, 2025 14:04:31.129 [22688498453304] DEBUG - [Req#6dcfd/Transcode/JobRunner] Jobs: Starting child process with pid 40668

Which Nvidia do you have and is it perhaps failing on HEVC HDR but working on H264 ?

Thanks for the response…

GPU is Quadro P2000

Most of my tv shows are H.265/HEVC…. UPDATE: it is also happening with TV shows.

Examples… Generally H264 in mkv container.

Works Fine -

“There’s Something in the Barn (2023) - Remux-1080p - x264 DTS-HD MA 5.1 - tt23060796.mkv”

“Fantastic Beasts and Where to Find Them (2016) - Remux-1080p - h264 AC3 5.1 - tt3183660.mkv”

Does not start -

“Fantastic Beasts - The Crimes of Grindelwald (2018) Extended - Remux-1080p - AVC TrueHD Atmos 7.1 - tt4123430.mkv”

“Wicked - For Good (2025) - WEBDL-1080p - x264 EAC3 Atmos 5.1 - tt19847976.mkv”

“The Amateur (2025) - Remux-2160p - HEVC TrueHD Atmos 7.1 - tt0899043.mkv” (playback options only gives 720p and 480p options or convert automatically)

For any of those which will not start, would you:

  1. Make certain DEBUG server logging is enabled (VERBOSE disabled)
  2. Start a playback which requires transcoding.
  3. Let it try (or play) for 20 seconds
  4. Stop playback (if it started)
  5. Download the server logs (Settings - Server - Troubleshooting - Download Logs)
  6. Attach the ZIP file it gives you here so I can read through it.

Plex Media Server Logs_2025-12-31_22-34-27.zip (5.3 MB)

I started a movie from plex web (safari) - the pre roll transcoded and ran fine, the movie however did not start. The dashboard does show the time counting but nothing is playing.

Thanks for the logs

I see one clear error.

Dec 31, 2025 22:17:37.892 [22687809637176] DEBUG - Request: [209.173.242.220:54280 (WAN)] GET /video/:/transcode/universal/session/D7920280-972B-42E8-B6A8-4DF799BD9D60/base/header (27 live) #326632 TLS Signed-in (range: bytes=0-) 
Dec 31, 2025 22:17:39.000 [22687971916600] ERROR - [Req#326506/Transcode/ec8c63c8-1558-45a6-b7f6-2bef7ca3db38-1229/85532663-1520-4d79-b181-21761e28fe33] [eac3_eae @ 0x154c59b5c040] EAE timeout! EAE not running, or wrong folder? Could not read '/tmp/pms-8ad1b322-4a57-48db-8fff-421d0927da76/EasyAudioEncoder/Convert to WAV (to 8ch or less)/ec8c63c8-1558-45a6-b7f6-2bef7ca3db38-1229_128813-0-2.wav'
Dec 31, 2025 22:17:39.001 [22687962590008] ERROR - [Req#326665/Transcode/ec8c63c8-1558-45a6-b7f6-2bef7ca3db38-1229/85532663-1520-4d79-b181-21761e28fe33] [eac3_eae @ 0x154c59b5c040] error reading output: -5 (I/O error)
Dec 31, 2025 22:17:39.001 [22688105806648] ERROR - [Req#326666/Transcode/ec8c63c8-1558-45a6-b7f6-2bef7ca3db38-1229/85532663-1520-4d79-b181-21761e28fe33] Error while decoding stream #0:1: I/O error
Dec 31, 2025 22:17:40.926 [22688397105976] DEBUG - Push: There are 0 new top level things for filter '0' (episode.addedAt>>=1767235695&sort=episode.addedAt:desc&type=2).
Dec 31, 2025 22:17:40.931 [22688397105976] DEBUG - Push: There are 0 new top level things for filter '0x14a28a77ad48' (episode.addedAt>>=1767235695&sort=episode.addedAt:desc&type=2).
Dec 31, 2025 22:17:40.935 [22688397105976] DEBUG - Push: There are 0 new top level things for filter '0x14a271b09218' (episode.addedAt>>=1767235695&sort=episode.addedAt:desc&type=2).

PMS cannot transcode the Dolby EAC3 audio.
(There are no Notify slots available for the transcoder to use – it needs 2 for Dolby)

Do you have a lot of Music or Photos? They eat up a lot of the notify slots
The transcoder temp directory is local HDD/SSD/SHM ?

The remedy for this is:

  1. For all your media, count the total (linux find will help with this)
  2. Do a little math and round that up to the next multiple of 32768
  3. Add a Linux kernel tunable parameter (sysctl.conf) to increase the table size
  4. Restart the server

Here is the FAQ about how to do it.

Please ask if you have any questions.

No music or photo directories, two libraries Movies and TV Shows. I have the thumbnails enabled… The metadata for plex is well over 1TB. I have a lot of TV episodes (92k) and a decent movie collection (8.1k).

The transcode directory is (RAM) /tmp.

Is this a matter of me having crossed a threshold with the number of movies/shows I have on my server? Trying to understand what caused this - things were fine a few days ago. Granted if it is just a limitation of the default config I guess it was just a matter of time.

I will dive into the notify slots tomorrow and see what that gets me. I appreciate the help. Happy New Year.

With 92000+ episodes, there are a lot of directories (seasons within shows)

Here is how you can find out what your system’s default limit is

  1. ssh into the machine or open a console window
  2. Type the commands I show here (sysctl -a | grep max_user_watches)
[chuck@lizum ~.1996]$ ssh root@gerbil
Last login: Sun Dec  7 18:34:46 2025 from 192.168.0.13
root@Gerbil:~# 
root@Gerbil:~# 
root@Gerbil:~# 
root@Gerbil:~# uname -a
Linux Gerbil 6.12.54-Unraid #1 SMP PREEMPT_DYNAMIC Tue Oct 21 15:58:46 PDT 2025 x86_64 Intel(R) Core(TM) i3-7100U CPU @ 2.40GHz GenuineIntel GNU/Linux
root@Gerbil:~# sysctl -a | grep -i max_user_watches
fs.epoll.max_user_watches = 7284179
fs.inotify.max_user_watches = 524288
root@Gerbil:~# 

The parameter in question is fs.inotify.max_user_watches

In the output above, you can see I’ve configured for 512K (524288) slots max.

fs.epoll.max_user_watches = 14578799
fs.inotify.max_user_watches = 524288

You’ll have to forgive me… I am fine with powershell but linux terminal cli is not my forte.

Following the walkthrough selecting the top directories:

sudo find /mnt/plex /mnt/user /mnt/cache /mnt/downloads -type d -print | wc -l

That yielded: 1479523 > rounded would be > 1507328

Step C. has me a little foggy… multiply by 512… presumably that is the max size of an inode within this structure…. so 1507328*512=roughly 750MB of memory? Not a problem.

however when submitting:

sudo sh
echo fs.inotify.max_user_watches=1507328 >> /etc/sysctl.conf
sysctl -p

Nothing has changed… unless it needs a reboot before it is reflected despite the sysctl -p command being used.

Yes, you need to reboot for PMS to be able to access the bigger table.

  1. Kernel resizes the table at startup
  2. PMS starts loading the table as it starts

Given the number of directories you have, I do recommend giving PMS some time to fully populate before starting playbacks.

As for notify table entry size,

  1. 540 bytes per basic slot
  2. Add the string (path) to the directory

This usualy works out to about 750 bytes per entry (256 byte path names)