Hardware decoding not working on web client / works on iOS app

Server Version#: 1.21.4.4079
Player Version#: 4.51.3"

I have run into an issue where I am not able to load hardware transcoded streams on the webclient, however when I start them on ios app (by setting quality down to something low) it plays fine and I can see the nvidia-smi show me that transcoded playback.

But when I play “origianl stream” everything works fine.

chunk-11-4a22b0e9c2e….51.3-6ef4412.js:19 GET http://192.168.100.2:32400/video/:/transcode/universal/dash/n05ft8t7xokh4yoa3udogr1m/0/280.m4s 404 (Not Found)
chunk-11-4a22b0e9c2e….51.3-6ef4412.js:19 GET http://192.168.100.2:32400/video/:/transcode/universal/dash/n05ft8t7xokh4yoa3udogr1m/1/280.m4s 404 (Not Found)
chunk-11-4a22b0e9c2e….51.3-6ef4412.js:19 GET http://192.168.100.2:32400/video/:/transcode/universal/dash/n05ft8t7xokh4yoa3udogr1m/0/280.m4s 404 (Not Found)
chunk-11-4a22b0e9c2e….51.3-6ef4412.js:19 GET http://192.168.100.2:32400/video/:/transcode/universal/dash/n05ft8t7xokh4yoa3udogr1m/1/280.m4s 404 (Not Found)

I first thought it was issue with my reverse proxy, so I instead going directly to a docker forwarded port. However same video plays fine properly being transcoded on the ios device.. is this something to with a failing transcode?

Turning off hardware acceleration , all transcoding works. So I think its something to do with transcode not starting up when requested from plex web, but works when transcoding to the requirement from iphone. any one have any ideas?

Here are the server logs

Request: [192.168.100.1:43158 (Allowed Network (Subnet))] GET /video/:/transcode/universal/dash/xveuzlv05wlbzwxab1p0qu20/1/304.m4s (5 live) GZIP Signed-in
Mar 02, 2021 20:16:12.747 [0x7faf8e1f4700] VERBOSE -  * Accept => */*
Mar 02, 2021 20:16:12.747 [0x7faf8e1f4700] VERBOSE -  * Accept-Encoding => gzip, deflate
Mar 02, 2021 20:16:12.747 [0x7faf8e1f4700] VERBOSE -  * Accept-Language => en-US,en;q=0.9
Mar 02, 2021 20:16:12.747 [0x7faf8e1f4700] VERBOSE -  * Cache-Control => no-cache
Mar 02, 2021 20:16:12.747 [0x7faf8e1f4700] VERBOSE -  * Connection => keep-alive
Mar 02, 2021 20:16:12.747 [0x7faf8e1f4700] VERBOSE -  * Host => 192.168.100.2:32400
Mar 02, 2021 20:16:12.747 [0x7faf8e1f4700] VERBOSE -  * Pragma => no-cache
Mar 02, 2021 20:16:12.747 [0x7faf8e1f4700] VERBOSE -  * Referer => http://192.168.100.2:32400/web/index.html
Mar 02, 2021 20:16:12.747 [0x7faf8e1f4700] VERBOSE -  * User-Agent => Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36
Mar 02, 2021 20:16:12.747 [0x7faf8d1f2700] DEBUG - Completed: [192.168.100.1:43158] 404 GET /video/:/transcode/universal/dash/xveuzlv05wlbzwxab1p0qu20/1/304.m4s (5 live) GZIP 0ms 379 bytes (pipelined: 2)
Mar 02, 2021 20:16:14.150 [0x7faf8d1f2700] VERBOSE - WebSocket: processed 1 frame(s)
Mar 02, 2021 20:16:14.537 [0x7faf417fa700] VERBOSE - LongPoll: Sending data...
Mar 02, 2021 20:16:14.537 [0x7faf8d1f2700] VERBOSE - LongPoll: got onDataRequested, closing connection

@vajonam

That excerpt is not usable.

  1. It’s verbose.
  2. It shows one packet exchange with Plex/web.

I need a full proper DEBUG ON, VERBOSE OFF logs ZIP file

  1. Set the logging as indicated (PLEASE leave it that way – which is the default)
  2. Start Playback
  3. Play for 20 seconds
  4. Stop Playback
  5. wait 20 seconds
  6. Download logs ZIP file
  7. Attach it here for me to review.

Secondarily, those 404 errors will frequently occur if the transcoder temporary directory is on a network storage device where file locking is not mandatory. (Most network share locks are advisory only because they cannot enforce locking across multiple hosts )

@ChuckPa. Thanks for the pointers, I moved the transcode to somewhere local as well.

If in the player settings i set the quality to the desired transcoded quality that is less than the quality of the file. it starts up with the hw transcoded stream and plays okay. however it seems to struggle when I change it on the fly. Is this a supported use case? changing hw transcode profiles on the fly? (I presume the “auto” mode does this on its own?)

@ChuckPa
Uploaded logs as requested.

  1. Started stream with “Auto Settings”
  2. Played for 20 seconds.
  3. Changed quality to lower
  4. Waited 20 seconds

Plex Media Server Logs_2021-03-02_20-46-57.zip (881.4 KB)

@vajonam

Would you mind letting the photos wait – OR – let the photo processing complete before creating logs again?

Also, There is no need to purge the old PMS logs . You can safely leave them.

@ChuckPa

Attached here

Hi @ChuckPa were you able to find anything in the logs?

found some things but still trying to make sense of it all.
I also had some local hardware issues jump up as priority 1 so that set me back a full day. sorry about that.

I am on you issue now. I’ll keep this open and post again when i have something to test / reply

@ChuckPa not a massive rush. thanks for looking into it. !

Do you know you’ve got a quaity limit of 2 Mbps ?

Mar 02, 2021 23:52:50.978 [0x7f7419ffb700] DEBUG - [Transcode] Bolivia Special - video.bitrate limitation applies: 7978 > 2000
Mar 02, 2021 23:52:50.978 [0x7f7419ffb700] DEBUG - [Transcode] Bolivia Special - video.bitrate limitation applies: 7978 > 2000

One thing happening is:

iOS app has its own ‘thick client’ decoder built in. The web app doesn’t.
That’s what I’m trying to resolve. Why can iOS work but not main FFMPEG & Nvidia.

@ChuckPa

Yes the 2Mpbs limit was to force Transcoding.

But here is what doesn’t work. I know you have context switching. So here is the issue. Changing qualities from the Web client doesn’t seem to work when using hw transcoding

On the web client if I start it with 2Mbps it works (hw transcode), but If I change to 4 or any other profile, it results in a bunch of 404s and doesn’t continue. Same happens when switching from direct play to different hardware transcode profile.

However same use case if disable hardware decoding, it its able to switch resolutions without any 404s.

Like you said since the iOS client is different it explains that it works.

I cannot reproduce any faults with playing using Plex/Web in Chrome.

All of these changed quality levels within 2-3 seconds and provided smooth playback.

Thanks for testing this. I will keep an eye out for this issue again. I haven’t used the web in a while to be honest.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.