AMD for HW-transcoding, or Intel/Nvidia only?

Ive been trying the support forum, reddit, google… well almost everything i could think of.

But i just cant find anyone that can (or will) answer my question… or only found really outdated posts/pages. So i guess ill just try one more time here.
(Dont know why its so hard for the plex team to have a contact form, atleast for plex pass users, for support questions like every other company that sells a product)

Im about to do HW-transcoding on my Plex Media Server. To be able to watch 4K movies outside of my home. But before i do that i have to buy myself a GPU since i cant use the CPU graphics (it has to be passthroughed with DDA to the hyper-v guest and apparantly the cpu graphics cant do that for some reason that i just got fed up on trying to solve after weeks of trying)

And Nvidia seems to block access to the (consumer) card when run in virtualization. Probably because the want to sell their more expensive server grade GPU.

So that leaves it to AMD cards. But ive read somewhere that AMD doesnt work with HW-transcoding in plex.
And here is where i just cant find any definitive answer.

Is i possible to use an AMD GPU to run hw-transcoding in plex? Is there any cards that works better (or cards that dont work at all)?

would greatly appreciate any help in getting my questions answered.

3 Likes

You cannot use AMD. We do not support that.

https://support.plex.tv/articles/115002178853-using-hardware-accelerated-streaming/

@BigWheel
Hi, thanks for reaching out!
I’ve already seen and read that page.
And if I’m not blind or missing something, that page doesn’t say anything about amd not being supported.

The only thing I can find is this;

“If your Windows computer also has a dedicated graphics card, such as an NVIDIA or AMD GPU, some functions of Intel Quick Sync Video may become unavailable when the GPU is in use. If your computer has one of these GPUs, please install the latest NVIDIA drivers for Windows or AMD drivers for Windows to make sure that Plex can use your dedicated graphics card when Intel Quick Sync Video becomes unavailable.”

Am i mistaken?

4 Likes

@BigWheel said:
You cannot use AMD. We do not support that.
Unless something was changed in the last month that I’m not aware of, AMD HW-transcoding works just fine.

Here is a an example, 4k Ultra HD Blu-ray rip transcoded to 1080p with my Ryzen 5 2400G (newest Vega drivers at the time manually installed):

3 Likes

@Wiidesire
Haha feels great that the staff at Plex dont even know what they are talking about. Makes me understand why the software has so much issues/bugs. :slight_smile:

So which AMD GPU do you recommend for me? The latest and greatest or would some older model work just fine for a couple of 4K transcodes? (how many can you do on your GPU?)

EDIT: it just hit me. im thinking we all are talking about different things.

Im talking about GPU.
perhaps @BigWheel is talking about CPU (the built-in graphics on the CPU chip)
And im seeing now that you are talking about CPU as well @Wiidesire.

So the question still stands, can i use AMD GPU (PCI-e), NOT CPU graphics, for HW-transcoding?

EDIT 2: Bought myself a Nvidia Quadro P2000, ill install it in the server on monday. Hoping it will work fine. Or else im back on the AMD track.

2 Likes

@mjewl said:
@Wiidesire
So the question still stands, can i use AMD GPU (PCI-e), NOT CPU graphics, for HW-transcoding?
There is no functional difference between the Vega graphics of the APU and a standalone Vega graphics card.

AMD GPUs with UVD/VCE (basically everything released since 2012) are supported but only on Windows, not Linux. Since you’re talking about Hyper-V GPU passthrough I’m assuming you’re using Windows.

3 Likes

@Wiidesire ok, I’ll try amd if I’m not satisfied with the quadro p2000.

Hi

How many simultaneous transcoded streams can the 2400g manage? I’m torn between a 2200G or Intel G5400 system for a Windows Plex box

Thanks

@Methanoid
It entirely depends on Codec, Bitrate, Color depth etc. but I’d say roughly 1x 2160p, 2x 1080p or 3x 720p simultaneous transcodes to a lower resolution.

