Designing a Plex Media Server for Streaming over transcoding, CPU recommendations.

Can you please give me advise on which CPU to use in my server?

See attached layout of what I am aiming for with my build.

Researching the various forums, I started to believe I needed at least an intel CPU (E3 1275v5) for the intel video sync feature for enough transcoding power.

If I have understood the forums correctly I am now thinking a large enough multi thread CPU (Ryzen 7 2700X?) with a basic video card for the server monitor will cover what I am planning to build.

Also with a big enough CPU I won’t have to tweak things like using RAM for the transcode location so I think 16Gb of RAM will be enough.

Supposedly software transcoding (using a large CPU) gives better results over hardware transcoding (GPU/dedicated video card).

For the OS I am leaning toward UNraid, System overheads would be Host OS, VM or Container with windows 10 for everyday use, dedicated Plex container and a further container for torrents, sonar etc.

4 x transcodes (2000 x 4) 8000 Passmark.

System overheads (wild guess) 3000 Passmark.

Streaming I have no idea.

Thanks in advance
Media%20server%20layout

Hi John, i’m new here and definitely not an expert, but i do not believe you need much grunt at all for transcoding. Our phones can transcode 264 (probably 265, i don’t know), my weak CPU’d PVR can transcode (264 anyway), and does a pretty good job of it - a bit jerky when i FF at 8x though.

ENCODING you would want grunt, or else you have to wait forever.

The important thing is that the CPU or GPU has the relevant codec decoding available in the hardware. Ryzen has h.264, h.265 encoding and decoding.

Others are doubtless better placed to advise regarding the minimum CPU you’d be after - but i believe that even the lowest Ryzen would be ample for transcoding.

EDIT: mind you - i only have experience with HD, not 4k content. And i’ve never streamed to multiple devices simultaneously.

3 Likes

To get x265 hardware decoding support, you’d need Geforce 950+ or an intel Coffee Lake or newer CPU, AMD i haven’t researched. However, to decode x265 8bit for one client, I use 6% CPU on a fairly slow Xeon E5-2450L. Encoding x265 is at around 15 fps, give or take. Nvidia has a nice overview somewhere on their website, which shows support for x265, HEVC, etc. Can’t find it at the moment, but have found it many times searching for x265 hardware support.

It is also possible to acquire a Tesla M4 or larger card off of ebay which can do decoding for you.

I’m not using Plex myself, all the forced login here and there makes me cringe, so instead I’m using Emby. Offers close to the same functionality. Emby is currently using 400 MB of RAM with one user streaming, hosting 10.000+ files from a docker container. Emby also has an app for android smart tv and other devices.

One of the bigger issues using hardware encoding to x265, is the cards are tuned for speed and not quality or filesize. This leaves you with quite big files, because of this, it can be better to use CPU encoding instead. I know it’s possible to set preset=slow parameter when encoding using ffmpeg to get smaller files, but haven’t tried this myself.

Also as comparison, a Raspberry Pi 3+ can decode 1080p x265 8bit 5Mbit quite well. There are SoC’s available that support x265, but it’s far from implemented, they have to be sought out and really researched, a few even support x265, but only 1080p at a piss poor framerate with many problems.

As a small side note, found this guide a while back, handles just about everything you might need for a Smart HTPC.

Edit: typos

3 Likes

Great link, just what i am planning thanks

actually, looks like PLEX is extremely limited in their implementation of hardware acceleration, no open CL, CUDA only on wondows, and intel quick sync otherwise. so bad.

probably just best off getting a decent CPU and rolling with software encode

1 Like

I made a docker compose file so it launches a swarm with all media containers together. If you’re interested, I can send you the compose file.

Also, if the services are exposed to the internet, I’d suggest the letsencrypt nginx reverse proxy container. Will run all over https. Also have that configured if you’re interested.

1 Like

Hi Hem,
I am in another country working for the next month but when i get home,
I will contact you, thank you for your interest.

1 Like

Agreed. I will try with HW decode when I have a spare card or when I can get a used Tesla card from eBay.

I did some extra testing last night with amount of clients streaming. On Xeon E5-2450L with 80GB of Ram, I was able to stream 5Mbit x265 8bit 1080p to 4 clients, fifth client was laggy. Roughly I’d think that’d be equal to one client in 4K. So either x264 or HW x265 should be required for what op wants.

Most welcome, spent evenings here and there of the last month or so tinkering with it. Happy if it can be used for something.

Most of my movies are 1080p, TV episodes 720p and various formats without transcoding.
If in the future i find i am suffering because of the amount of transcodes happening at the same time i have the option to convert them bit by bit (only keeping the optimised versions to manage storage size).
Direct streaming different streams to multiple clients on the local network i think will require no transcoding, not sure of the load on the CPU for each stream however.

That’s a fairly old Xeon too

Aye, picked it up for €30 a few weeks ago.

Forgot to add to my previous post, Emby was using 4GB of memory when I tested streaming with 4 clients.

@John-D when streaming x264, CPU usage is negligible. Can test later today when I get home. Also consider the codec and the player. If TV support x265, it’d be better to send data as a raw stream and let TV decode, otherwise you’d have to send larger files and might as well keep video library in x264.

2 Likes

Reasonably modern TV’s like LG oled B7 so TV should handle either, x265 sounds like a roadmap for the final format of my library, at the moment i have various formats so it all needs some proper organization :slight_smile:

