[Support] binhex - Plex


Recommended Posts

On 9/25/2021 at 3:12 PM, Aerodb said:

Hello all.

 

I'm looking for a way to specify a port for the plex docker to run on. I have had an issue where i cant reach my plex docker instance . directly with the LAN-IP:32400. I am only able to manage the server through the plex.tv url. 

 

I believe this is due to the lack of a port assignment in the docker config but when i added that field it didn't change/fix the issue. 

 

I have the port configured in the plex settings, but i believe the server is not responding to the requests since the port mapping i added to the docker is likely not the correct way to do this. 

 

Any guidance or trouble shooting is greatly appreciated. 

Screenshot 2021-09-25 141242.jpg

Screenshot 2021-09-25 141225.jpg

 

 

Did you fwd that port on your router settings?

Edited by Whitelabel
Link to comment
12 hours ago, Whitelabel said:

 

 

Did you fwd that port on your router settings?

I do have that port forwarded in the router but i thought that was for inbound WAN traffic to the LAN IP. I'm talking about reaching the plex server from another computer on the same LAN, same subnet, same VLAN.

 

all requests fail to load in the browser when i attempt to load the server-ip:32400 but i can reach all the other dockers on the server with the server IP and that containers port number. plex is the only one that i cant reach directly across the LAN. I have to manage it via the plex.tv URL.

Link to comment

Hi all,

 

I tried setting up the plex container to use the network of sabnzbdvpn - I've done so for many other containers with success. In the browser and android app that works, what I can't get to work is the app on my LG TV. Any idea what that could be? I replicated all the port rules from the plex container ... here are the port mappings:

 

172.17.0.4:1900/UDP10.18.10.2:1900
172.17.0.4:3005/TCP10.18.10.2:3005
172.17.0.4:32400/TCP10.18.10.2:32400
172.17.0.4:32410/UDP10.18.10.2:32410
172.17.0.4:32412/UDP10.18.10.2:32412
172.17.0.4:32413/UDP10.18.10.2:32413
172.17.0.4:32414/UDP10.18.10.2:32414
172.17.0.4:32469/TCP10.18.10.2:32469
172.17.0.4:8324/TCP10.18.10.2:8324

 

Also I set up those variables:

 

VPN_INPUT_PORTS
8989,9897,7878,6767,8181,1900,3005,32400,32410,32412,32413,32414,32469,8324

VPN_OUTPUT_PORTS
32400

 

Not sure about VPN_OUTPUT_PORTS but it doesn't work either if I remove it.

 

Any idea what might be blocking the TV app to see the server?

 

PS: It's an LG CX so WebOS 6.0 with the official Plex app.

 

Edited by epp
Link to comment
On 10/6/2021 at 11:08 PM, JGNiDK said:
I'm getting this error all the time now: Critical: libusb_init failed
Any idea how to solve it? Can't get into my Plex GUI and watch movies.....
 

Ignore that message it is not critical and is caused by a bug in plex, check your Plex log, probably database corruption would be my first thought as this is quite common

Sent from my CLT-L09 using Tapatalk

 

EDIT - just to expand on this now im not on my phone, see Q4 and Q5:- https://github.com/binhex/documentation/blob/master/docker/faq/plex.md

  • Thanks 1
Link to comment
On 10/10/2021 at 9:54 AM, binhex said:

Ignore that message it is not critical and is caused by a bug in plex, check your Plex log, probably database corruption would be my first thought as this is quite common

Sent from my CLT-L09 using Tapatalk

 

EDIT - just to expand on this now im not on my phone, see Q4 and Q5:- https://github.com/binhex/documentation/blob/master/docker/faq/plex.md

You're right. I uninstalled and installed again. Now working. Thanks. 

Link to comment

Hello,

 

I've got a problem with tone mapping hdr to sdr. My system (i3-6100) cannot tone map even a single 1080p ~6mbit hdr10 stream to 1080p sdr. Transcode speed does not go over 1.0. Intel Quick Sync is enabled and works (i see 'HW' in Tautulli), but I suspect the necessary dependencies that the Plex devs talk about here are missing, and that the tone mapping is done in software and only the rest of the transcode work is done by QSV. Are my suspicions right? How do I check for the presence of the “libOpenCL” library and “Beignet” GPU driver and how do I install them? Or maybe it would be easier to switch to a different Plex Server container?

 

