Qnap 473a + Quadro P1000 - hw transcoding not working

QuTS Hero h5.2.7.3256

Server Version#: 1.42.2.10156
Player Version#: IOS 2025.27.0(1288)
+plexpass

I`m switching from Synology to Qnap for better Plex transcoding.

Right now I`m facing issue that Qnap is not using hardware transcoding.

Testing on iPhone and once watching from Synology I can see: transcoding (hw) and even 4k can be played.

Right now installed on Qnap (not in docker) and it is just saying: transcoding

On Qnap I have hardware assigned to QTS.

After: gpuhal_app -l result:

1:NVIDIA Corporation:GP107GL [Quadro P1000]:external:7

next: gpuhal_app -s 1 result:

active_status=2,real_status=2,driverqpkg=NVIDIA_GPU_DRV,driver_installed=1,in_used=none,transcode=1,display=1,pcie_slot=1,pcie_vp=1,va_type=none

I have already uninstalled nvidia drivers, installed them again, assigned to QTS with reboot after each step. Still no HW transcoding.

On Qnap I`m of course logged in to my account with plexpass and on transcoding page picked Quadro P1000 as GPU to be used.

Please help what else can be done to force HW transcoding.

Im seeing a similar issue with my QNAP TS-873A current firmware (QuTS hero h5.2.7.3256), Nvidia GPU drivers (6.1.0.0515) and NvKernelDriver (5.2.7.3256) with a Quadro P2000. This was on Plex QNAP Intel/AMD v.1.42.2.10156-f737b826c. When I checked “Transcoder” in Account settings it only showed “Auto” in the past it showed Quadro P2000. I then rolled back to Version Plex QNAP Intel/AMD 1.42.1.10060 and now it shows the Quadro and I can select it. I tested some transcodes and I can see it hitting the GPU in the QNAP resource monitor… Looks like a bug in Version 1.42.1.10060.

I also have a friend with the same exact setup… same

problem and the downgrade fixed it.

There are known regressions in the current Beta.

Chris is offsite this week with the rest of the Engineering team.
I was briefed prior to his departure.

Upon his return, he’ll fix the regressions.

Hi,

Do you have any link from where I can get 1.42.1.10060 to test ?

Thanks, that worked.
But meantime I have found e m b y. Worked with HW just from start and those biggger ones where Plex (with above version) tries to play with HW and throw error after few seconds “E” plays with no issues….

FWIW:

  1. Current Plex transcoder is version 4.
  2. “E” transcoder is version 5.
  3. New Plex transcoder will be version 6. (Beta has a known regression until Chris gets back)
  4. “JF” transcoder is version 7 (but buggy)

It’s enough to drive anyone :zany_face:

OK, thank you for info. So, probably more people are waiting for Chris to get back :wink:

I tried both latest version and Beta from Plex. On both the issue and no HW transcoding.

How do we know that there is version ready to be checked that should have correct HW transcoding?

Right now have 1 month to test “E” and meantime hope Plex will get back stable.

@marcin_487

Please do me a favor,

  1. Make certain Server DEBUG logging is enabled.
  2. Stop Plex & wait one minute
  3. Start Plex and wait 3 minutes
  4. Attempt to play something which requires transcoding
  5. Download the logs ZIP file
  6. Attach it here.

I want to confirm the GPU is found and what’s happening with the drivers.

Here is 1.41.9 which I know works with HW transcoding
(Install on top of your existing to preserve your server data)

https://artifacts.plex.tv/plex-media-server-stable/1.41.9.9961-46083195d/qnap/PlexMediaServer-1.41.9.9961-46083195d-x86_64.qpkg

I can do those 6 steps but on which version ?

You can do with your existing version first.

If you have time, I’d appreciate you repeating with 1.41.9 as well.

1st try on version 1.42.1.10060

unknown error (4294967283)

error: 4294967283

When picked lower bitrate it worked with HW.

2. the same on 1.41.9

The same error at 1st time

With lower bitrate the same error. Picked “retry” and worked.

Both options not acceptable :slight_smile:

Plex Media Server Logs_2025-10-16_09-40-08.zip (896.4 KB)

Plex Media Server Logs_2025-10-16_09-16-16.zip (819.3 KB)

Maybe I’m missing something here (especially since the versions above are lower than mine) - but I’m using a TS473a with QuTS 5.3.1.3250 & an NVidia Tesla P4 with Plex 1.43.0.10162 and transcoding is working just fine for me.

Thought it was worth mentioning just in case it helps anybody.

This is a player error. The player / network couldn’t handle what was being requested. (The Nvidia is more than capable of the rate).

When I look at the logs, I see where PMS cuts back the video bitrate to comply with network & bitrate limits.

I also see where the playback bitrate is requested as a lower value and all works OK.

What is the network limit for playback?

All was done via LAN. So, I just forced lower bitrate ( 1080p from 4K) not to just play original file with no transcoding :slight_smile:

Upload configured in Plex as 900 Mbps

@marcin_487

Everything here:

Oct 16, 2025 09:14:18.842 [140713433803576] DEBUG - [Req#df/Transcode] TPU: hardware transcoding: final decoder: nvdec, final encoder: nvenc
Oct 16, 2025 09:14:18.843 [140713433803576] DEBUG - [Req#df/Transcode/JobRunner] Job running: CUDA_CACHE_PATH="/share/ZFS530_DATA/.qpkg/PlexMediaServer/Library/Plex Media Server/Cache/Shaders/CUDA" EAE_ROOT=/share/ZFS530_DATA/.qpkg/PlexMediaServer/Library/tmp/pms-c7eecf9c-b082-4303-b98c-b20d4607e84e/EasyAudioEncoder FFMPEG_EXTERNAL_LIBS='/share/ZFS530_DATA/.qpkg/PlexMediaServer/Library/Plex\ Media\ Server/Codecs/46f74ab-560174306fe167a5978a79dd-linux-x86_64/' X_PLEX_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx "/share/ZFS530_DATA/.qpkg/PlexMediaServer/Plex Transcoder" -codec:0 hevc -hwaccel:0 nvdec -hwaccel_fallback_threshold:0 10 -threads:0 1 -hwaccel_output_format:0 cuda -hwaccel_device:0 cuda -codec:1 eac3_eae -eae_prefix:1 3vf8e4dl3r10nymeaf7i5xgx_ -ss 295 -analyzeduration 20000000 -probesize 20000000 -i "/share/Media/Cartoon/Snow.White.2025.MULTi.2160p.WEB-DL.DoVi.HDR.HEVC.DDP5.1.Atmos-inTGrity/Snow.White.2025.MULTi.2160p.WEB-DL.DoVi.HDR.HEVC.DDP5.1.Atmos-inTGrity-Kopiuj(1).mkv" -filter_complex "[0:0]hwupload[0];[0]scale_cuda=w=3840:h=1606:format=p010[1]" -map "[1]" -codec:0 hevc_nvenc -b:0 10545k -maxrate:0 10545k -bufsize:0 21090k -preset:0 hq -forced-idr:0 1 -r:0 24 -filter_complex "[0:1] aresample=async=1:ochl='5.1':rematrix_maxval=0.000000dB:osr=48000[2]" -map "[2]" -metadata:s:1 language=pol -codec:1 libopus -b:1 390k -f segment -segment_format matroska -segment_format_options live=1:strip_dovi=1 -segment_time 1 -segment_header_filename header -segment_start_number 0 -segment_list "http://127.0.0.1:32400/video/:/transcode/session/3vf8e4dl3r10nymeaf7i5xgx/f2dbc39b-cfaa-4225-bd62-4b04d758f1d6/manifest?X-Plex-Http-Pipeline=infinite" -segment_list_type csv -segment_list_unfinished 1 -segment_list_size 5 -segment_list_separate_stream_times 1 -avoid_negative_ts disabled -map_metadata:g -1 -map_metadata:c -1 -map_chapters -1 "chunk-%05d" -start_at_zero -copyts -init_hw_device cuda=cuda:pci:0000:01:00.0 -filter_hw_device cuda -y -nostats -loglevel quiet -loglevel_plex error -progressurl http://127.0.0.1:32400/video/:/transcode/session/3vf8e4dl3r10nymeaf7i5xgx/f2dbc39b-cfaa-4225-bd62-4b04d758f1d6/progress
Oct 16, 2025 09:14:18.843 [140713433803576] DEBUG - [Req#df/Transcode/JobRunner] In directory: "/share/temp/Transcode/Sessions/plex-transcode-3vf8e4dl3r10nymeaf7i5xgx-f2dbc39b-cfaa-4225-bd62-4b04d758f1d6"
Oct 16, 2025 09:14:18.843 [140713433803576] DEBUG - [Req#df/Transcode/JobRunner] Jobs: Starting child process with pid 20071
Oct 16, 2025 09:14:18.856 [140713458039608] DEBUG - Request: [127.0.0.1:59292 (Loopback)] PUT /video/:/transcode/session/3vf8e4dl3r10nymeaf7i5xgx/f2dbc39b-cfaa-4225-bd62-4b04d758f1d6/progress?status=startup (12 live) #f9 Signed-in Token (marcin.487) (range: bytes=0-) 
Oct 16, 2025 09:14:18.857 [140713734814520] DEBUG - Completed: [127.0.0.1:59292] 204 PUT /video/:/transcode/session/3vf8e4dl3r10nymeaf7i5xgx/f2dbc39b-cfaa-4225-bd62-4b04d758f1d6/progress?status=startup (12 live) #f9 0ms 203 bytes (pipelined: 1) (range: bytes=0-) 
Oct 16, 2025 09:14:18.931 [140713455930168] DEBUG - [Req#f3/Transcode] Codecs: testing hevc_nvenc (encoder)
Oct 16, 2025 09:14:18.931 [140713455930168] DEBUG - [Req#f3/Transcode] Codecs: hardware transcoding: testing API nvenc for device 'pci:0000:01:00.0' (NVIDIA GP107GL [Quadro P1000])
Oct 16, 2025 09:14:18.970 [140713420503864] DEBUG - Request: [127.0.0.1:59292 (Loopback)] PUT /video/:/transcode/session/3vf8e4dl3r10nymeaf7i5xgx/f2dbc39b-cfaa-4225-bd62-4b04d758f1d6/progress?status=startup (12 live) #fe Signed-in Token (marcin.487) (range: bytes=0-) 
Oct 16, 2025 09:14:18.970 [140713736923960] DEBUG - Completed: [127.0.0.1:59292] 204 PUT /video/:/transcode/session/3vf8e4dl3r10nymeaf7i5xgx/f2dbc39b-cfaa-4225-bd62-4b04d758f1d6/progress?status=startup (12 live) #fe 0ms 203 bytes (pipelined: 2) (range: bytes=0-) 
Oct 16, 2025 09:14:18.971 [140713508907832] DEBUG - Request: [127.0.0.1:59292 (Loopback)] PUT /video/:/transcode/session/3vf8e4dl3r10nymeaf7i5xgx/f2dbc39b-cfaa-4225-bd62-4b04d758f1d6/progress?status=opening (12 live) #ff Signed-in Token (marcin.487) (range: bytes=0-) 
Oct 16, 2025 09:14:18.971 [140713734814520] DEBUG - Completed: [127.0.0.1:59292] 204 PUT /video/:/transcode/session/3vf8e4dl3r10nymeaf7i5xgx/f2dbc39b-cfaa-4225-bd62-4b04d758f1d6/progress?status=opening (12 live) #ff 0ms 203 bytes (pipelined: 3) (range: bytes=0-) 
Oct 16, 2025 09:14:18.972 [140713442945848] DEBUG - Request: [127.0.0.1:59292 (Loopback)] PUT /video/:/transcode/session/3vf8e4dl3r10nymeaf7i5xgx/f2dbc39b-cfaa-4225-bd62-4b04d758f1d6/progress?status=opened (12 live) #100 Signed-in Token (marcin.487) (range: bytes=0-) 
Oct 16, 2025 09:14:18.972 [140713736923960] DEBUG - Completed: [127.0.0.1:59292] 204 PUT /video/:/transcode/session/3vf8e4dl3r10nymeaf7i5xgx/f2dbc39b-cfaa-4225-bd62-4b04d758f1d6/progress?status=opened (12 live) #100 0ms 203 bytes (pipelined: 4) (range: bytes=0-) 
Oct 16, 2025 09:14:18.972 [140713440836408] DEBUG - Request: [127.0.0.1:59292 (Loopback)] PUT /video/:/transcode/session/3vf8e4dl3r10nymeaf7i5xgx/f2dbc39b-cfaa-4225-bd62-4b04d758f1d6/progress/stream?index=0&id=0&codec=hevc&type=video (12 live) #101 Signed-in Token (marcin.487) (range: bytes=0-) 
Oct 16, 2025 09:14:18.972 [140713736923960] DEBUG - Completed: [127.0.0.1:59292] 200 PUT /video/:/transcode/session/3vf8e4dl3r10nymeaf7i5xgx/f2dbc39b-cfaa-4225-bd62-4b04d758f1d6/progress/stream?index=0&id=0&codec=hevc&type=video (12 live) #101 0ms 195 bytes (pipelined: 5) (range: bytes=0-) 
Oct 16, 2025 09:14:18.973 [140713458039608] DEBUG - Request: [127.0.0.1:59292 (Loopback)] PUT /video/:/transcode/session/3vf8e4dl3r10nymeaf7i5xgx/f2dbc39b-cfaa-4225-bd62-4b04d758f1d6/progress/stream?index=1&id=0&codec=eac3&type=audio (12 live) #102 Signed-in Token (marcin.487) (range: bytes=0-) 
Oct 16, 2025 09:14:18.973 [140713734814520] DEBUG - Completed: [127.0.0.1:59292] 200 PUT /video/:/transcode/session/3vf8e4dl3r10nymeaf7i5xgx/f2dbc39b-cfaa-4225-bd62-4b04d758f1d6/progress/stream?index=1&id=0&codec=eac3&type=audio (12 live) #102 0ms 195 bytes (pipelined: 6) (range: bytes=0-) 
Oct 16, 2025 09:14:18.973 [140713420503864] DEBUG - Request: [127.0.0.1:59292 (Loopback)] PUT /video/:/transcode/session/3vf8e4dl3r10nymeaf7i5xgx/f2dbc39b-cfaa-4225-bd62-4b04d758f1d6/progress/stream?index=2&id=0&codec=eac3&type=audio (12 live) #103 Signed-in Token (marcin.487) (range: bytes=0-) 
Oct 16, 2025 09:14:18.973 [140713734814520] DEBUG - Completed: [127.0.0.1:59292] 200 PUT /video/:/transcode/session/3vf8e4dl3r10nymeaf7i5xgx/f2dbc39b-cfaa-4225-bd62-4b04d758f1d6/progress/stream?index=2&id=0&codec=eac3&type=audio (12 live) #103 0ms 195 bytes (pipelined: 7) (range: bytes=0-) 
Oct 16, 2025 09:14:18.975 [140713508907832] DEBUG - Request: [127.0.0.1:59292 (Loopback)] PUT /video/:/transcode/session/3vf8e4dl3r10nymeaf7i5xgx/f2dbc39b-cfaa-4225-bd62-4b04d758f1d6/progress/streamDetail

Shows me the P1000 is working as it should.

If you look carefully, there are only PUT statements. There are no GET statements.

PUT - PMS sending to the transcoder
GET - Player getting the transcoder output.

Can you please repeat this test one last time using the web browser?

FWIW: I have a P2200 (same GP107 engine) which works flawlessly – EXCEPT

  1. No DoVi (it is dropped during video transcode)
  2. No AV1 decoding

Given this thread is marked solved for the OP, Would you mind if I moved you to your own thread ?

Yes, you can move it other place.

Maybe above on P1000 was just Windows app issue but was not checking on web app.

Right now I do not have P1000 anymore. Stayed with RTX3050 which should be more futureproof.

Tested on:

1.43.0.10162 - no HW transcoding - but as you mentioned it is known issue there

1.42.1.10060 - on WIndows app issues with playback and app shutting down playback. Via web (LAN) it already started with transcoding (no direct play) and says:

“4K DoVi/HDR10 (HEVC Main 10) (hw) → 1080P (H264)—Transcoding(hw)“

In case you have new version to test HW transcoding I`m ready to help :slight_smile: