Jump to content

Recommended Posts

Posted

Currently running Emby on a virtual machine (ESXi) with the following specs:

  • 8 CPUs from the 2 Xeon E5520 @ 2.27GHz in the host
  • 8GB of RAM
  • a 40GB disk on SSD for the OS and app
  • Media content through a SMB-share (over Gbit network, mostly 100MB/s+ read/write speeds)
  • Debian Buster
  • Emby Premiere subscription

 

Most content gets streamed fine. However, when something needs to be transcoded, it gets tricky. Especially high-quality stuff like 4K is simply not possible to watch through Emby. Also, subtitle burn-in hardly ever works.

 

So my question would be:

- Will adding a GPU benefit my setup, and what kind?

 

I would probably add the GPU to the virtual machine through DirectPath I/O PCI passthrough.

 

Of course adding a RTX Titan would probably improve it, but I just want something cheap. I was looking at used GPU's like the GTX950 of GTX960, mainly because they don't draw too much power from my server and would only cost me like €60.

 

So does anyone know wheter this could help me, or perhaps suggest an alternative? 

 

Thanks!

 

@

@@arrbee99

@@cayars

Posted

It may work but I've not tried it under ESXi.  I personally try to stay away from virtual systems for the actual media server.

 

Is it not possible to run your Emby Server on bare metal instead of virtual?

 

You can see what features are available on the different GTX board here:

https://developer.nvidia.com/video-encode-decode-gpu-support-matrix

Keep in mind the consumer GTX boards can only support 2 transcode streams at a time which may or may not be a problem for your system depending on how often things need to get transcoded and how many people use your system at the same time.

 

Hopefully others may comment to give you more information.

arrbee99
Posted

Virtual machines, Linux, SMB shares all beyond me. GPUs pretty much the same. Can't add anything that I guess isn't obvious, check what it is you're going to transcode and check any that a card can do it, especially an older card you happen to pick up.

 

Have seen something about a hack for GTX cards that removes that 2 transcode stream limit.

 

