So I have a DS216+II NAS running Plex Media Server in a Docker container. Movie streaming works great via Plex Player on a desktop. It also works well running via Plex Player on my Sony Bravia TV with a Google Android OS. CPU runs in the 20% to 30% range. Hardware acceleration is enabled. When I try to run it through my Roku Ultra Plex Player (v6.6 Build 12), CPU pegs out at 100% and playback is intermittent with frequent buffering events. Log files attached. What am I missing?
That log file doesn’t show much except for a few lines that claim the server is failing to load some CUDA drivers. Are you positive you actually got hw accelerated encoding to work inside your container?
If I may ask… why the extra layer of complexity/abstraction? Have you considered simply running that Plex Media Server natively on your Synology?
For a more extensive look at your logs, please go to Settings > [Server Name] > General and check Enable Plex Media Server debug logging (but keep Enable Plex Media Server verbose logging disabled!!). Then try to play that video again on the Roku, wait a moment, then download your server logs.
Okay, enabled debugging log and am attaching the log file. Roku IP is 192.168.1.114. Playback starts at 07:43:15.509. Looking at the dashboard, when I stream to the Bravia TV, it uses Direct Stream, when I stream to the Roku its transcoding 1080P (H.264) -> 1080P (H.264). The Plex App on the Roku has Direct Stream enabled. As to why I went the container route:
Not impacted by any other software installed or running on the NAS
Version will almost always be more up to date than Synology Package version
Can easily migrate installation to another server or OS
Should use less CPU and RAM than the pkg version, though I have not verified that yet with a pkg install
The open questions I have are:
Is is the server using the HW acceleration, and if not, why?
Why the Roku is not using the Direct Stream option?
Plex cannot load the encoder/driver for hw-accelerated encoding
This could be about how you’ve mounted your drives into the docker container… the respective drive needs to be executable
Worst case, this is about hw-acceleration not properly setup inside the docker container – according to Plex it’s not officially supported but apparently some users were able to get it to work
Yep, I think my issue is with how this particular file was encoded. I am running through my library of movies and TV shows (*.mkv) and they are showing as either Direct Stream or Direct Play on playback. I can run multiple streams and CPU stays well within tolerance. Figures I’d start with the one file that was problematic. So that solves my playback issue but to your point not the HW acceleration question. The mounted folders show rwxr-xr-x for the admin account and user group. Not sure if I should make that root for both which my grafana/telegraf/influxdb folders are. Need to dig into that. I’ll also try a 4K file to see if there is any difference in performance. My library is all 1080p.
FYI: No limit set on upload speed or Remoter Stream Bitrate
Pushed the Remote and Local quality settings on the Roku Plex client app up from 12Mbps 4K to 20Mbps 4K which is the max it will go. Doesn’t fix anything for that one file but gives me a little more throughput if needed. All my gear is hardwired so no limits there.