Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[6.7.0] Can't get Plex HW transcoding to work with docker

Featured Replies

Hi,

this is my first post here so here's hoping I'm in the correct forum. I've been scratching my head for two days now trying to get HW transcoding to work with Plex running as a Docker container. I have an ASRock J4105 miniITX board (integrated J4105 quadcore Celeron with UHD600 iGPU), so QuickSync is supported.

 

I have of course modified my go & syslinux.cfg files to include support for the needed i915 drivers:

 

#!/bin/bash
#Setup drivers for hardware transcoding in Plex
modprobe i915
chown -R nobody:users /dev/dri
chmod -R 777 /dev/dri
#Start the Management Utility
/usr/local/sbin/emhttp &
label Unraid OS
  menu default
  kernel /bzimage
  append pci=realloc=off initrd=/bzroot i915.alpha_support=1

I am passing /dev/dri to the container as a device and the devices are visible inside the container:

root@532cd6092721:/# ls -la /dev/dri
total 0
drwxr-xr-x 2 root root        80 Jun 19 11:05 .
drwxr-xr-x 6 root root       360 Jun 19 11:05 ..
crw-rw---- 1 root video 226,   0 Jun 19 11:05 card0
crwxrwxrwx 1   99 users 226, 128 Jun 19 11:05 renderD128

So far all looks good but when I force trasncoding by lowering the stream quality I get no video. It just seems to be buffering endlessly, yet in the dashboard, I can see HW transcoding is ongoing:

 

image.png.d90450ad36bb536f96aec7efaa148fc2.png

 

I have also checked the Plex logs quite extensively and it appears that the transcoder is working fine and is actually using HW acceleration as well.

 