Do you need to transcode 4K ? I can direct play it fine generally in windows to the TV via Shield. Do you need to burn in subs. Was reading the below (post#8 ?) about what Emby does with subs that might be useful.

 

https://emby.media/community/index.php?/topic/84462-so-many-questions-i-need-help-on/

 

Sorry, this is probably pretty useless.

Posted

Virtual machines, Linux, SMB shares all beyond me. GPUs pretty much the same. Can't add anything that I guess isn't obvious, check what it is you're going to transcode and check any that a card can do it, especially an older card you happen to pick up.

 

Have seen something about a hack for GTX cards that removes that 2 transcode stream limit.

 

Do you need to transcode 4K ? I can direct play it fine generally in windows to the TV via Shield. Do you need to burn in subs. Was reading the below (post#8 ?) about what Emby does with subs that might be useful.

 

https://emby.media/community/index.php?/topic/84462-so-many-questions-i-need-help-on/

 

Sorry, this is probably pretty useless.

 

Every response is usefull for me, thanks.

 

I'm not really sure about how this limit works. Some people say that they can stream a lot more than the limit for their card, but does that mean they have to hack it first? Is that a custom driver, or do I need to do something with the firmware of the GPU? Is this 'session-limit' really a limit for how much movies can be transcoded at once (say 1 simultanuous movie transcode = 1 session)?

 

And well yes, I think I do need to transcode 4K. I have my server running at my parent's place (because there's fiber over there), and stream a lot of content over WAN for that reason. This basicly means the GPU should support H265 (HEVC) as well, since most 4K movies come in that format. Unsure what it does to HDR, but my TV (LG OLED55B6V) should support it. Although I also don't know how the Emby app on LG handles it.

 

I also have a Kodi-based media player (Vero 4K+) that should be able to stream 4K HDR with Atmos or such. There has been a EmbyCon plugin, but last I used that device, the plugin was gone because it was broken or something. Haven't checked since. That's been a few months to be honest.

 

 

It may work but I've not tried it under ESXi.  I personally try to stay away from virtual systems for the actual media server.

 

Is it not possible to run your Emby Server on bare metal instead of virtual?

 

You can see what features are available on the different GTX board here:

https://developer.nvidia.com/video-encode-decode-gpu-support-matrix

Keep in mind the consumer GTX boards can only support 2 transcode streams at a time which may or may not be a problem for your system depending on how often things need to get transcoded and how many people use your system at the same time.

 

Hopefully others may comment to give you more information.

 

Well, for me it's not really possible to run it bare-metal. The host I run it on is a hypervisor with around 20 virtual machines for different purposes. Emby runs fine for simple streaming of Full HD content when not a lot of transcoding is needed. But I just want to up my game for all 4K content and to serve more streams at once. So of course I understand that a virtual GPU in VMware is terrible for Emby, but when I use PCI passthrough, the machine should have the entire GPU for itself as if it was directly connected to it. So I guess in that case it shouldn't really matter wheter the machine is virtual or not.

vinceflynow
Posted

I have emby server running on Ubuntu 18.04 VM on top of ESX 6.7 with a GTX 1080 pass through.  Running with patched driver unlocks unlimited nvenc streams.

 

The benefit to me, is that I'm able to real-time transcode more video streams. I've seen 8+ simultaneous stream with a modest amount of VM resources (I'm using a VM with 8 CPU, 16GB mem).

 

I would say the best bang for the buck GPU for transcoding, is a used GTX 1070, which is going for around $200-$250.  The GTX 1070 and 1080 have two nvenc processors, and can handle more simultaneous nvenc streams.

From a high, level this is what I had to do to get GPU transcoding working with Ubuntu and VMWare,

1.  VMWare config:
- Enable pass through of both GPU and Audio PCI.
- Assign both GPU and Audio PCI devices to passthrough to the Ubuntu VM.
- Set hypervisor.cpuid.v0 = FALSE in the VM advanced setting.
- Reserve all the memory in the VM settings

2. Ubuntu VM config:
- Uninstall the opensource nvidia drivers
- Install the keylase patched nvidia drivers, https://github.com/keylase/nvidia-patch
- This video describes how to config the drivers,



3. Run emby-server with premier key to unlock hardware transcoding
  • Like 2
Jdiesel
Posted (edited)

Go with a 1050 over a 950 or 960 if possible. There are some generational improvements that and very helpful. They can be found cheap used on ebay.

Edited by Jdiesel
  • Like 1
Posted

I have a 1660 running with the Nvidia patch and it works great!

Posted

I have emby server running on Ubuntu 18.04 VM on top of ESX 6.7 with a GTX 1080 pass through.  Running with patched driver unlocks unlimited nvenc streams.

 

The benefit to me, is that I'm able to real-time transcode more video streams. I've seen 8+ simultaneous stream with a modest amount of VM resources (I'm using a VM with 8 CPU, 16GB mem).

 

I would say the best bang for the buck GPU for transcoding, is a used GTX 1070, which is going for around $200-$250.  The GTX 1070 and 1080 have two nvenc processors, and can handle more simultaneous nvenc streams.

 

From a high, level this is what I had to do to get GPU transcoding working with Ubuntu and VMWare,

 

1.  VMWare config:

- Enable pass through of both GPU and Audio PCI.

- Assign both GPU and Audio PCI devices to passthrough to the Ubuntu VM.

- Set hypervisor.cpuid.v0 = FALSE in the VM advanced setting.

- Reserve all the memory in the VM settings

 

2. Ubuntu VM config:

- Uninstall the opensource nvidia drivers

- Install the keylase patched nvidia drivers, https://github.com/keylase/nvidia-patch

- This video describes how to config the drivers,

 

3. Run emby-server with premier key to unlock hardware transcoding

 

This is really helpfull.

 

So with patched drivers, the stream-limit is simply ignored?

 

I will have to look into the used-GPU market in my country (I prefer to buy it from someone in my country - the Netherlands). But I will also have to look at the power usage, since my server doesn't have much more headroom on the PSU's. Or I have to upgrade those.. Either way, I have to decide how much money I can smash on this new project.

  • Like 1
vinceflynow
Posted (edited)

The patched drivers will ignore the artificial limit of 2, imposed by the official nvidia drivers.  The real limit depends on the input/output video, and GPU.  You can look at the Plex Media Server: nVidia Hardware Transcoding Calculator for Plex Estimates for some useful benchmark of achieved simultaneous transcodes with various stream quality and hardware with patched drivers.

 

If power consumption is a concern, @@chef's recommendation of a GTX 1660 looks very good.

Edited by vinceflynow

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...