Reccomendation for Emby (4K transcoding) (and potentially some other bits)

Associate
Joined
29 Dec 2014
Posts
2,333
Location
The "North"
Hey all,

Apologies if this has been posted already however I've had a look on a few of the recent threads and can't quite find a similar recent scenario (Or I'm blind which is more likely)

Currently I'm running a HP ML110 G9 server as Hyper-V host with a few VMs on it (DC, Emby, PiHole, Home Assistant etc) which has been fine for the most part as I do a lot of direct streaming however I've started to test out 4K and transcoding which has not been as succesful as I would like (It's unwatchable).

I'm not too surprised as the E5-2620 v3 is definitely showing its age now and there is no QuickStep technology (Plus Emby is in a VM so it couldn't use it even if I had it).

I've been looking at a few options as I know on the thread here it was decided that the best solution was something like a Dell 3060 and a dedicated NAS for a low power setup however since I'm looking to do 4K transcoding I'm not sure if that would work for me.

Overall I'm keen to keep things as low power as possible, I'm guessing that virtualisation may be out of the bag due to Hyper-V not playing nicely with iGPU passthrough which will leave me needing a dedicated power efficient server for Emby and then something else for the rest of it.

At the moment I think I have the following options:
  • i3 13100 based system (Emby) + NAS (Storage) + Server (Everything else)
  • i3 13100 based system with storage (Emby) + Server (Everything else)
  • i3 N305 NUC (Emby) + NAS (Storage) + Server (Everything else)
I must admit I have been out of it when it comes to transcoding so I have no idea on what is required/what isn't, I can see that Intel gets a lot of recommendations due to the iGPUs being better however I'm not sure what would be needed for 2-3 4K transcoding streams and if the i3 13100 is overkill.

Likewise I would like to build another system to host the remaining VMs since the ML110 is definitely showing its age now and is likely chewing through more power than should be needed to run the other bits and bobs.

Any help would be greatly appreciated, likewise if I'm blind and this has been resolved before that is good also :)
 
Associate
OP
Joined
29 Dec 2014
Posts
2,333
Location
The "North"
Incase anyone else has a similar predicament I opted for the following:
  • Single N100 based NUC to run Emby bare metal (Ubuntu server) - Arrived
  • Dual HP Mini 600 G9 12500T pair to replace ML110 - Not arrived yet
  • Synology DS920+ NAS - Not arrived yet
So far the N100 NUC has arrived and chews through the Emby workload fine, I can seem to squeez about 4K streams out of it however the SMB share hosted on the HDDs are the bottleneck before the NUC at the moment in terms of concurrent streams.

Hopefully when the other PCs arrive they should workthrough the workload nicely :)
 
Soldato
Joined
14 Jun 2004
Posts
5,432
i'd probably look at getings a quadro card for transcoding instead of using the cpu but like your self i havent really looked in to i with great effort untill recently.
if your willing to move away from hyper-v gpu pass through becomes a lot easier.
you probably also wan to look at automation for power off and power on
 
Associate
Joined
25 Jun 2003
Posts
2,044
I have Emby and am using VMWare ESXi. I stuck a Quadro P1000 in the host and passed it through to the Emby VM, now transcoding is much faster and doesn't touch the CPU
 
Associate
Joined
14 May 2006
Posts
1,285
I'm currently running Emby on an old-ish Synology NAS with only CPU transcoding and it does struggle with higher quality. I've got a second hand mini PC coming to act as a general purpose server which has an i7-8700 in it so hoping to make use of QuickSync to do some iGPU hardware transcoding in Emby (got premiere).
 
Associate
OP
Joined
29 Dec 2014
Posts
2,333
Location
The "North"
I'm currently running Emby on an old-ish Synology NAS with only CPU transcoding and it does struggle with higher quality. I've got a second hand mini PC coming to act as a general purpose server which has an i7-8700 in it so hoping to make use of QuickSync to do some iGPU hardware transcoding in Emby (got premiere).
If you can use Ubuntu on your mini PC you should be able to do HDR tone mapping.

I'm impressed with how well the N100 is doing, on the 4.8 beta it can do 4K @ 160 Mbps without any issues
 
Associate
Joined
14 May 2006
Posts
1,285
If you can use Ubuntu on your mini PC you should be able to do HDR tone mapping.