Jun 19, 2019 15:38:32.248 [0x15102bbfd700] DEBUG - TPU: hardware transcoding: using hardware decode accelerator vaapi
Jun 19, 2019 15:38:32.248 [0x15102bbfd700] DEBUG - [Universal] Using local file path instead of URL: /movies/Captain Marvel (2019)/Captain Marvel (2019) - Bluray-1080p.mkv
Jun 19, 2019 15:38:32.249 [0x15102bbfd700] DEBUG - HTTP requesting GET http://127.0.0.1:32400/library/streams/181?X-Plex-Token=xxxxxxxxxxxxxxxxxxxx
Jun 19, 2019 15:38:32.249 [0x151093dfe700] DEBUG - Auth: authenticated user 1 as obfuscated
Jun 19, 2019 15:38:32.249 [0x15102b1f8700] DEBUG - Request: [127.0.0.1:34844 (Loopback)] GET /library/streams/181 (14 live) GZIP Signed-in Token (obfuscated)
Jun 19, 2019 15:38:32.252 [0x15102b1f8700] DEBUG - Content-Length of /movies/Captain Marvel (2019)/Captain Marvel (2019) - Bluray-1080p.en.srt is 91753.
Jun 19, 2019 15:38:32.253 [0x151093dfe700] DEBUG - Completed: [127.0.0.1:34844] 200 GET /library/streams/181 (14 live) GZIP 3ms 91753 bytes
Jun 19, 2019 15:38:32.253 [0x15102bbfd700] DEBUG - HTTP 200 response from GET http://127.0.0.1:32400/library/streams/181?X-Plex-Token=xxxxxxxxxxxxxxxxxxxx
Jun 19, 2019 15:38:32.253 [0x15102bbfd700] DEBUG - Detected character set of UTF-8.
Jun 19, 2019 15:38:32.254 [0x15102bbfd700] DEBUG - Downloaded stream from [http://127.0.0.1:32400/library/streams/181?X-Plex-Token=xxxxxxxxxxxxxxxxxxxx] (codec: srt) to temporary file [/transcode/Transcode/Sessions/plex-transcode-jk19rtdgc5dtot7fu88d8gsy-ef1b128f-4370-4808-a01d-07825b462435/temp-0.srt]
Jun 19, 2019 15:38:32.254 [0x15102bbfd700] DEBUG - TPU: hardware transcoding: zero-copy support present
Jun 19, 2019 15:38:32.254 [0x15102bbfd700] DEBUG - TPU: hardware transcoding: using zero-copy transcoding
Jun 19, 2019 15:38:32.254 [0x15102bbfd700] DEBUG - TPU: hardware transcoding: final decoder: vaapi, final encoder: vaapi
Jun 19, 2019 15:38:32.255 [0x15102bbfd700] DEBUG - Job running: EAE_ROOT='/tmp/pms-85736070-8352-49fb-956e-d7be9ba4a099/EasyAudioEncoder' FFMPEG_EXTERNAL_LIBS='/config/Library/Application\ Support/Plex\ Media\ Server/Codecs/21b5515-2321-linux-x86_64/' XDG_CACHE_HOME='/config/Library/Application Support/Plex Media Server/Cache' XDG_DATA_HOME='/usr/lib/plexmediaserver/Resources' X_PLEX_TOKEN='xxxxxxxxxxxxxxxxxxxx' '/usr/lib/plexmediaserver/Plex Transcoder' '-codec:0' 'h264' '-hwaccel:0' 'vaapi' '-hwaccel_fallback_threshold:0' '10' '-hwaccel_output_format:0' 'vaapi' '-codec:1' 'dca' '-analyzeduration' '20000000' '-probesize' '20000000' '-i' '/movies/Captain Marvel (2019)/Captain Marvel (2019) - Bluray-1080p.mkv' '-analyzeduration' '20000000' '-probesize' '20000000' '-i' '/transcode/Transcode/Sessions/plex-transcode-jk19rtdgc5dtot7fu88d8gsy-ef1b128f-4370-4808-a01d-07825b462435/temp-0.srt' '-filter_complex' '[0:0]hwupload[0];[0]scale_vaapi=w=1278:h=538:format=nv12[1];[1]hwupload[2]' '-filter_complex' '[0:1] aresample=async=1:ocl='\''stereo'\'':osr=48000[3]' '-map' '[2]' '-metadata:s:0' 'language=eng' '-codec:0' 'h264_vaapi' '-b:0' '2717k' '-maxrate:0' '3623k' '-bufsize:0' '7246k' '-r:0' '23.975999999999999' '-force_key_frames:0' 'expr:gte(t,0+n_forced*5)' '-map' '[3]' '-metadata:s:1' 'language=eng' '-codec:1' 'aac' '-b:1' '148k' '-f' 'dash' '-min_seg_duration' '5000000' '-skip_to_segment' '1' '-time_delta' '0.0625' '-manifest_name' 'http://127.0.0.1:32400/video/:/transcode/session/jk19rtdgc5dtot7fu88d8gsy/ef1b128f-4370-4808-a01d-07825b462435/manifest' '-avoid_negative_ts' 'disabled' '-map_metadata' '-1' '-map_chapters' '-1' 'dash' '-map' '1:s:0' '-metadata:s:0' 'language=eng' '-codec:0' 'ass' '-f' 'segment' '-segment_format' 'ass' '-segment_time' '1' '-segment_header_filename' 'sub-header' '-segment_start_number' '0' '-segment_list' 'http://127.0.0.1:32400/video/:/transcode/session/jk19rtdgc5dtot7fu88d8gsy/ef1b128f-4370-4808-a01d-07825b462435/seglist?stream=subtitles' '-segment_list_type' 'csv' '-segment_list_size' '2147483647' '-segment_list_separate_stream_times' '1' '-segment_format_options' 'ignore_readorder=1' 'sub-chunk-%05d' '-start_at_zero' '-copyts' '-vsync' 'cfr' '-y' '-vaapi_device' '/dev/dri/renderD128' '-nostats' '-loglevel' 'quiet' '-loglevel_plex' 'error' '-progressurl' 'http://127.0.0.1:32400/video/:/transcode/session/jk19rtdgc5dtot7fu88d8gsy/ef1b128f-4370-4808-a01d-07825b462435/progress'
Jun 19, 2019 15:38:32.256 [0x15102bbfd700] DEBUG - Jobs: Starting child process with pid 586
Jun 19, 2019 15:38:32.281 [0x15102adf6700] DEBUG - Request: [127.0.0.1:34846 (Loopback)] PUT /video/:/transcode/session/jk19rtdgc5dtot7fu88d8gsy/ef1b128f-4370-4808-a01d-07825b462435/progress?status=startup (15 live) Signed-in Token (obfuscated)
Jun 19, 2019 15:38:32.282 [0x151093dfe700] DEBUG - Completed: [127.0.0.1:34846] 204 PUT /video/:/transcode/session/jk19rtdgc5dtot7fu88d8gsy/ef1b128f-4370-4808-a01d-07825b462435/progress?status=startup (15 live) 0ms 203 bytes (pipelined: 1) (range: bytes=0-) 
Jun 19, 2019 15:38:32.282 [0x1510916b8700] DEBUG - Request: [127.0.0.1:34846 (Loopback)] PUT /video/:/transcode/session/jk19rtdgc5dtot7fu88d8gsy/ef1b128f-4370-4808-a01d-07825b462435/progress?status=opening (15 live) Signed-in Token (obfuscated)
Jun 19, 2019 15:38:32.282 [0x151093dfe700] DEBUG - Completed: [127.0.0.1:34846] 204 PUT /video/:/transcode/session/jk19rtdgc5dtot7fu88d8gsy/ef1b128f-4370-4808-a01d-07825b462435/progress?status=opening (15 live) 0ms 203 bytes (pipelined: 2) (range: bytes=0-) 
Jun 19, 2019 15:38:32.284 [0x15102aff7700] DEBUG - Request: [127.0.0.1:34846 (Loopback)] PUT /video/:/transcode/session/jk19rtdgc5dtot7fu88d8gsy/ef1b128f-4370-4808-a01d-07825b462435/progress?status=opened (15 live) Signed-in Token (obfuscated)
Jun 19, 2019 15:38:32.284 [0x151093fff700] DEBUG - Completed: [127.0.0.1:34846] 204 PUT /video/:/transcode/session/jk19rtdgc5dtot7fu88d8gsy/ef1b128f-4370-4808-a01d-07825b462435/progress?status=opened (15 live) 0ms 203 bytes (pipelined: 3) (range: bytes=0-) 
Jun 19, 2019 15:38:32.284 [0x15102b9fc700] DEBUG - Request: [127.0.0.1:34846 (Loopback)] PUT /video/:/transcode/session/jk19rtdgc5dtot7fu88d8gsy/ef1b128f-4370-4808-a01d-07825b462435/progress/stream?index=0&id=0&codec=h264&type=video (14 live) Signed-in Token (obfuscated)
Jun 19, 2019 15:38:32.285 [0x151093fff700] DEBUG - Completed: [127.0.0.1:34846] 206 PUT /video/:/transcode/session/jk19rtdgc5dtot7fu88d8gsy/ef1b128f-4370-4808-a01d-07825b462435/progress/stream?index=0&id=0&codec=h264&type=video (14 live) 0ms 256 bytes (pipelined: 4) (range: bytes=0-) 
Jun 19, 2019 15:38:32.285 [0x15102adf6700] DEBUG - Request: [127.0.0.1:34846 (Loopback)] PUT /video/:/transcode/session/jk19rtdgc5dtot7fu88d8gsy/ef1b128f-4370-4808-a01d-07825b462435/progress/stream?index=1&id=0&codec=dts&type=audio (14 live) Signed-in Token (obfuscated)
Jun 19, 2019 15:38:32.285 [0x151093fff700] DEBUG - Completed: [127.0.0.1:34846] 206 PUT /video/:/transcode/session/jk19rtdgc5dtot7fu88d8gsy/ef1b128f-4370-4808-a01d-07825b462435/progress/stream?index=1&id=0&codec=dts&type=audio (14 live) 0ms 256 bytes (pipelined: 5) (range: bytes=0-) 
Jun 19, 2019 15:38:32.340 [0x1510916b8700] DEBUG - Request: [127.0.0.1:34846 (Loopback)] PUT /video/:/transcode/session/jk19rtdgc5dtot7fu88d8gsy/ef1b128f-4370-4808-a01d-07825b462435/progress/streamDetail?index=0&id=0&codec=h264&type=video&profile=High&language=eng&width=1920&height=808&interlaced=0&level=41&frameRate=23.9

Just an excerpt, full logs attached if anyone is interested in taking a look at them.

 

Any ideas as to why I am not getting any video even though the transcoder appears to be working fine will be much appreciated :)

