I’m starting to get more and more HDR content, and I’m noticing an issue with my Jellyfin server. In nearly all cases, it’s required to transcode and tone map the HDR content. All of it is in 4k.
My little Quadro P400 just can’t keep up. Encoder and decoder usage hovers around 15-17%, but the GPU core usage is pinned at 100% the entire time, and my framerate doesn’t exceed 19fps, which makes the video skip so badly it’s unwatchable.
What’s a reasonable upgrade? I’m thinking about the P4000, but that might be excessive. Also, it needs to fit in a low-profile slot.
Edit: I’m shocked at how much good feedback I received on this post. Hopefully someone else will stumble on it in the future and be able to learn something. Ultimately, I decided to purchase a used RTX A2000 for just about $250. It’s massively overkill for transcoding/tone mapping 4k, but once I’m brave enough to risk breaking my Proxmox install and setting up vGPU, I’m hoping to take advantage of the Tensor cores for AI object detection in my Blue Iris VM. Also, the A2000 supports AV1, and while I don’t need that at the moment, it will be nice to have in the future, I think.
Final Edit: I replaced the Quadro P400 with an RTX A2000 today. With the P400, transcoding 4k HEVC HDR to 4k HEVC (or h264) SDR with tone mapping resulted in transcode rate of about 19fps with 100% GPU usage. With the A2000, I’m getting a transcode rate of about 120fps with around 30% GPU usage; plenty of room for growth if I add 1 or 2 users to the server. For $250, it was well worth the upgrade.
Not sure about how helpful this is. I use a GTX 1070 in my server, but I most of the time have only one concurrent stream. It handles everything (only up to HEVC obviously) flawlessy for now. It’s a card with a zero db mode and I’ve never seen the fans spinning since it’s in there, so the load on the GPU even when transcoding can’t be very high
Do you transcode 4k with tonemapping? My P400 does a great job as long as tonemapping is turned off, but that doesn’t do much to help me play HDR content. A GTX 1070 would be a great solution, and cheaper than some of the other cards I’m looking at, assuming it can do what I need it to.
I usually only ever have 1 concurrent stream, too. It’d be nice to have a GPU that could support 2 just in case both of us in my household want to use Jellyfin at the same time, but it’s certainly not essential.
I do tone mapping just fine with a 1050 TI. It just happened to be what I had left over for my server and it works very well.
another vote for the 1050
I’ve got a 1070 that I use for transcodes and some tonemapping where necessary and I don’t have GPU related issues (My ISP causes their own problems). I can usually run a few small streams at once, and I have a PC that I use to handle files too large to reliably stream to my Chromecast with Google TV over WiFi.
What kind of issues do you have with your ISP? I live in a rural area, so my options for ISP are limited; I have a VDSL connection supplemented by Starlink. Starlink uses CGNAT, so I can’t really host anything there unless I use something like Zerotier to Tailscale, but my VDSL connection works pretty well as long as I make sure to drop the bitrate to something that fits in my 4MBit upload. I have anything that accepts incoming connections behind an Nginx reverse proxy, and my routing policy is set up so that Nginx is forced onto the DSL connection.
Not really related to my original post, but I’ve spent way too much time tinkering with my network, so I was curious.
I guess compared to your situation, they’re fantastic. I have a static IP and copper connection, but they don’t offer any symmetric plans. I’m stuck with 200down/15up and the best up they offer is 500down/25up.
I went with a p2000. I use plex, but I imagine usage would be similar. I’ve had 5 people using it at the same time transcoding 4k to 1080 with no issues. Good luck!
I’d guess that Plex uses ffmpeg internally, which would be the same as Jellyfin. I’ve been looking at both the P2000 and P4000, but I’m leaning a bit toward the T1000 because of the newer architecture. Good to hear that the P2000 is working for you.
Good idea - looks like you may be able to get one on ebay used for less than $200.
Do you have a 7th gen or newer Intel CPU with an iGPU? Quicksync might work for that.
Unfortunately, my CPU does not support quicksync; I’m using dual E5-2650v2s in the server that hosts Jellyfin. It’s been a while since I researched it, but I believe that Haswell was the first architecture with quicksync; my CPUs are Ivy Bridge. I’ve been wanting to upgrade for a while, but it really comes down to the fact that it runs all of my VMs and containers just fine, and there’s always somewhere else I find to spend my money.
Regardless, the Jellyfin docs say that tone mapping is only supported via CUDA, which would mean I couldn’t use quicksync anyway.
4K and on my P2000 or using Intel QSV isn’t a great experience. I can totally see it not being a good experience on a P4000 too.
That being said with HDR work 1080 it works with both QSV and the P2000. So it should work like a champ on the P4000. I don’t really have any HDR displays so I don’t really grab that many things in HDR so YMMV.
The best advice I can offer is if the content is transcoded into a mp4 container with the ATOM upfront ( aka fast start / web) and you’re not using subtitles it will work okay-ish as long as you do not pause it. Using the mkv container is just asking for sadness in my experience with it. Though at this point if I need to do that I just transcode into AV1, burn the subs into it, and pass through the audio.
Use this guide to find the right card for your budget and specs. https://developer.nvidia.com/cuda-gpus
deleted by creator
Yeah HDR has that tonemapping problem but… are you sure you cannot deal with it client side on your devices without recoding? Often by using MPV as “external player” the tonemapping problem is solved.
I haven’t tried MPV, but everything I’ve tried so far results in the typical green and purple image, unless I do hardware tonemapping on the server. I also don’t much like the idea of having to load an external player on every device either, especially my Android TV box.
Upgrading my GPU seems like the best solution; I just want to make sure I get something that will do what I need it to.
Android TV should handle HDR automatically (and tonemap it if needed).
Green and pink tint sounds like the source is Dolby Vision, not HDR10. So, 2 questions:
- Why do you need HDR sources if your displays don’t support HDR?
- Assuming the answer to (1) is that you’re future-proofing, why not just get HDR10 files instead of Dolby Vision?
I thought the same with Android TV, but at least for me, it doesn’t work at all; I’ve tried two different Android TV boxes, too, and they both have the same problem.
I wish I could find everything in SDR or at least HDR10, but that’s not always an option. I’ve found several “Linux ISOs” that are only available in DV, and some where the only option is 4k HDR or 1080p, and I really prefer to avoid anything below 4k unless absolutely necessary. 4k SDR is always my preferred format, though.
Not sure what Linux ISOs are, but it’s pretty rare that something is only available with Dolby Vision and not HDR10. Have you verified that HDR10 gives you trouble? 4K HDR is also usually HDR10, unless specifically marked as DV, in my experience.
Anyway, another option, if you don’t care for HDR, is to transcode/tonemap everything in the background. This way, you don’t have to worry about performance during playback.
Linux ISOs are copies of installers for various Linux distributions. They’re totally free and legal to distribute, and a very above-board and legitimate thing to store on a server with more space than a normal person could reasonably need. They are very much not copyrighted content.
Ah. Sarcasm is difficult to see in text based communication.