Many thanks.

 

EDIT: Or my i3-6100 simply does not support hdr->sdr tone mapping in hardware?

 

EDIT 2: I've discovered my i3-6100 doesn't support hardware decoding of 10-bit h.265 files, so that's where the slow transcode speed and high cpu usage is coming from. If anyone can tell me, I'd still like to know if this container is equipped for tone mapping by means of Quick Sync and if my i3-6100 is capable on tone mapping at all. Wikipedia has me suspecting it's not, but the info feels incomplete ('hdr10 tone mapping per qsv 7 but nothing on DV'). Thanks.

Edited by thatsthefrickenlightning
  • Thanks 1
Link to comment

So I've a weird one.  I just upgraded to the latest image, and now my "Up next" is gone from the home page.  So unfinished movies and next tv shows are no longer showing up at the top of the screen.

 

Was this changed in the latest version?  Or moved into a config object somewhere (i didnt find one, i did look)?  Or did something get corrupted on my end?

Link to comment
48 minutes ago, Carpesimia said:

So I've a weird one.  I just upgraded to the latest image, and now my "Up next" is gone from the home page.  So unfinished movies and next tv shows are no longer showing up at the top of the screen.

 

Was this changed in the latest version?  Or moved into a config object somewhere (i didnt find one, i did look)?  Or did something get corrupted on my end?

 

And I write this message, and BOOM.  Continue watching shows up 20 mins later with the 6 things that were valid all up there.  WTH?!?

 

Link to comment
On 10/19/2021 at 3:41 AM, thatsthefrickenlightning said:

Hello,

 

I've got a problem with tone mapping hdr to sdr. My system (i3-6100) cannot tone map even a single 1080p ~6mbit hdr10 stream to 1080p sdr. Transcode speed does not go over 1.0. Intel Quick Sync is enabled and works (i see 'HW' in Tautulli), but I suspect the necessary dependencies that the Plex devs talk about here are missing, and that the tone mapping is done in software and only the rest of the transcode work is done by QSV. Are my suspicions right? How do I check for the presence of the “libOpenCL” library and “Beignet” GPU driver and how do I install them? Or maybe it would be easier to switch to a different Plex Server container?

 

Many thanks.

 

EDIT: Or my i3-6100 simply does not support hdr->sdr tone mapping in hardware?

 

EDIT 2: I've discovered my i3-6100 doesn't support hardware decoding of 10-bit h.265 files, so that's where the slow transcode speed and high cpu usage is coming from. If anyone can tell me, I'd still like to know if this container is equipped for tone mapping by means of Quick Sync and if my i3-6100 is capable on tone mapping at all. Wikipedia has me suspecting it's not, but the info feels incomplete ('hdr10 tone mapping per qsv 7 but nothing on DV'). Thanks.

 

I'll try to answer your question (which I believe is yes).

 

My setup is:

CPU - Intel® Xeon® E-2176G CPU @ 3.70GHz

Mobo - Gigabyte Technology Co., Ltd. C246M-WU4-CF

*edit - I'm using the binhex container and haven't done anything special with the container or it's settings other than what's mentioned below

 

 

The CPU w/ igpu is based on Coffee Lake, which meets the minimum requirement identified by Plex.

 

I will note, most of my playback is internal/direct play so I hadn't really looked into whether something was being transcoded via hardware or not. I Have just this past week added a couple friends AND just realized that HDR tone mapping was added to plex at the end of last year which is super exciting. Maybe I don't need to separate my libraries anymore.

 

First of all, I now see that even though I had checked the box to enable hardware transcoding via the Plex webui and have a lifetime plex pass, I didn't realize I ALSO had to add a device in the container settings as per this post:

I did also install the intel igpu TOP application (before I realized I needed the device in the container) so I don't know if that was actually needed.

 

Regardless, within the WEBUI during playback of a 1080p x265 10 bit video transcoded to 720p for my iphone I now see:

Video

 1080p (HEVC Main 10) (hw)

 720P (H264)—Transcode (hw)