If you have both an AMD APU and an Nvidia GPU, which one would you rather have transcode for quality reasons? Contrast this to a choice between QSV and NVEnc, and you’d probably choose QSV for a single transcode.

1 Like

Your CPU has an extremely low Passmark score. I’ve seen that higher the passmark score (above 15K), the smoother the experience. I have an i7-7700k CPU with a 12K passmark score, same setup as you (roku wired), and no issues.

You should pop in an NVIDIA Quadro card so you can offload ALL transcoding to it and not your CPU since Quadro has unlimited sessions.

Just for the sake of whoever comes across this thread next (I went through every possible thread i could find regarding an AMD Plex setup and the first shred of hope was here from wiidesire before i really went in on this build), here’s a screen of my All AMD Plex Hardware Transcoder in action:


(AMD Opteron x3421 cpu & AMD Pro WX4100 gpu in a HP Proliant Microserver Gen10 on a bare metal install of win 10 1809 on a samsung evo 970 plus m2 pcie ssd)
This image depicts hardware transcoding a 4k 50gb+ 10bit hevc mkv file to 1080p h264 natively with no modifications to plex with plex using the dxva2 api & mf.
I’m using the latest drivers for everything involved & software pictured from left to right:
DXVA Checker, Plex Media Server - Dashboard, Windows Explorer, Task Manager

Questions I remember wanting answers to before i began:

Can this be done?
Absolutely :wink:

Is this a great low power & tiny media server?
100% :smile:

How many streams would this work for?
Probably only for a for a few simultaneous transcodes & probably not from 4k as a source in that circumstance :thinking:

That said, a better idea would be use something like an online sourced ffmpeg bulk convert app/script over your media to prevent the need to transcode on the fly in the first place, or at least lighten the load and reduce the need to transcode each video to only once :slight_smile:

Even better than that would be to write your own powershell script (or failing that modify one, plenty out there) to use whatever ffmpeg config your hardware can support to set this up in a way that suits your needs, for example to automate media file conversion in place as they land in your libraries or during a schedule of server down time or whatever works to your viewing habits, this way you have complete control of what happens to your media, and maybe you learn a bit about the whole decode encode process along the way :smiley:

7 Likes

I’m not sure I’d ever describe reencoding your entire library as a good solution for effective streaming, given it requires permanently keeping a lower-quality copy of every piece of media in your library, the additional storage capacity for it, and potentially months of continuous reencoding (depending on library size)… and that’s using the same basic profile across all your media, rather than a proper per-file optimized one.

For the additional storage cost alone, you should be able to get a GPU specifically for Plex, that should be able to handle at least a dozen+ simultaneous transcodes - again, depending on your library size, but I can’t see someone needing that many streams having a tiny library. Even my relatively small (by Plex standards) 40TB library would cost a good bit to create a reencoded copy of, and that wouldn’t even include multiple versions for different streaming clients with different internet connections.

The hardware transcoding options for Plex may be significantly sub-optimal, but permanently doubling your storage requirements from now until the end of time isn’t much of an alternative.

1 Like

And nor would I, but that’s if you keep the original files, i mean if this scenario wasn’t obviously inferred my apologies, for the majority of a libraries contents whats the point in keeping an old inefficient encoding if plex is only going to have to convert it every time its viewed anyway, and if plex doesnt have to convert it then why worry.

After standardizing a library to h264 aac @ 1:1 resolution for the most part the inflation wont be as huge as double as your understanding indicates it might become, nearly any plex client will be able to consume the media as a direct stream (provided the client device supports using the source resolution and has settings configured to allow the files quality), and in less efficient mediums it might even be an improvement in space depending on source encoding and chosen output settings (shouldn’t have to say converting to a higher bitrate than source media wont improve the outputs quality but now i feel like i should for anyone reading this unsure) and at the very least if you convert to the plex standard format you open up even more compatibility with older cheaper card hardware decoding which if you pointed multiple hardware transcoders at the same nas could cheapen the extra hw accel node cost.

