What's the cheapest low-profile GPU for hardware transcoding?
I've got an old AMD Phenom II system in a 2U rackmount case that I want to run Jellyfin on. I need to add a graphics card so I can hook a monitor to it for troubleshooting etc., so I figure while I'm at it I ought to find something I can pass through for hardware-accelerated transcoding.
I use Linux and I prefer open-source drivers, so I've initially limited my consideration to AMD. Based on this page in the Jellyfin documentation, it sounds like I need GCN 5 (Vega) or newer for acceleration on Linux with the open-source driver, or GCN 1 or newer for acceleration on Windows with a closed source driver (not sure if that includes Windows in a VM on Proxmox?).
Needing a low-profile card really limits my options. Looking at Ebay etc., the ones with decent availability include:
FirePro W2100 (GCN 1) (~$12)
Radeon R5 430 (GCN 1) (~$12)
Radeon R7 450 (GCN 1) (~$30)
Radeon Pro WX 2100 (GCN 4) (~$35)
Radeon RX 550 (GCN 4) (~$45)
Radeon Pro WX 4100 (GCN 4) (~$70)
Radeon RX 6400 (RDNA 2) (~$130)
Then I noticed a caution on the Jellyfin documentation page:
Most AMD dGPUs come with video encoders but be careful with certain models - RX 6400/6500 series don't have video encoders.
So that eliminates the only GCN 5+ low-profile card that AMD has apparently ever made, which means there is no such thing as a low-profile AMD card that both supports VA-API and has a video encoder? Is that really true that AMD went the five years between the WX 2100 in 2017 and the RX 6400 in 2022 without releasing a single low-profile card suitable for Jellyfin??
As for Nvidia, I'm starting from scratch because I haven't bought an Nvidia card in probably 20+ years. According to the Nvidia Jellyfin documentation, apparently transcoding requires the proprietary driver and a card that's Maxwell (1st gen) or better, HEVC requires Maxwell (2nd gen) or Pascal depending on bit depth, and AV1 requires really new stuff that's probably out of my budget.
Nvidia low-profile cards AFAIK include:
Quadro K620 (~$25)
Quadro K1200 (~$40)
Quadro P400 (~$50)
Quadro P600 (~$60)
GT 1030 (~$70)
GTX 750 (~$100)
GTX 1050 Ti (~$100)
Quadro P1000 (~$150)
T400 (~$160)
GTX 1650 (~$200)
RTX A2000 (~$300)
TLDR: so it seems like my options are basically to get an AMD FirePro W2100 or Radeon R5 430 for $12 and resort to running Jellyfin in a Windows VM, to get a Quadro K620 for $25 and resort to using the proprietary Nvidia driver, spend way more than it's worth for anything that can do HEVC (let alone AV1), or scrap the whole CPU/mobo/RAM and upgrade to something with modern integrated graphics?
It's not actually available (yet), but why not consider a low profile A380 like this
Relatively cheap, open source drivers, and hardware encoding up to and including AV1.
Edit: oh, and supported on jellyfin. I have mine running on truenas in a fedora 38 VM by passing the GPU through(Truenas scale is running kernel 5.15, so doesn't have native support).
Are you able to pass the prime GPU to a VM now in Scale? When I tried it with a 750Ti, I had to reserve one GPU to Truenas Scale itself, which was not convenient. I haven't tested lately since the latest Scale upgrade.
That'd be great, except for the whole "not actually available yet" part!
(Well, that and the price: since I don't actually care about 3D performance, I was hoping to get something old that only cost two digits.)
I guess I could get a $12 AMD card now (just for hooking up a monitor, not necessarily for Jellyfin) and then get an A380 LP once it's actually available. It really is a shame AMD broke the RX 6400 for this use-case, for no apparent reason...
Keeping in mind that ASRock's A380 LP 6G is not the only low-profile Intel-based graphics card on the market and has certain limitations that prevent its usage for professional applications, we do not think that this will be a too expensive product.
What other Intel low-profile graphics cards are there?!
Well to be fair, the A380 runs circles around every cars you mentioned in encoding.
The A380 at launch beat the 3090 at encoding H.265 and h.264 and is the single cheapest AV1 transcoding card.
It has insane value. You wouldn't buy it for 3D gaming because it has mediocre 3D performance for its class and the ARC cards in general absolutely suck on linux for gaming.
I believe it's talking about This MSI card, which seems to be prebuilt only? Or maybe the Sparkle Genie A380, which, again, doesn't seem to be available yet.
Do you actually need hardware transcoding for your media is the real question. I haven't bothered with 4K content so maybe that's why but I've never used a GPU on any media server be it plex since the early days or jellyfin the past few years. Never ran into a situation where I couldn't play a video file properly on any of my devices.
Are you trying to solve a problem with playback of video content or just want it for the sake of having it? If it's the later I'd say to not bother especially if your budget is low. At some point you may actually need it at which point you can plan the hardware more appropriately.
Are you trying to solve a problem with playback of video content or just want it for the sake of having it?
Yes, I've noticed in particular that some of my content won't play on my Android phone.
...Now that I think about it, maybe the real problem is that my phone sucks!
I do have a little bit of 4K HEVC that everything has problems with (phone, Roku, and even playing through the browser lags on Chromium and gives a "this client isn't compatible with the media" error on Firefox), but not enough yet to really justify buying hardware instead of just making a 1080p version manually.
You might need to get multiple copies of media for different devices. Example, on my 1080p TV I can not watch the 4k streams due to my network sucking, but the 1080 stream works just fine. 👍
All this is starting to make me think I should give up the whole Jellyfin on-the-fly transcoding malarkey entirely, and just batch-transcode my whole library using an external tool and add them back in using the "multiple versions of a movie" thing instead (trading off needing a GPU for using extra hard drive space).
I would highly recommend that you pay the extra and get the Quadro P400. NVENC is much easier to work with and AMD's encoding quality in general is really poor in comparison. Also the Pascal cards like the P400 have the 6th gen NVENC encoder while Kepler cards like the K620 only have 4th gen so a huge quality difference there as well. And while neither can encode or decode AV1, the K620 can't decode HEVC while the P400 can. So if you have any 4K content you actually can't go any lower.
I have a 1050ti for transcoding. It rips through like 4 4k streams at once h.265 to h.264. Im sure most of the cards you listed will do the same as long as they have at least around 3-4gb video memory
It depends on how many streams you will be serving at once. I run a small server with at most 5 streams at once, and my 1060 6GB is overkill. If its just you, 2GB is more than enough. If its more than just you, Id go 4GB. Although, you should just ssh into it instead of hooking up monitor with keyboard. Ssh or install something that listens on lan.
I run jellyfin and disabled all transcoding. You just need to spend some time setting up and picking the properly formated content. I go as high as 4k HDR10 and no issues. For audio I bitstream, and if aformats is not supported, I will re-encode with ffmpeg to EAC3.
I'd recommend against an AMD card. Their video encoders have historically been pretty bad and they're still not up to the same quality as Nvidia and Intel.