I have an Nvidia Shield TV (2017) with PMS and extra adoptable storage in the form of an SSD. I am trying to convince my wife to cut the cord since 99% of the programming she watches is available OTA. Because of this, I set up an OTA antenna, which is connected to a Hauppauge WinTV-DualHD tuner (#1595). The tuner is connected to one of the USB ports on the Shield TV and is seen by Plex (as well as the Live TV Channels app from Google) and channels are found without issues. My main problem is when trying to watch live tv on a Roku Ultra with the Plex client (I have 2 of these, on wireless). I know the Roku needs the live OTA stream transcoded as it will not direct play MPEG2. The Roku buffers about 4+ times during a 1-hour program. It also takes a long time (like 8-10 seconds) to tune to a channel. Needless to say, the wife is not happy and even worse, not convinced about this solution for cutting the cord.
My question is, what is the main cause of this problem and what is the solution?
Is this issue caused by:
Limitations or issues related to Plex and the Live TV feature?
Limitations of the Nvidia Shield TV hardware?
The Hauppauge tuner? Maybe, since it is powered by the USB port it is not powerful enough so it takes longer to tune to a channel, becomes sluggish?
Problems or limitations of the Roku and its lack of direct play for MPEG2 streams? Being on wireless?
I do not see the buffering issues when playing OTA TV directly on the Shield. Sometimes it seems things “lock up” and I can not tune to a channel, so I just restart the Shield and it works again. This has only happened a couple of times. I will be trying a FireTV stick that I have to see if it works better with direct play. I will also see if I can get ethernet to one of the Rokus to rule out the wireless aspect.
I would like to find out what the problem is, to see if I need to get a new, better tuner, or even another Shield, if necessary.
Shield, at times, can’t keep up with the transcode, then you run out of buffer and hence the ‘Buffering’. I would get PlexPy and see if it the transcode speed falls below 1.0x. One thing to try is to try and watch a channel still broadcasting at 480 (like those channels that only play Three Stooges and Gunsmoke reruns). The transcode should be lighter on the CPU.
Your network can’t sustain the bandwidth needed to transmit the signal to your Roku. I would have the Roku Plex client request a smaller feed (720p@4Mbps). I have to do the same on the FireStick. Sending raw transcode at original size could require 10-20Mbps which your network might be able to do but it might not be able to sustain over long periods of time.
FYI I do have a Shield but I only use it as a client (I use a 5 year old laptop as the server!)
I wasn’t aware that the tuning time of 8-10 seconds was normal for Plex. That is a bummer.
I connected one of the Roku boxes using ethernet (1Gbps) and was told that it only buffered once. I did a quick test with a FireTV stick (2nd gen) and did not notice any issues, but it wasn’t a real test. I will familiarize myself with PlexPy, continue testing, and will follow up.
Yeap some tuning required there. For example check this out. Here is PlexPy reporting bandwidth requirements (and transcode speed). For playing an uncompressed feed from a broadcast channel at original quality (1080p) and then the same at 720p. My setup seems to be able to keep up with the smaller feed much better (both server, client and network). Of course if you have an 80 inch TV then you might want the 1080 feed because your eyes can pick up the pixelation but my TV is 42 inch and I can’t tell the difference at all.
ok one more. For more long term Plex usage, you will want to find the right container and codec compatible with most of the plex clients you use (Fire, Roku etc) and remux/transcode your recordings to that to ensure everything only ever direct plays (much better seek performance, less taxing on your server etc). For example, I have a Shield (as I mentioned), LG TV (built in plex client there) and Plex Media Player (on my laptop) and I found that MP4 is the container that performs the best for those (the codec does not matter some of my stuff is MPEG2 and some H264). So I remux everything to MP4 and it is all direct play from there on out. I do that at night for all the day’s recordings. That has resulted in a pretty stable Plex experience.
I managed to run PlexPy (Tautulli) and I am seeing transcode speeds ranging from 0.0-4.3, certainly dipping below 1.0. I am currently testing it and even though it dips below 1.0, there is no buffering during that time on my wireless Roku Ultra. However, I did notice that after some time (12-15 mins) it just stops playing at some point, displaying “Playback error. Sorry, we could not play your live TV channel”. If I click retry, it resumes after loading (buffering), but fails again in about the same time (12-15 mins, this seems too coincidental, so there may be other issues at hand). My quality is at Original (11.3Mbps), which is also the required bandwidth. My guess is it might be a transcode issue with the Nvidia Shield not keeping up with it and eventually buffering and causing it to fail due to all the dips below 1.0.
Is there any way to see a linear graph in PlexPy to see how much time the transcode spends below 1.0?
Are there some logs anywhere where I could go to find out more about what actually caused the stream to stop playing?
I know that if I decrease the quality of the transcode, it will require less bandwidth to transmit, but it will still need to transcode and that may be the bottleneck.
I really doubt this is a bandwidth issue as my network is running mostly wired at 1Gbps speeds and also offers wireless AC with multiple clients measuring 150Mbps+. I have also tested wired speeds with iperf.
I will run the same tests with my wired Roku and the wireless FireTV to see what results I get. But it kind of points to the Shield and the transcoding requirement (due to Roku’s inability to direct play MPEG2), even though I have read that it should handle transcoding multiple streams without issues with its hardware acceleration.
If it turns out to be the Shield’s trancoding capabilities, I could make sure my clients are all direct play (as you indicated), find out ways to tweak the Shield, or find a beefier location for PMS.
@DeepBlue23: It could very well be the same issue. I will submit a post to that thread with a link to this one in case the devs would like more info regarding this occurrence with Live TV.
Here is the latest:
I tested both Roku Ultras (wired and wireless) and the live stream fails in the 13-15min range.
Ran the same test with a FireTV Stick (Gen2, wireless) and the stream played for hours without hiccups (no transcoding needed). It was indicating a required bandwidth of 40Mbps and it managed that without problems.
I disabled hardware acceleration and that unleashed hell! Live TV streaming became unusable with buffering for about 1-2mins, then playing for a few seconds. The transcoder was always below 1.0. This means that I could not run a full test without that feature (HW acceleration), but it was a moot point as the Shield is not able to handle Live TV without it when transcoding is needed. Unfortunately, when I enabled HW acceleration again, it did not bring Plex to its previous state. Even though it was enabled, it was still buffering constantly as if it weren’t. Only a full restart of the Shield and the Roku by disconnecting their power cables was able to bring everything back to where it was, with HW acceleration enabled, but failing when transcoding around the 13-15 mins mark.
If this issue that I am experiencing is related to the one @DeepBlue23 mentioned, then it is very concerning as it renders Live TV useless with Plex and a Shield whenever transcoding is required. I really would like this to work as advertised and hope the devs tackle this issue sooner than later.
If I can provide further information (or perform steps) that could aid in researching the problem further (or even fixing it), please let me know. Thanks!