Why is Plex Transcoding on a HDHomeRun Extend that Has Native Transcoding?! It's eating up my NAS!

Why is Plex Transcoding Live TV on a HDHomeRun Extend that Has Native Transcoding?! It’s eating up my NAS’s resources! I am at 90% CPU.

The Channels DVR app for my NAS works exceedingly better and used like 10% of my old 218play NAS. Now I have a beefier 218+ with Intel Quick Sync and Plex transcoder is taking 70% of cpu resources and the video is constantly buffering.

4 Likes

The Plex Support page states:

But look here at my Plex status:

Why is Plex transcoding something that doesn’t need to be transcoded?

And this time I set Plex DVR HDHomeRun Extend section Transcoding to Highest quality:

And look at what its doing:

Its transcoding H264 to H264?! And then on top of that its transcoding AC3 to EAC3 when the Apple TV supports AC3 natively?!

InstaTV app on Apple TV has no problem letting HDHomeRun Extend do the transcoding and channels appear instantly and no buffer. Channels app is the same. Why is the Plex server transcoding for codecs that work natively on Apple TV? I don’t mean to sound angry or anything but I do feel a little ticked that my NAS has to be taxed so much when it doesnt have to.

Plex on Apple TV uses the native video player. This player doesn’t support e.g. MPEG2 videos. Hence the transcoding.

Your HDHomeRun Extend might be capable of picking up its own load… apparently this functionality isn’t used in combination with Plex (either because HDHomeRun simply doesn’t use it unless it’s being told to, because this functionality isn’t available via the APIs Plex uses to talk to it or it’s available and possible but Plex doesn’t distinguish between DVR devices capable of their own transcoding and those who aren’t – long story short: you cannot make Plex do it if developers haven’t perceived this configuration and implemented accordingly).

HDHomeRun devs are extremely willing to help developers with using there API so I don’t understand why Plex wouldn’t implement something so important. Plex is basically neutering both a NAS and Tuner because they aren’t willing to go the extra mile. And Plex does know to distinguish between tuners with or without transcoders because there support page explicitly states the Extend transcodes on its own and thats what the “Highest Quality” and other settings that are setup for the Extend in Plex are for.

I am just getting more and more disappointed with Plex. Yes I know I can move to Emby or whatever else might be out there but the whole point of Plex is to be your all-in-one media center yet its becoming bloated beyond repair. Wish the devs would do an overhaul of the Apple tv app and write their own player :frowning:

4 Likes

don’t get me wrong… I can get that you’re disappointed.
however that’s like me complaining that Plex doesn’t integrate the coffee machine I love and of which I think it should be easy to integrate… I don’t see why my coffee machine manufacturer shouldn’t be supportive about it. I know this example is off… but so is the expectation that your particular device is the sole center of Plex’ efforts to improve their service.

There’s tons of tuners from a wide number of companies. each model with its own features and capabilities to distinguish itself. their priority is to get the overall service working (except they introduce some new features such as VR ;))

as for the own player… they won’t even have to write their own one… various options exist. I don’t know their reasoning… maybe this will cut them off some native tvOS features or increase the number of dependencies and therefore the level of complexity.

@tom80H said:
however that’s like me complaining that Plex doesn’t integrate the coffee machine I love and of which I think it should be easy to integrate… I don’t see why my coffee machine manufacturer shouldn’t be supportive about it.

There’s tons of tuners from a wide number of companies. each model with its own features and capabilities to distinguish itself.

But Plex only supports 3 brands of tuners. Three. With only about 12 models total. That is hardly difficult for them to manage to get supported fully.

For comparison, look at how many different NASes alone Plex supports. Theirs literally hundreds or more.

1 Like

I have the same issue where when going to live TV using the Program Guide, and Plex transcodes the H264 signal it gets from the Extend into another H264 signal. Same screen shot as above. Hits my CPU hard, and on lesser clients it causes buffering.

On my wired Roku Ultra, it played fine but the server was still pegged full CPU (Intel NUC i5). On my wifi Roku2 the server was also fully pegged, and the client buffered so much it was unwatchable.

I thought the point of the hardware transcoder in the Extend was to make it easier for lesser clients/lower bandwidth to play the stream (since it was no longer MPEG2)…

2 Likes

BTW, the Extend above was set to Maximum Quality in Plex DVR settings.


_And in totally separate news, I tried an alternative. Through the unsupported app store I added the HDHR Viewer third party channel. In it, I was able to set the Extend’s hardware encoder to ‘Heavy’. I don’t know what that means but it seemed closest to the ‘Maximum Quality’ setting for Plex DVR for the Extend. In the HDHR Viewer, setting it to Default, None, or Auto, did not trigger the Extend’s transcoder. Only Heavy, or lesser settings did. And when it did, sure enough the CPU got pegged and the Now Playing said ‘transcoding h264 to h264’ like before. But here’s the weird part. The CPU only got hit at around 45% instead of the 95% or so with Plex DVR live TV (Program Guide)…AND the weak wifi Roku2 client played it with no stuttering or delay!

Weird. I found a work around so this lesser TV with an old Roku on wifi tucked away in a corner can now play live TV without buffering or completely crippling the server, but why?

Why does ‘Heavy’ in HDHR Viewer allow the Plex server to software transcode H264 to H264 in a fashion that hits the CPU less and is more playable on a weak client than Plex DVR’s ‘Maximum Quality’ setting for the same Extend?.._