I'm impressed with how well the N100 is doing, on the 4.8 beta it can do 4K @ 160 Mbps without any issues
Ah interesting, I'll have a look into that. I was planning on running Emby in a LXC container on Proxmox so I'll see what sort of options I get there. I can always host a VM if needed for it.

Performance sounds really good, hopefully I'll get something comparable. Suspect I'll start network limiting at points as I'll be hosting files on a NAS (albeit with a 2x gigabit bound ports) and Emby on the mini PC 'server'!
 
Associate
OP
Joined
29 Dec 2014
Posts
2,333
Location
The "North"
Ah interesting, I'll have a look into that. I was planning on running Emby in a LXC container on Proxmox so I'll see what sort of options I get there. I can always host a VM if needed for it.

Performance sounds really good, hopefully I'll get something comparable. Suspect I'll start network limiting at points as I'll be hosting files on a NAS (albeit with a 2x gigabit bound ports) and Emby on the mini PC 'server'!
I think with Proxmox you can pass through the iGPU with a bit of persuasion but then the host OS can't use it if I recall correctly however the LXC container might be slightly different
 
Associate
Joined
14 May 2006
Posts
1,285
I think with Proxmox you can pass through the iGPU with a bit of persuasion but then the host OS can't use it if I recall correctly however the LXC container might be slightly different
Yeah, I've read a few conflicting reports but I'll have a proper play around when I spin stuff up and see what the best setup is. I'm sure I'll get something working! Emby performance has been fine from the NAS for most of my machines (I've had a conversion automation setup to convert into a more friendly format for the fussier machines!). I've jumped between dedicated servers, to firing everything onto the NAS (nothing critical, just a few docker containers) and now just starting to separate things out again (the mini PC approach has the benefit of using a max of 65W at complete max! 32gb, i7 8700 and a couple of m2 drives should handle most of my use cases at the minute, emby probably being the most hit day to day!)
 
Soldato
Joined
14 Jun 2004
Posts
5,432
tbh i never like passing the igpu over if for no other reason than as a back up so i can see whats physiccally at terminal in case i do something silly like change ip address and then dont know how to connect on :D
 
Associate
OP
Joined
29 Dec 2014
Posts
2,333
Location
The "North"
tbh i never like passing the igpu over if for no other reason than as a back up so i can see whats physiccally at terminal in case i do something silly like change ip address and then dont know how to connect on :D
That's valid, especially if their is no IPMI/iDRAC/iLO on the server as it can get a bit complicated if a dodgy update runs :D
 
Associate
Joined
14 May 2006
Posts
1,285
tbh i never like passing the igpu over if for no other reason than as a back up so i can see whats physiccally at terminal in case i do something silly like change ip address and then dont know how to connect on :D
Just to follow up, pass through iGPU working fine on a proxmox LXC container which should mean that it is shared with the host hypervisor if I ever needed something other than headless connectivity, don't need to dedicate it down to a proper VM.
 
Associate
Joined
14 May 2006
Posts
1,285
So full disclosure, a lot of it came from this reddit post but not everything in there was needed / complete for my usage. My rough bullet pointed notes were:

On proxmox host

Add ‘;intel_iommu=on iommu=pt’ to default/grub (after quiet)

then

Bash:
update-grub

Edit /etc/modules

add in:

vfio
vfio_pci
vfio_virqfd
vfio_iommu_type1

Then run:
Bash:
update-initramfs -u -k all


Reboot the proxmox host


Then check if working with:

Bash:
dmesg | grep -e DMAR -e IOMMU



Edit the lxc config file for the target (/etc/pve/lxe/{hostno}.conf):
lxc.cgroup.devices.allow: c 226:* rwm
lxc.mount.entry: /dev/dri/card0 dev/dri/card0 none bind,optional,create=file,mode=0666
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file​


Save and then reboot the lxc

Check that the lxc can see it:

cd /dev/dri && ls -l


From the command above,, view the group and make sure that the executing user has the group assigned with usermod -aG, then reboot LXC


You can then monitor from the proxmox host with:

apt install -y intel-gpu-tools

intel_gpu_top

This will show you if the GPU is being used for transcoding etc.
 
Associate
Joined
14 May 2006
Posts
1,285
As soon as I completed the above, I could see that playing something 4K, the GPU usage on the proxmox host went from literally 0% to 70% or so. If anything doesn't make sense above, let me know and I'll try and expand. The reddit post has a lot of useful info in it too.
 
Back
Top Bottom