For a hint as a powershell project i’d get-childitem -recurse a library, use some file codec examining tool to build a list of current encoding objects and ignore anything correctly encoded then work from that and use something like invoke-restmethod to hit some set of api’s (rotten tomatoes, thetvdb, probably a few nice api’s out there that would suit this but plex natives seem like best bet), (or worst case scenario fudge it with some dirty invoke-webrequest page parsing, nothing you cant solve with another layer of abstraction :wink:) per unique media to build up a hashtable of distinct show information objects and build a set of rules to drive your ffmpeg convert as:

  • movies probably want a higher quality than tv
  • when processing animations a lower bitrate is acceptable
  • process 3d & 4k tagged source files with a unique formula to maintain desired quality

Of course for the sake of peace of mind i’d be testing this converter against a few sample pieces of media and make sure you’re happy with your results before lumping it over a whole library, but command line ffmpeg is a good bet to use as plex was built on using it for on demand transcodes anyway so compatibility wise should be fine and graphics acceleration is easy and this would work out to transcoding once as opposed to every time the media is summoned.

As to space if you just maintain a staging area, on a separate drive if possible would be better or if that’s an issue just take the read/write hit on the same drive and cap out process batches to something like 50g’s at a time then clear out the old and return the new based on some quality factor test you’re happy with and pop it on a schedule to only convert when your server is either known or detected inactive(in terms of plex activity).

It will finish, but as i said that option would only be for someone that can handle the process looking for a rewarding project or wants to learn something, if you cbf’d or that all just seems like too much for you just wait until someone builds a publicly available ultimate plex library optimizer & til then opt for the easier option and just brute force transcoding through a card on the fly and suffer whatever your bottle necks are as a part of everyday life.

Your library is only ever gonna be what you make it so if you’re 40tb in and any kind of maintenance of that scale is too daunting, fair enough, I’ve stared down my share of big projects and ruled a few out on the spot, but in your example i’d still employ a scheduled script to handle perma transcoding incoming media on some kind of file system date existence delta of past few days/past week/past hour on media that doesnt meet your optimal transcode quality requirements and also point it at a couple folders of your libraries most popular forms of media/repeat transcoding heavy offenders to lighten the load a bit then who knows, if you make it in that far you might just see how little effort is required after you get something working and do the lot! :slight_smile:

EDIT:
I realized I should probably have been clearer, 40TB (for another week or two, anyway) is just my Anime library, the part I mostly care about - I rip TV show/movie BDs mostly for family/friends, with the exception of things like Game of Thrones, The Expanse, and the like, and slightly older shows like the various Stargates, Babylon 5, and the good Star Treks. Movies (for myself) are mostly classic Sci-fi and Fantasy, as well as the guilty pleasure of the Marvel movies when my brain needs to shut off.
… Yes, I’m a huge geek :stuck_out_tongue:

Everything else is family and friends, ripped from BD, or encoded from the best WebRAW or stream-cap I can find if still on air (I have A LOT of BDs gathering dust in a storage room…). On-air shows usually get AVC high@L4.1 or higher, depending on source quality (so, sometimes lower), with audio depending on what I have to work with. I care less about those, since they get swapped for my own rips as soon as the BDs are out, anyway. Haven’t really checked the grand total in a while, but I moved to 8TB drives a few years back, and still have 5 open bays in my 25-bay case, so not that much.


Well, most of my library isn’t in an old, inefficient encoding, but rather specifically encoded for the type of media, which means a lot of “Hi10p” h264 10-bit encodes with FLAC audio, a format that never really caught on with the general population, but is great for higher-quality, lower-size anime encodes, as well as 10-bit HEVC/h265 encodes with either FLAC, DTS-HD, Dolby TrueHD or Atmos audio, where the audio is every bit as important as the video.

