I have recently set up Plex on my home NAS and love the media centre features, however live TV & DVR is totally broken imo (at least on a NAS).
I’m using a HDHomeRun connect (without built-in transcoder) and it works wonderfully via the HDHomeRun app, hell even the Xbox One TV tuner works great.
As soon as I attempt to watch any live TV channels using the Plex app, the Plex transcoding process on my NAS brings everything to a total crawl and it is completely unwatchable.
I guess my question is why does the Plex server transcode when live TV works perfectly fine on devices without any built-in transcoder such as the HDHomeRun Connect/Xbox One tuner?
Are there any solutions to this or maybe something in the works to resolve the issue?
If it’s any incentive, I would have paid for Plex Pass for the live TV recording feature if it actually worked.
Cheers,
Stevan
Server Version#: QNAP TS-451D2 v4.5.3.1652 (latest) / Plex v4.54.5 (latest)
Player Version#: Windows browser (Chrome, Edge, Firefox,Chrome) and Xbox One X
Tuner Make/Model: HDHomeRun Connect
Guide/Lineup name: All (Perth/Australia)
Using XMLTV?: No
Channel number/Name: All (Perth/Australia)
Just wanted to add that the Plex apps I am using do have the options for Direct Play and Direct Stream but this does not affect the Plex transcoding process whatsoever (instantly shoots up to 100% CPU usage).
All devices are also directly connected via a GigabitEthernet switch.
I’ll take a shot, but others in Australia may be able to be more specific. Here in the USA most TV is broadcast with MPEG2 encoding in a .ts container, which isn’t exactly state of the art, and Plex Web is probably the worst client in regards to what it can direct play/stream. Therefore, for your Windows PC I’d recommend trying the Plex For Win client. Note that this is NOT Plex Media Server, just a client. It does a better job at being able to direct play/stream than the web player.
I don’t have an Xbox, but if Australian TV uses MPEG2 encoding also look for a video setting to “Allow MPEG2”. I know here that if that isn’t also checked then it will force transcoding.
Also look in Plex Web at the Dashboard under “Now Playing” when you are attempting to play Live TV. Make sure the small icon on the right to “Show Details” () is clicked. Look at the information about the stream to make sure everything looks right. In particular make sure it is showing as “Local” (e.g. playing from your local network.) There are cases Plex will treat a stream as “Remote” even when both devices are on your local network, and depending on settings this can also cause Plex to decide to transcode.
The J4025 in that NAS just doesn’t have the capability to handle the workload that a Live TV stream can generate. Users wanted de-interlacing, subtitles, audio conversion and multiple clients served from one tuner etc. Even with HW transcoding turned on that processor would struggle on the subs and audio.
That’s a good point, if the OP is running subtitles then that will force transcoding and pretty much make it impossible on that CPU. If, and only if, it is viable to get to direct play/stream then will Live TV work on the OP’s CPU. I started with Plex using Live TV on an ancient computer I dug out of a closet that had a CPU passmark about 33% of the J4025, and I had to really work on client config to get to direct stream or play on all of my clients.
As hokierulz mentioned, Plex via web browser doesn’t really give me many options or any useful feedback.
I installed the Windows Plex client application and it is basically exactly the same as Plex via web browser and I can’t seem to find the “Show Details” button anywhere.
Here’s a screenshot of the Plex client running a HD channel.
Interestingly, the Plex transcoder service is not taking any CPU on the NAS while running the Plex client app on my PC. However, the Plex client app on my PC is taking up a lot of CPU on my PC (my laptop is running a Intel i508265U 1.6GHz 4 cores).
I went back to my Xbox One X to try and watch the same channel via the Plex app and found some interesting details, not sure I quite understand why direct play/stream is not allowed.
Tiebierius, understood that the NAS doesn’t have a lot of CPU power but why does my cheap Xbox tuner, HDHomeRun Connect tuner (no built-in transcoder) or my TV itself stream live channels perfectly?
Is the end device (Xbox/TV) performing all of the transcoding, whereas Plex is doing it server side?
To find the “Dashboard/Show Details” I previously mentioned go to https://app.plex.tv/ and log in. Then at the upper right click on the “Activity” button (). Then click on “Dashboard” in the menu that drops down. That will take you to the Dashboard screen where you can find the “Show Details” button in the Now Playing section. In general this Dashboard is a good starting point to see what your Plex Server instance is doing.
Is Live TV playing ok in Plex for Win? The Plex for Win client can play the Live TV stream differently (in Original 1080p HD) because it has codecs that the Plex Web player does not. If you look in the Dashboard I think you will find it is direct streaming, which uses very little server CPU. It is normal for the Plex for Win client to use a decent amount of of CPU on the client device when playing HD video. I looked at your laptop’s CPU, and it does have a GPU, so if you look in Task Manager you should see the GPU also being utilized on your laptop, taking some of the load off your CPU.
Based on the XBox screen, it looks like your broadcast is h.264 in an mpegts container. I’m jealous! Remuxing the container from mpegts to mp4 shouldn’t require an excessive amount of server CPU, and the audio is a copy. The “Live TV direct play/stream is not allowed” message is concerning. I’ve seen that with the Plex client on some platforms they have intentionally disallowed direct play/stream due to “sync and other issues”. I couldn’t specifically find if this is the case for the Plex Xbox client, but if it is then we are stuck with transcoding. Right now I only have one suggestion for XBox: In the Plex XBox client look at Settings → Video. Is “Local Quality” set to “Original”? If it isn’t, then try that.
Finally, for whatever reason the XBox tuner client and HDHomeRun tuner client are direct playing/streaming, so no transcoding is needed. The Plex XBox client is either not currently able to direct play/stream (what I fear is the case due to it apparently causing the Plex client sync problems), or we haven’t yet found a setting, so it is forcing your Plex server to transcode. Here is more info. Essentially if a client can’t play the media in it’s original format (e.g. direct play/stream) then the Plex server will try to change it to something the client CAN play, but that is demanding on the server CPU.
To be honest, I really only care if live TV works via the Xbox One Plex app because apart from this transcoding/high CPU issue I think it is very good and full featured.
Live TV via the Windows Plex app is working fine with no hiccups/buffering etc and CPU/GPU utilisation is around 15%-20%. There is barely any CPU usage related to Plex when watching live TV via the Windows Plex app.
Not sure what all of this means to be honest, but hey that’s why I need help
If we’re not sure if it’s an issue with the Xbox Plex app, any idea how can I make a direct feature/support request to Plex?
I’ve played around with all the settings and can confirm that I am setting the Video Local Quality/Remote Quality to Original but unfortunately it makes no difference.
I also checked the Playback Settings for a few other channels in the Plex Xbox app and they all set Direct Play/Stream is not allowed. I noticed one or two of them said something along the lines of “mp4 unsupported container”.
SD channels seem to run ok and I suspect this is only because the NAS can handle them CPU wise but HD channels cause buffering and are unwatchable on the Xbox Plex app.
Here are a bunch of pictures for the Xbox Plex app settings in case you want me to tinker with anything (note I already set Remote Quality to Orginal even though it’s pictured).
The Xbox Plex app definitely is not using Direct Play/Stream but I have no idea why, however it must be capable since the options exist in the settings menu?
I’ve also followed the article you shared but unfortunately I can’t really do much else other than enable Direct Play/Stream and test.
Settings can also be set when watching a specific channel but they basically mirror those above set at the default level.
Short answer:
Set all your clients “Remote Quality” to Original.
The screenshots helped clear up the confusion.
Live TV is remote streamed from Plex and is separate from Live TV & DVR which requires a Plex Pass to operate. Live TV streams are h.264 and I will have to test that if the local client rate limits the stream does this get pushed back to your server for transcoding duties. Something I never noticed because I use the PC client and set remote quality to original. Only a couple of the Plex clients have the capability to de-interlace locally which you see in the dashboard pictures between the behavior of the Chrome browser vs Plex for Windows
Plex clients only natively decode h.264 and provided the device doesn’t expose other codecs to the app then the Plex server decodes and encodes to h.264 for the client. Most TV tuners output mpeg2 encoded streams which few devices support these days. The HDHR client does include the codec but other apps are not free to use it. I suspect the same thing is true with XBox tuner Client in that it has the mpeg2 codec embedded but doesn’t make it available for other apps.
Plex for Windows client is a bit of an anomaly because you can add more codecs to Windows extending its capabilities at the expense of high CPU/GPU use. Other client tend to be less capable and rely on the server to do the heavy lifting.
Also, your TV, may like mine does, de-interlace anything that shows up interlaced on it’s own.
Unfortunately, your TV can’t turn MPEG-2 into 264 so it can playback on a client that can’t deal with MPEG-2. That’s where Plex’s transcoder takes over.
I have a friend with a Visio TV - built in Plex app so bad I can’t begin to describe it, so we got him a Roku Ultra. It took me a while to teach him to switch to the HDMI port the Roku is plugged into… to Him, Plex is Plex and he kept firing up that useless built in app.
You may need to run an HDMI cable from Server to TV and use that Plex Player App instead of your built-in app. Some of those things are notoriously awful.
+1 for Rokus. They are my go-to streamer for TVs and installed projectors. I even have a 4k Roku TV. I know some people get down on TVs with the Roku built in, but I got it for the same cost as a non-smart TV, and guess what? Shocker, it even has HDMI ports, so if I ever want to I can add a stand alone Roku device.
Random thought - any chance you can use that Win PC with the i5-8265U as a Plex Server? It has an Intel GPU built in that would handle multiple Plex transcoding streams without waking the PC CPU from it’s nap in the hammock. You could still keep all of your media on the NAS, and never again have to worry about a Plex transcode stream killing your NAS CPU. Preferably have that PC’s network wired in, or at a minimum a rock solid strong wifi.
“Good 5G WiFi” - is faster than anything you and I have. Make that happen by making sure there’s nothing but air between the unit and the router - by whatever means necessary.
I have a FireTV 4K Stick (travel companion - and I can’t hate a Plex App thoroughly, unless I have one to remind me how awful it is [it’s getting better - another decade and we’ll be closing in on it] with WiFi it’s only viable option. When I bought it, I also bought the 3’ extender so I could velcro-strap it to some cables and it has a clear view of the router. The 5G is way faster than the wired port on anything else I own.
The computer with the i5 processor is actually my work laptop so I can’t really dedicate this as a Plex server.
My personal desktop is a very powerful gaming machine and although I’m sure it could handle the transcoding, it just wouldn’t be feasible leaving it on 24/7.
Ideally, my NAS would be on 24/7 acting as a media centre and my devices (Xbox in this case) would be able to Direct Play/Stream live TV.
Interestingly, I paid for Plex Pass for a month this morning and played around with all of the settings/features available this morning to hopefully find a solution.
I didn’t have any luck but what I did notice is when I start to watch live TV, it buffers for around 10 seconds before starting and if I monitor the Plex server dashboard both video and audio are direct streaming.
My server IS my gaming rig (along with everything else). ALL my material Direct Plays. I either acquire it in that state or create it (which is what will have to happen on your NAS), so while I’m gaming the server can serve - and does so very well.
Mine’s been on since it’s parts came out of the peanuts and were assembled - I couldn’t imagine it powered down, but it was for maintenance last month when I upgraded the vid card and replaced a power supply. Out of service for an hour, but all is well now.
I have a fleet of Roku Ultras (and other assorted clients/devices) local and remote to serve 3 units in the house and a half dozen remote connections. The server can’t serve if it’s off.
Idle (or delivering Direct Play Streams) - I don’t even care what it uses 'cause it’s negligible - cost of doing bidness. <—those two cat heating pads use more juice, I think, but just try turning one of those off…lol
Under load gaming or encoding every blower in it is wide open and that sound is comforting. If the din lessens at any time - I’d better check to see if a fan went South, like it did last month.
This is what is leading to confusion, you should not have been able to setup the tuner without a Plex Pass. PP also give you access to Hardware (HW) transcoding which will be the only chance you have of making this work. Check both of the Hardware transcoding buttons, leave the HDR unchecked. If you don’t see (HW) on the video line then it is time to post some Debug logs (System > Troubleshooting > Download Logs)
If your Live TV is transcoding on some but not all channels you need to set your h.264 level to 5.1. On Roku set h.264 to auto. Also, make sure MPEG2 is enabled.
The pics above you are transcoding interlaced to progressive. Which makes sense. A Firestick 4k will play interlaced video without transcoding on the server. Roku will play interlaced video by enabling MPEG2.
If you don’t have an option to enable MPEG2 on your client you will always transcode interlaced content unfortunately.
Plex Web will always transcode interlaced content.