Audio

 English (EAC3 5.1)

 OPUS—Transcode

 

And in the debug log I see (I've sanitized some details but there should be enough for you to see it's working):

 

<Player address="xxxxxxxxx" device="iPhone" machineIdentifier="xxxxxxxxx" model="12,1" platform="iOS" platformVersion="15.0.2" product="Plex for iOS" remotePublicAddress="xxxxxxxxx" title="xxxxxxxxxs iPhone" vendor="Apple" version="7.24.1" local="0" relayed="0" secure="1" userID="1" />
<Variants>
<Variant id="xxxxxxxxx" targetBitrate="3745" context="streaming" sourceVideoCodec="hevc" sourceAudioCodec="eac3" videoDecision="transcode" audioDecision="transcode" protocol="hls" container="mkv" videoCodec="h264" audioCodec="opus" audioChannels="2" transcodeHwRequested="1" transcodeHwDecoding="vaapi" transcodeHwEncoding="vaapi" transcodeHwDecodingTitle="Intel (VA API)" transcodeHwEncodingTitle="Intel (VA API)" transcodeHwFullPipeline="1">
<Media id="28075" videoProfile="main 10" audioChannels="2" audioCodec="opus" bitrate="3566" container="mkv" duration="11112768" height="720" protocol="hls" videoCodec="h264" videoFrameRate="24p" videoResolution="720p" width="1200" selected="1">
<Part deepAnalysisVersion="6" hasThumbnail="1" id="32363" requiredBandwidths="12602,10924,9233,8160,7708,7569,7569,7569" videoProfile="main 10" bitrate="3566" container="mkv" duration="11112768" height="720" protocol="hls" width="1200" decision="transcode" selected="1">
<Stream bitrate="3447" codec="h264" default="1" displayTitle="1080p (HEVC Main 10)" extendedDisplayTitle="Barry.Lyndon.1975.Criterion.V2.1080p.BluRay.HEVC.EAC3-xxxxxxxxx (1080p HEVC Main 10)" frameRate="23.975999832153320" height="720" id="58676" requiredBandwidths="11802,10125,8366,7296,6835,6728,6728,6728" streamType="1" width="1200" decision="transcode" location="segments-av" />
<Stream bitrate="119" bitrateMode="cbr" channels="2" codec="opus" default="1" displayTitle="English (EAC3 5.1)" extendedDisplayTitle="Dolby  Digital Plus 5.1 (English EAC3)" id="58677" language="English" languageCode="eng" languageTag="en" requiredBandwidths="640,640,640,640,640,640,640,640" selected="1" streamType="2" decision="transcode" location="segments-av" />

 

 

Let me know if you need anything, looks like it's all good to me. I did notice some minor lip sync issues on another video I played have (x265 but not main 10) but this video is playing back flawlessly so am not pointing fingers at the hardware encoding, I was also using my phone so it was hard to tell at that size. Regardless, I had no idea I wasn't using hardware until now (due to the device thing haha) but am glad that's working AND 10 bit tone mapping is working as well.

 

 

Edited by SloppyG
  • Thanks 1
Link to comment
On 10/23/2021 at 8:05 PM, SloppyG said:

 

I'll try to answer your question (which I believe is yes).

 

My setup is:

CPU - Intel® Xeon® E-2176G CPU @ 3.70GHz

Mobo - Gigabyte Technology Co., Ltd. C246M-WU4-CF

*edit - I'm using the binhex container and haven't done anything special with the container or it's settings other than what's mentioned below

 

 

The CPU w/ igpu is based on Coffee Lake, which meets the minimum requirement identified by Plex.

 

I will note, most of my playback is internal/direct play so I hadn't really looked into whether something was being transcoded via hardware or not. I Have just this past week added a couple friends AND just realized that HDR tone mapping was added to plex at the end of last year which is super exciting. Maybe I don't need to separate my libraries anymore.

 

First of all, I now see that even though I had checked the box to enable hardware transcoding via the Plex webui and have a lifetime plex pass, I didn't realize I ALSO had to add a device in the container settings as per this post:

I did also install the intel igpu TOP application (before I realized I needed the device in the container) so I don't know if that was actually needed.

 