Reencoding already lossy encodes, especially to an older, less efficient standard like basic h264/AVC, will result in a major quality hit, especially since it isn’t capable of encoding color and visual details nearly as efficiently, often requiring massive file-bloat for minimal quality increase the higher you go. I’d never outright replace my files with lower-quality reencodes, since I specifically try to get the best quality I can, so that would be putting the horse before the cart.

Most of my personal media consumption is in my living room, where I use an HTPC that plays my files directly anyway, and streaming outside the house is limited to family and friends (I’m not trying to compete with Netflix), or when I’m traveling.

I just can’t see purposely decreasing the quality of your media as a good solution - sure, basic h264 will play on a toaster, but that’s the same place we were at a decade ago with DivX/XviD; there’s a good reason no one uses those anymore. h264 hardware processing became common, resource-friendly and affordable, and before long, the same will happen with modern codecs (with the likely exception of Hi10p, which just never saw wide-enough adoption).

It took me ages to replace all my old, low-quality AVI versions (usually using DivX + MP3/Vorbis) with decent quality h264 + AAC/FLAC MKVs, which is still about as good as you’re likely to get out of a DVD source, but I definitely don’t want to have to go through that again unless I have to. h264 + AAC is fine for airing shows, but once you have the Blu-rays, I feel like making a lesser encode (or worse, reencode) from the source is kind of wasting the money you spent on them - unless you make multiple versions, but then you have the space issue, and I’ve been going through 1-2TB a month as is lately, and, even with a gigabit connection, any more and BackBlaze will start to intrude on my waking hours.

I think I’ll just have to upgrade my server eventually - I’m running a set of old E5-4620s, and while they’re still holding up (even slow processors can still kick some butt in a 32C/64T config), being stuck on PCI-E 2.0 and DDR3 is definitely a pain. I’m currently broke from medical bills and the lack of income that accompanies being bedridden for months, but, assuming I’m back on my feet by next year (and, dear God, I hope so), once I’m back working, maybe I’ll celebrate by irresponsibly blowing my renewed income on some crazy Ryzen 2 Epyc-based server setup; the idea of being able to have the same number of significantly faster cores in a single processor as I currently have in four is incredibly appealing, even if the higher-clocked, lower core-count versions might be a better choice. I suppose it depends on how many I can stuff in there (haven’t really looked all that closely, as I’m spending most of my time in a bed-locked zombie state).

so, when will AMD Transcoding be available in linux? Since this can and has been done (see handbrake for example) i really want this for my small A300 Ryzen 3400G Box (Proxmox Host).

7 Likes

I have an HTPC with a Pentium g4400 and an AMD RX580 gpu that i would like to use to stream and trasncode using Plex. I can eventually switch to a 1070ti i’ve laying around. What do you think should i use? it’s a domestic installation, based on windows, so no more than 2 streams per time (mostly 1)

Thanks in advance.

So I’m fairly new to this, but I’ve got a AMD Ryzen 7 3800x with a RTX 2080 Super. Am I able to use the 2080 Super for HW encoding? Will that even be necessary with the 3800x? I’ll be streaming to some friends and family, and myself when I’m not home. I’m planning to stream at highest quality possible to up to 5 remote devices at once. Can anyone tell me what kind of max quality I can expect to output to that many destinations with this setup? Or at least a guestimation.

Edit:
Let me know if I should be asking this somewhere else. I just happened to land here while researching and figured I’d ask.

Edit 2:
I know HW encoding is for plex pass users, I’ll be getting that soon.

  1. If you pay for a Plex Pass, yes you will be able to use the 2080 Super
  2. The 3800x should be capable of 5-6 1080p transcodes I would imagine though, I would get a videocard if I intended to do more then 3, that’s just my personal preference
  3. Quality is going to depend heavily on your upload speed and not so much the transcoding, the bitrate matters more than the resolution, and bitrate doesn’t affect speed of transcode nearly as much as resolution does.
2 Likes

I see, thanks for the info. My bandwidth is 1 Gbps down and about 40 Mbps up.