I used to use the HDHR Viewer app successfully as well in the past, but would prefer to use the native functionality if possible. Has anyone found settings which allow the native Plex DVR to store HDHR Extend "heavy’ encoded data without duplicate transcoding in Plex? I’d like to get this working with a Shield TV rather than a Linux PC since wake up functionality for recordings doesn’t seem to be a priority for Plex. I suppose I’ll stick with a trusty old MythTV setup until these issues are addressed.

UPDATE: Is there a method to obtain the verbose Plex logs outside of the web interface from a Shield TV without rooting? I’d like to review them in hopes of determining exactly what is happening after a recording finishes. I’m pretty sure that some transcoding activity is occurring though because even without commercial skipping enabled it can take over an hour for HDHR Extend half-hour recordings to appear on NAS storage which is much slower than what is witnessed for similar transfers over my wired network.

I thought I’d add my 2 cents to this. I did a search and found this forum, as it is about the exact problem I am facing. I installed the HDHR Viewer app as described in the post above and speciiedy the audio transcode to EAC3, and this appears to help:

The audio is now a direct stream but there is still the seemingly unnecessary video transcoding happening. I am using a Rock64 (like a raspberry pi) as my server, so I have almost no CPU power at all available for transcoding. I had to dial back the transcode quality to “internet540” in HDHR Viewer and “medium 540p” in the DVR device settings to stop the buffering.

Has anyone had any luck eliminating the video transcoding?

@rowmoney said:

The audio is now a direct stream but there is still the seemingly unnecessary video transcoding happening. I am using a Rock64 (like a raspberry pi) as my server, so I have almost no CPU power at all available for transcoding. I had to dial back the transcode quality to “internet540” in HDHR Viewer and “medium 540p” in the DVR device settings to stop the buffering.

Has anyone had any luck eliminating the video transcoding?

looks like this might be about the bitrate being not supported by your player (right container, right codec, too high quality/bitrate).
you can double-check this in the logs after attempting this playback (Settings > Server > Help > Download Logs, check out Plex Media Server.log by looking for lines labelled with the prefix MDE:). If the bitrate is your bottleneck, you could consider doing a transcode w/ e.g. Handbrake.

Actually, I think I discovered the answer. The HDHomeRun streams the H264 content in a .TS container, whereas the current version of Plex player on Roku (and apparently also Apple TV) only supports .mkv, .mp4, and 1 or 2 others, but not .ts. If any devs are reading this,

PLEASE BRING .TS SUPPORT TO THESE PLAYER APPS!

Can’t transcode with handbrake because it’s a live stream. Defeats the purpose.

3 Likes

@rowmoney said:
Actually, I think I discovered the answer. The HDHomeRun streams the H264 content in a .TS container, whereas the current version of Plex player on Roku (and apparently also Apple TV) only supports .mkv, .mp4, and 1 or 2 others, but not .ts. If any devs are reading this,

Does this mean it’s a waste of money to get the “Extend” version of HD HomeRun?? Is it more efficient to transcode from H.264 TS to H.264 .mp4 or whatever it needs?

If you transcode yourself, using Handbrake or whatever, that takes time. If you only plan on using the HDhomerun Extend as a DVR, then time is not an issue and this whole conversation doesn’t really apply. In that case there would be absolutely no reason to buy an Extend anyway. However, there is no other, or better way, at least that I’m aware of, to transcode in real time to stream live TV. I read a number of reviews from people trying to watch live streams in mpg2 format (the native broadcast format that non-extend HDhomerun units use), and they said it’s aweful - no way to escape the constant beffering, unless your Plex server is running on a new, high end machine. So the extend is far superior as far as live streams of broadcast tv are concerned. Now, for whatever reason, my Android phone has no problem supporting the .TS format and I can stream full HD no problem. But my Roku is not so accommodating. And that’s where I want the full HD. That’s where I’m stuck.

1 Like

I have my Plex server on an Intel NUC (Core i3-7100U) running Ubuntu with hardware transcoding turned on. I do plan on using my HD HomeRun for both DVR and LiveTV all through Plex. Almost all viewing is through AppleTV, which does not support the .ts container, so it gets re-encoded on the fly.

So my question is - since it has to re-encode the stream anyway, is there any advantage to an Extend model? That is, is going MPEG4 to other MPEG4 less taxing than MPEG2 to MPEG4? Also, I intend to use commercial removal if that matters.

1 Like

I see what you’re asking now. I haven’t actually tested the WITH vs WITHOUT transcoding on the HD HomeRun. However, the post from Manceplex on 2/21 made it sound like there is a lower load on the Plex server CPU if the stream coming in from the HD HomeRun is a closer match to the desired output. If I find some time I’ll do that test and report back on my findings.

So my question is - since it has to re-encode the stream anyway, is there any advantage to an Extend model? That is, is going MPEG4 to other MPEG4 less taxing than MPEG2 to MPEG4? Also, I intend to use commercial removal if that matters.

MPEG2 to H264 is much costlier on the server. Also file sizes are much larger. There was another post on here with detailed stats.

I just got things setup yesterday and seeing mixed results on my Roku. Some channels like PBS in 1080 are not being transcoded at all and being direct streamed.

Anyone know what version of H.264 SiliconDust implements on the Extend? In addition to the wrapper there is also an “Maximum H.264 version” selector on the Xbox One Plex client with the default being 5.1 but a range of 3 to 5.2 also being options…