Regardless, within the WEBUI during playback of a 1080p x265 10 bit video transcoded to 720p for my iphone I now see:

Video

 1080p (HEVC Main 10) (hw)

 720P (H264)—Transcode (hw)

Audio

 English (EAC3 5.1)

 OPUS—Transcode

 

And in the debug log I see (I've sanitized some details but there should be enough for you to see it's working):

 

<Player address="xxxxxxxxx" device="iPhone" machineIdentifier="xxxxxxxxx" model="12,1" platform="iOS" platformVersion="15.0.2" product="Plex for iOS" remotePublicAddress="xxxxxxxxx" title="xxxxxxxxxs iPhone" vendor="Apple" version="7.24.1" local="0" relayed="0" secure="1" userID="1" />
<Variants>
<Variant id="xxxxxxxxx" targetBitrate="3745" context="streaming" sourceVideoCodec="hevc" sourceAudioCodec="eac3" videoDecision="transcode" audioDecision="transcode" protocol="hls" container="mkv" videoCodec="h264" audioCodec="opus" audioChannels="2" transcodeHwRequested="1" transcodeHwDecoding="vaapi" transcodeHwEncoding="vaapi" transcodeHwDecodingTitle="Intel (VA API)" transcodeHwEncodingTitle="Intel (VA API)" transcodeHwFullPipeline="1">
<Media id="28075" videoProfile="main 10" audioChannels="2" audioCodec="opus" bitrate="3566" container="mkv" duration="11112768" height="720" protocol="hls" videoCodec="h264" videoFrameRate="24p" videoResolution="720p" width="1200" selected="1">
<Part deepAnalysisVersion="6" hasThumbnail="1" id="32363" requiredBandwidths="12602,10924,9233,8160,7708,7569,7569,7569" videoProfile="main 10" bitrate="3566" container="mkv" duration="11112768" height="720" protocol="hls" width="1200" decision="transcode" selected="1">
<Stream bitrate="3447" codec="h264" default="1" displayTitle="1080p (HEVC Main 10)" extendedDisplayTitle="Barry.Lyndon.1975.Criterion.V2.1080p.BluRay.HEVC.EAC3-xxxxxxxxx (1080p HEVC Main 10)" frameRate="23.975999832153320" height="720" id="58676" requiredBandwidths="11802,10125,8366,7296,6835,6728,6728,6728" streamType="1" width="1200" decision="transcode" location="segments-av" />
<Stream bitrate="119" bitrateMode="cbr" channels="2" codec="opus" default="1" displayTitle="English (EAC3 5.1)" extendedDisplayTitle="Dolby  Digital Plus 5.1 (English EAC3)" id="58677" language="English" languageCode="eng" languageTag="en" requiredBandwidths="640,640,640,640,640,640,640,640" selected="1" streamType="2" decision="transcode" location="segments-av" />

 

 

Let me know if you need anything, looks like it's all good to me. I did notice some minor lip sync issues on another video I played have (x265 but not main 10) but this video is playing back flawlessly so am not pointing fingers at the hardware encoding, I was also using my phone so it was hard to tell at that size. Regardless, I had no idea I wasn't using hardware until now (due to the device thing haha) but am glad that's working AND 10 bit tone mapping is working as well.

 

 

Hi, thanks a lot for your reply. I'm not sure the info you posted demonstrates that tone mapping is working on your system, though. I see no mention of HDR or anything of the sort in the sample file you posted.

 

Since my post I've upgraded from an i3-6100 (Skylake) to an i3-7100 (Kaby Lake, so 10-bit h.265 encode/decode capability is there now), but my sample 4K HDR file still won't play on clients that are not HDR capable. Transcode speed is simply not above 1.0 and my dashboard shows CPU usage is high (66%+ on all 4 cores/threads) and the iGPU is being left largely alone. Files that are h.265 but without HDR are converted by the iGPU without issue.

 

Would love to hear your thoughts. Specifically, I think I need to find out how I can check if the drivers mentioned in the Plex support article are present.

 

Another thought: that Plex support page says 'HDR to SDR tone mapping support is currently available as a Plex Pass preview'. If that info is still up-to-date, shouldn't we be using the container binhex/arch-plexpass? I say that, because binhex says that container will 'allow Plex Pass account holders to get early access to new features'. Am I simply on the wrong container? EDIT: on 2nd though, the option to enable tone mapping is in the settings, so it seems we're on the right version. So it's a driver thing?

 