1 Like

it is important to know how many clients you have and what type of videos content you plan to stream or direct play

for example 4K HDR or 4k or just 1080p etc…
and the clients ios devices only or some smart tv’s LG webos , nvidia shield etc… how many at the same time etc…

because if you have many clients then something like Quadro p2000 or higher with unrestricted number of isntances at the same time will be needed.
Nvidia geforce lineup and titan are limited to 2 at the sametime.(driver limitations there is a work around a patch drivers on linux can be done and its there on github and youtube guides available to do it )
and intel QSV it will depend on cpu generation because old igpu’s can’t do 4K /4K HDR.
Direct play is easy but it is safe to say you will need to transcode I have nvidia shield , iphone x, LG B7 (webos) and none of them can direct play everything in my library , some silly things like subtitile for some format will require to be transcoded on some devices while others don’t some devices can give you HDR to SD tone maping with plex like iphone X while nvidia shield can’t (plex software is still in beta for HDR to SDR on ios and no news about other clients )

I am struggling with my pms right now and I am on the best server they support windows 10 :smiley: I came to this forums actually to troubleshoot my issues and stumbled upon your post so i wanted to share my opinion before you purchase of hardware that you might regret,

conclusion : give us a few examples of how you plan to use and what type of content (resolution/format ) so we can advice on best server hardware.

about the 10GBE it depends on your usage of the server will you transfer big files or not?
1gigabit is enough for few 4K HDR (60mbps each streaming with plex) so don’t think you will have bottlneck there.

I am building a pms server soon so probably i will end up like you posting for advice XD because my current gaming rig 1080 Ti + 8700k isn’t powerful enough for my usage

1 Like

Hi Fido,
It looks like i will end up converting my whole library to x264 (H.264?) that is compatible with the webos Lg tvs, aiming for as much direct play as possible.
The only transcoding i can foresee is for a few (up to 4) outside clients and if plex needs to for subtitles.
1gb network adapter (greater then my internet upload speed) should cover any streams going to the internet.
The 10GbE should serve many local clients (100Mbs peek per stream x 10 plus Tv/display on the local network).
As of today i am 90% sold on a Ryzen 2700x Cpu with a X470 Taichi Ultimate MB, UnRaid OS, ADATA XPG SX8200 PRO M.2 2280 NVMe for cache/plex/etc (have not found whether a second NVMe for cache pool will reduce the NVMe to the lowest speed, MB has 2 different slots) 16Gb memory (undecided), 4 data, 1 parity and 1 cache drive.
I know i am a little all over the place, quite a job putting all the aspects of the different hardware and how it works together.
Thanks for the input and good luck for your build.

1 Like

for the ssd its not needed to be nvme , unless you store the same content on it and all users will access on it the same video file.

i am using nas grade hardisk ( seagate firewolf 8TB 256mb cache ) and ran 1 direct stream local network 4k HDR 60mbps + 1 4K HW transcoded 50mbps on another house + 3 or 4 1080p transcoded hw to 1080p all of them 20~ mbps all of these from the same hardisk without a hiccup.
the plex somehow manage it well and do it right with disk utilization and cache maybe it uses ram like in linux ZTFS file system but what i think nvme might be better for the plex software itself like opening tv show and seeing the episodes thumbnails stuff like that might be different .

for me i noticed that my 512GB ssd nvme 860 evo is very fast and overkill to when i get to build my plex server i will make it 2TB Sata ssd which is more than enough, the capacity have to be big for optimize versions + thumbnails generated by plex take a good size , so far my 20TB collection made 200GB~ thumbnails + fast forward icon preview feature > on my ssd.

also when someone use the download feature they will create optimized version automatically but it gets deleted once they finish downloading all the episodes but that did take a good amount of space (kuroko no basket anime 2 seasons 1080p each episode 500BM~) my newphew downloaded it on his iphone Xr (ios plex way better than andriod so far) it took 40GB~ on my ssd

so that 200GB for thumbnails + fast preview (when u click forward or want to see scenes to reach the point u want to watch its actually a converted small format of the video saved on the disk ) + optimized versions + downloaded + operating system and updates , they will add up quiet easily to reach 500GB. so my advice think about capacity over disk speed, a cheap sata ssd will be 1TB in the price of 256GB nvme ssd

there are concerns for cpu choice i am really stuck on choices

1- to buy old xeon cpus and give 20 cores 40 threads to this amazing plex server it will be amazing for adding new content so it doesn’t take forever generating thumbnails or preview files and transcoding will be fast. but it will suffer for audio coz its single core usage and other things also single core like when u use the download feature or optimize a verion for mobile.

2- get the fastest single core performance cpu with highest core count something like core i9 9900k will be the best your money can buy for optimizing videos for plex download and audio transcoding. but its 8 cores and 16 threads for adding new content isnt enough for me :confused: coz my 8700k wasn’t fast enough and it took looooong time to add terabytes of stuff.

3- something in between like 2700x etc… :3 might be good option

editing : forgot to mention something very important , plex really works best on windows 10. as far as i know no hardware transcoding on unraid at all. i think you will need to get a quadro with that 2700x if you are thinking about transcoding . ( Geforce cards drivers only do 2 transcoding , some methods to unlock the drivers on linux are there on youtube and it will be unlimited )