Plex Media Server Logs_2019-06-19_16-27-36.zip

Edited by switch
Attached logs

With Unraid 6.7.0 you shouldn't need i915.alpha_support=1 in your syslinux.cfg file. The i915 driver has for a while directly supported up to 8th generation Coffee Lake. It doesn't yet support 9th generation Coffee Lake though.

 

Beyond that I'm not sure what would prevent it from working?

  • Author

Thanks, Taddeusz. I've ommited that from syslinux.cfg and indeed the devices are still present. However no change with HW transcoding, still getting a black screen with the loading indicator :( The J4015 is 7th gen I guess (Gemini Lake) and I've seen people getting HW transcoding work on Unraid + Docker, as evidenced here: https://forums.plex.tv/t/geminilake-j4105-hw-transcoding-failing-on-win10/229306/2

I think this is probably an issue with Plex itself, was just curious if maybe someone around here has run into a similar issue...

 

EDIT:

 

Just did some more troubleshooting, this is the input of vainfo run inside the container:

 

root@7011518d444b:/# vainfo
error: XDG_RUNTIME_DIR not set in the environment.
error: can't connect to X server!
libva info: VA-API version 1.1.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_1
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.1 (libva 2.1.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Gemini Lake - 2.1.0
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointEncSliceLP
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointEncSliceLP
      VAProfileH264MultiviewHigh      : VAEntrypointVLD
      VAProfileH264MultiviewHigh      : VAEntrypointEncSlice
      VAProfileH264StereoHigh         : VAEntrypointVLD
      VAProfileH264StereoHigh         : VAEntrypointEncSlice
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointEncPicture
      VAProfileVP8Version0_3          : VAEntrypointVLD
      VAProfileVP8Version0_3          : VAEntrypointEncSlice
      VAProfileHEVCMain               : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointEncSlice
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileHEVCMain10             : VAEntrypointEncSlice
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileVP9Profile0            : VAEntrypointEncSlice
      VAProfileVP9Profile2            : VAEntrypointVLD

However, as mentioned above, even though all seems to indicate that the transcoder sees the iGPU and is trying to use it, looking at the iGPU utilization through intel-igpu-tools, the device is idle :(

 

image.thumb.png.acefccfe0af2fdb55bdf21eaebd132b6.png

 

EDIT2: Just tried the official plexinc docker image instead of linuxserver's and it behaves the same.

Edited by switch

I have the same issue in TVheadend with unraid 6.7.
Transcoding not working too.
I'm using one J4015M board and i lost transcoding after update from Unraid 6.6.6 to 6.7 ( 6.7.1 RC1 / 6.7.2 Rc2 have the same issue.), i reverted back to 6.6.6 and it are working again. So is confirmed that's an Unraid issue, not from Docker conteiners.( TVH and Plex)

How cen we try find what are causing it?
Best Regards, psycmos
 

  • Author

I think our best course of action would be to file a bug report with the unRAID dev team. I don't think this is something that can be fixed by us end users.

 

BTW, has anyone tried if HW transcoding works with 6.7.1?

Edited by switch

Would like to point out I'm not encountering issues with HW transcoding on my Pentium G4620 iGPU, but I'm using the official Emby docker.

  • Author

It almost seems to be HW specific, as I've only seen people with the J4105 CPU/UHD600 iGPU have this issue. Your CPU has UHD630 so maybe that could explain why it is working for you?

It almost seems to be HW specific, as I've only seen people with the J4105 CPU/UHD600 iGPU have this issue. Your CPU has UHD630 so maybe that could explain why it is working for you?


The Intel data sheet on the J4105 is weird. It doesn’t show list QuickSync support but I’ve seen other people that seem to be using it on that CPU. So it’s possible it doesn’t actually have QuickSync.


Sent from my iPhone using Tapatalk
  • Author

It does. I forgot to mention that I got it to work without a hitch on unRAID 6.6.7.

  • Author

Another two affected users:

 

 

Has anyone submitted a bug report for this yet? It seems to affect those on 6.7.x and using Plex. Are any older iGPU’s affected (older than the 7th and 8th gen one’s mentioned)?

20 hours ago, ramblinreck47 said:

Has anyone submitted a bug report for this yet? It seems to affect those on 6.7.x and using Plex. Are any older iGPU’s affected (older than the 7th and 8th gen one’s mentioned)?

How can we report this for Unraid team? I have not reported it ...

  • Author

I will post to the bug reports forum on here and paste a link to the topic when I do. Please make sure to post there as well, more affected users = bigger chance for a fix.

1 minute ago, psycmos said:

How can we report this for Unraid team? I have not reported it ...

I believe this (link below) is the proper place to let them know of any bugs that need to be fixed for the next release. I'm sure they'd appreciate as much information as possible.

 

https://forums.unraid.net/bug-reports/stable-releases/

17 minutes ago, switch said:

I will post to the bug reports forum on here and paste a link to the topic when I do. Please make sure to post there as well, more affected users = bigger chance for a fix. 

Great We will wait for news! :D

  • Author

Fire away.

 

  • Author
21 hours ago, ramblinreck47 said:

Has anyone submitted a bug report for this yet? It seems to affect those on 6.7.x and using Plex. Are any older iGPU’s affected (older than the 7th and 8th gen one’s mentioned)?

So far this seems to be UHD600 iGPU / 7th gen Celeron Gemini Lake (J4105 namely) specific. I've opened a bug report, link one post above.

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.