Thanks.

 

EDIT: to add, I was thinking the i3-7100 simply wasn't strong enough, even with hardware acceleration enabled. This post however says that multiple high-bitrate 4K HDR transcodes & tone maps should work just fine.

 

Jesus, this has me so frustrated.

Edited by thatsthefrickenlightning
Link to comment
28 minutes ago, thatsthefrickenlightning said:

EDIT: to add, I was thinking the i3-7100 simply wasn't strong enough, even with hardware acceleration enabled. This post however says that multiple high-bitrate 4K HDR transcodes & tone maps should work just fine.

I can confirm that i3 7100 is capable of multiple 4k HDR transcodes at same time, however, this is without burning subtitles.  The moment I start a 4k HDR transcoding with burning subtitles (because client don't support subtitles or subtitles are image based like PGS) it cannot do it at 1.0x speed.  Try to have your media with srt subtitles and avoid clients that don't support direct play subtitles (LG smart tv's for example)

Link to comment
10 minutes ago, arturovf said:

I can confirm that i3 7100 is capable of multiple 4k HDR transcodes at same time, however, this is without burning subtitles.  The moment I start a 4k HDR transcoding with burning subtitles (because client don't support subtitles or subtitles are image based like PGS) it cannot do it at 1.0x speed.  Try to have your media with srt subtitles and avoid clients that don't support direct play subtitles (LG smart tv's for example)

Thanks for your reply, but subtitles are disabled in my tests.

Link to comment
55 minutes ago, thatsthefrickenlightning said:

Thanks for your reply, but subtitles are disabled in my tests.

That's weird, I can transcode four 4k HDR remux to 1080p without buffering, and even more if they're encodes or transcoding to 720p.  I'm on linuxserver's repo and transcoding to ram.

  • Thanks 1
Link to comment
10 hours ago, arturovf said:

That's weird, I can transcode four 4k HDR remux to 1080p without buffering, and even more if they're encodes or transcoding to 720p.  I'm on linuxserver's repo and transcoding to ram.

I bit the bullet late last night and installed the linuxserver PMS container to see if I could garner more info. Lo and behold, after giving that container access to the Intel iGPU, I could transcode three whole streams of my 4K HDR file to 1080p simultaneously with a speed of ~1.5.  How much ram does Plex have available for you, Arturo? Because while it's performing much better, you're still doing better than that.

 

@binhex, unless I'm doing something else wrong, I suspect your container is missing the library and driver to tone map HDR->SDR in hardware with an Intel iGPU (info). I cannot transcode & tone map one 4K HDR file to a 1080p SDR stream on your container without buffering but on linuxserver's container, I can do three.

 

@SloppyG, I think this is relevant to you as well.

Edited by thatsthefrickenlightning
  • Thanks 1
Link to comment
18 hours ago, thatsthefrickenlightning said:

I bit the bullet late last night and installed the linuxserver PMS container to see if I could garner more info. Lo and behold, after giving that container access to the Intel iGPU, I could transcode three whole streams of my 4K HDR file to 1080p simultaneously with a speed of ~1.5.  How much ram does Plex have available for you, Arturo? Because while it's performing much better, you're still doing better than that.

 

@binhex, unless I'm doing something else wrong, I suspect your container is missing the library and driver to tone map HDR->SDR in hardware with an Intel iGPU (info). I cannot transcode & tone map one 4K HDR file to a 1080p SDR stream on your container without buffering but on linuxserver's container, I can do three.

 

@SloppyG, I think this is relevant to you as well.

 

Thanks @thatsthefrickenlightning

 

Yeah you may be right. I'm not super familiar with Linux or Arch, but pacman doesn't report those packages locally present in the binhex-plex container via it's console.

 

sh-5.1# pacman -Syy
:: Synchronizing package databases...
 core                                          136.8 KiB   113 KiB/s 00:01 [##########################################] 100%
 extra                                        1568.4 KiB  2.51 MiB/s 00:01 [##########################################] 100%
 community                                       5.8 MiB  10.6 MiB/s 00:01 [##########################################] 100%
sh-5.1# pacman -Qi beignet-opencl-icd
error: package 'beignet-opencl-icd' was not found
sh-5.1# pacman -Qi ocl-icd-libopencl1
error: package 'ocl-icd-libopencl1' was not found

 

I next tried to check the remote repository to see if the packages were available which also returned nothing. I did a simple check first to confirm my command worked by searching for nmap. I used -Ss instead of -Si so that I could search on a partial name in case it's different in arch.

 

sh-5.1# pacman -Ss nmap
extra/nmap 7.92-1
    Utility for network discovery and security auditing
community/vulscan 2.0-4
    A module which enhances nmap to a vulnerability scanner
sh-5.1# pacman -Ss libopencl1
sh-5.1# pacman -Ss beignet
sh-5.1# pacman -Ss ocl-icd-libopencl1
sh-5.1# pacman -Ss beignet-opencl-icd

 

 

Finally, I see that the Linuxserver plex container specifically calls out the compute package being added in their changelog:

From bottom of: https://github.com/linuxserver/docker-plex/blob/master/README.md


Versions
20.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information.
10.12.20: - Add latest Intel Compute packages from github repo for opencl support on latest gen igpu.  <--- here
23.11.20: - Add Bionic branch make Focal default.
03.05.20: - Update exposed ports and example docs for bridge mode.
23.03.20: - ........

 

 

Final edits:

Maybe this is a stupid thought but I wondered if Arch Linux maybe didn't support those packages. However, I do see them listed here so they do appear to be available and maybe just need to be pulled in by @binhex (Thanks for all you do, and sorry if I'm oversimplifying :) )

https://archlinux.org/packages/extra/x86_64/ocl-icd/
https://aur.archlinux.org/packages/beignet/

 

 

Edited by SloppyG
  • Thanks 1
Link to comment

Great work @SloppyG, I'd figured out pacman is what apt is on other distro's but that's as far as I'd gotten. Glad we seem to be making some progress. Looking forward to seeing binhex's reaction, but am grateful for all his work regardless.

 

In the meantime, I may move over to LSIO's container, but if this were a relatively simple and quick fix, waiting is also a good option. Decisions, decisions...

Link to comment

Firstly thanks a LOT to @SloppyG for doing the leg work, appreciated, so i dont have an intel cpu guys so i cannot do any testing, so you guys will have to be my guinea pigs :-).

 

please can you go to the 'console' of your plex container and issue the following command:-

pacman -Syy && pacman -S ocl-icd --noconfirm

 

reboot the container and test, if no go then try this package:-

pacman -Syy && pacman -S intel-compute-runtime --noconfirm

reboot and test.

 

let me know the outcome.

 

EDIT - i THINK this is probably the github repo that Linuxserver are referring to:- https://github.com/intel/compute-runtime in which case i think the second package above is probably the correct fix.

  • Like 1
Link to comment
9 minutes ago, binhex said:

Firstly thanks a LOT to @SloppyG for doing the leg work, appreciated, so i dont have an intel cpu guys so i cannot do any testing, so you guys will have to be my guinea pigs :-).

 

please can you go to the 'console' of your plex container and issue the following command:-

pacman -Syy && pacman -S ocl-icd --noconfirm

 

reboot the container and test, if no go then try this package:-

pacman -Syy && pacman -S intel-compute-runtime --noconfirm

reboot and test.

 

let me know the outcome.

Thanks binhex. I tried the commands in the order you gave them, got no errors, rebooted the container where necessary, but I'm still not getting a transcode speed above 1.0 on my 4K HDR file. I'll be here for any other instructions and let me know if you need screengrabs of what the console returns, I have those too.

Link to comment
2 hours ago, thatsthefrickenlightning said:

Thanks binhex. I tried the commands in the order you gave them, got no errors, rebooted the container where necessary, but I'm still not getting a transcode speed above 1.0 on my 4K HDR file. I'll be here for any other instructions and let me know if you need screengrabs of what the console returns, I have those too.

ok give this is a go, its an AUR package so needs compiling, let it finish then reboot:-

export aur_packages=intel-opencl-runtime && aur.sh

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.