Building a 4K 10-bit ready NAS


Recommended Posts

Hi.  I plan to build an Unraid NAS that is capable of transcoding 4K content to non-4K TV.  I'd like to be able to stream to 2-3 non-4K TV simultaneously.  I presume Plex server is needed to transcode on the fly?  I also saw on some review of Synology that there are models that their own app is capable to transcode the 4K content as Plex doesn't have direct hold of the hardware transcoding engine of the processor to be able to transcode on the fly.  What this means is there are models that are ready for Plex to transcode efficiently, while there are also models (different processor) that are capable to transcode even without Plex.  This is done by Synology's own native converter app.

 

Hope members here can suggest an inexpensive processor to do this.  Celeron or Pentium tops.  Furthermore, 10-bit capable.  I heard motherboard needs to be ready also.

 

Regards,

 

Jason

Edited by jang430
spelling
Link to comment

Only a Kaby Lake or Coffee Lake CPU with integrated graphics and Quick Sync Video support is capable of hardware transcoding 10-bit HEVC 4K video with Plex/unRAID.  Without hardware transcoding, the processor does brute-force/software transcoding and a Celeron or Pentium would choke on that task.

 

See https://en.wikipedia.org/wiki/Intel_Quick_Sync_Video

 

Kaby Lake Pentiums are the G4560, G4600 and G4620 (all of these models have QSV support).  There are also i3. 15, i7 and Xeon Kaby Lake processors with QSV support

 

Coffee Lake Pentiums are the G5400, G5500 and G5600 (These models just began shipping Feb 14 and may have limited availability - They also have QSV support). There are also i3, i5, i7 - but no Xeon - Coffee Lake processors.

 

Of course, you need the appropriate motherboard to accommodate the selected processor.

 

There are a few discussion threads in these forums that detail how to enable hardware transcoding in Plex.  This feature requires a Plex Pass.

 

EDIT:  You can either build an unRAID server that it capable of transcoding 10-bit HEVC for any client that cannot do it itself, or you can build an HTPC or NUC on the client side that is attached to your TV and takes care of this task so the server does not need to.  Both approaches will work.  If you only care about transcoding for viewing on a TV, the client-side approach will work well.  If you want content transcoded for remote consumption or for mobile or other devices, you need to do it from the server.

Edited by Hoopster
Link to comment

@Hoopster, Plan to do it on the server side.  I've seen the youtube video I mentioned above, saying Plex doesn't have access to Transcoding Engine of the processor as of the moment.  Therefore, although going to get a Kaby Lake with QSV, but not accessible by Plex, still require Plex to do it via brute-force, and not via QSV.  Can you confirm this is the case with Plex?  

 

Plex Pass needs subscription right?  Don't want anything with subscription.

 

Can we not have Unraid transcode all 4K content to 1080p for all Kodi clients  connected to 1080p TV?  Prefer not to install Plex client on top of Kodi, to stream the show.  Currently, with my existing Xeon E3-1240v2, what I do is use PMS, and my TV is connected to Kodi (Raspberry Pi) with Plex app.  It does the job for 1 stream, but brings my server processor to it's knees.

 

Link to comment

I am not sure to which YouTube video you are referring; however, Plex (as of about Sept. 2017) can use the transcoding engine of the integrated GPU with QSV.  I am using it now on my Skylake Xeon and it drastically reduces the load on my CPU when transcoding.  The Skylake Xeons only support 8-bit HEVC transcoding and not full-10 bit, but, Kaby Lake/Coffee Lake can do full 10-bit HEVC encode/decode.  I am not doing any 4K/HEVC transcoding, but, I have tested it and it will transcode 10-bit HEVC via software/brute force even on my Skylake.  All eight CPU threads are at 89-97%, but, it does it.

 

For details on Plex hardware transcoding requirements see https://support.plex.tv/articles/115002178853-using-hardware-accelerated-streaming/

 

Hardware transcoding can result in lower quality video with artifacts at low bit rates.  However, with 720p/1080p at 4 Mbps or higher, I see no difference in hardware vs. software encoded content.

 

What is not yet possible with Plex on unRAID is to use a dedicated NVIDIA GPU for transcoding instead of an integrated GPU with QSV.  This is because there are no NVIDIA GeForce drivers in unRAID.

 

I believe others on these forums are doing hardware-trancoded 4K 10-bit HEVC with a G4560 for example and report good results.

 

I have a lifetime subscription Plex Pass (got it on one of their $75 sales), but, there is no hardware trancoding support unless you have Plex Pass (monthly, yearly or lifetime subscription)

 

 

Link to comment

@Hoopster@saarg

 

Since to transcode requires Plex Pass, Are there any app in Unraid, that upon detection of a non 4K client trying to stream 4K content, automatically transcode on the fly using hardware?  

 

Purpose for this is so that there are no more additional toll on the Raspberry Pi Kodi (no need to install Plex app), and no longer require PMS Plex Pass.  I also intend to use an inexpensive processor such as Pentium G4560 or G4600, both Kaby Lake.  Only need a few docker containers, such as Sabnzbd, Sonarr, CouchPotato, LazyLibrarian, Calibre, Deluge, and possibly, OpenVPN.  8 GB.

Link to comment

Plex/emby can transcode in docker container with "--device /dev/dri:/dev/dri" in extra parameters and activated i915 in go file in unraid!

tested on asrock j4205 (intel hd505) and i5-7400 (intel hd630) on both works perfect!!

i played 4k hevc 10bit in web browser and had 30% cpu util on j4205 tiny board.

Link to comment
18 hours ago, jang430 said:

 

10:30 minutes in, they explain about this.

 

 

Synology and QNAP generally use lower-powered ARM or ATOM CPUs.  Since those CPUs don't have Quick Sync Video support or any other CPU/iGPU-based transcoding method, Synology has developed their own proprietary hardware transcoding engine.  It is this proprietary engine to which Plex does not have access.  It can only access the CPU which is too low-powered and lacks the iGPU with QSV for 4K transcodes  The Synology/QNAP architecture is very different from building an unRAID server with basically any hardware you choose.

 

Your 4K content handling options at this point with unRAID are the following (as have been mentioned in this thread):

 

1. Get a Plex Pass so you can hardware transcode with a QSV-enabled CPU/iGPU via Plex (I am not sure what you need for Emby) on the server

2. Skip the Plex Pass and get a powerful CPU that can handle the load for 10-bit HEVC software transcoding

3. Some other media client that will play 4K content and convert as needed

4. Use Handbrake (or something similar) on your source material to create content that can stream on all your clients without transcoding

Edited by Hoopster
Link to comment
8 hours ago, jang430 said:

Are there any app in Unraid, that upon detection of a non 4K client trying to stream 4K content, automatically transcode on the fly using hardware?

 

Yes, you just described what Plex and Emby do, but, with the restrictions already mentioned. Other than that, the answer is, no.

 

At this point in time, the only hardware-based transcoding that can possibly take place on an unRAID system is with an an app that can use the QSV-capable CPU or a discrete graphics card (not supported now because of lack of drivers).  You will never see a proprietary hardware transcoding method from Limetech since unRAID is only the OS; they do not control the hardware.

Edited by Hoopster
Link to comment
3 hours ago, BRiT said:

Easiest solution is to either change your source material or your client hardware so transcoding is not needed.

This is a good point, although keeping media in multiple resolutions can be wasteful.

 

But with Plex you can schedule conversions that can be later watched and removed. You can also sync content to a device for later play. These do not happen in real time, so even with slower CPU, you can convert 4K video to a 720p for later viewing.

Link to comment

@vanes, what are these parameters for? "-device /dev/dri:/dev/dri" . Where do you put them?  I do use Plex Media Server, (no hardware transcoding) and Plex client on Kodi (RPi 3).  Works so far.  The media being transcoded is Amazon Prime 4K, I believe h264?  And that brings my processor to it's knees, but works.  I didn't have -device /dev/dri:/dev/dri on my go file.  Is this another function that I don't know of?  What does it do that I currently am not getting? Can you elaborate further?

 

@Hoopster, Thanks for clarifying these, and listing down my options.  Now I understand why Unraid will not release an app that does that natively, exactly because it's a nas os, and Plex is it.  

 

@SSD, "But with Plex you can schedule conversions that can be later watched and removed" Does this require Plex Pass or anything with pay?

 

 

Link to comment
24 minutes ago, jang430 said:

what are these parameters for? "-device /dev/dri:/dev/dri" . Where do you put them?  I do use Plex Media Server, (no hardware transcoding) and Plex client on Kodi (RPi 3).  Works so far.  The media being transcoded is Amazon Prime 4K, I believe h264?  And that brings my processor to it's knees, but works.  I didn't have -device /dev/dri:/dev/dri on my go file.  Is this another function that I don't know of?  What does it do that I currently am not getting? Can you elaborate further?

 

This goes in the Extra Parameters in the Plex Docker config (you have to enable Advanced View on the docker edit page to see this.

 

image.png.d719e3f2ba0300e500fcb3af7d3f5bb2.png

 

Also, you need some entries in your go file like this:

#Setup drivers for hardware transcoding in Plex
modprobe i915
chown -R nobody:users /dev/dri
chmod -R 777 /dev/dri

And in your Plex server Transcoder Settings page you need to enable hardware acceleration

 

image.thumb.png.9987e8e84bb16ff32bd8afd5f6d8ae3c.png

 

None of this matters unless you have a Plex Pass as I believe the hardware acceleration option does not even show up in Plex server setting without a Plex Pass.

Edited by Hoopster
  • Upvote 2
Link to comment

If you do get a Plex Pass (just pay $4.99 for one month to try it out and see what it can do for you) to enable hardware transcoding, you will see something like this on the Plex server Status screen when content is streaming:

 

image.png.3a277f8b5b4bef3e30fd84ab9ba98609.png

 

The (hw) indicates the media is being transcoded in hardware from MPEG2 to H264

 

Edited by Hoopster
Link to comment

@Hoopster, currently, my Plex transcode 4K resolution to 1080p (Amazon content is around 15000 bitrate with 4K content, in h264 your processor)  What does below lines do?  Are these specific to h.265?  What will happen if the following lines are not input? 

 

1. -device /dev/dri:/dev/dri

2. 

#Setup drivers for hardware decoding in Plex
modprobe i915
chown -R nobody:users /dev/dri
chmod -R 777 /dev/dri
Link to comment

Line 1 maps the device /dev/dri from the host (unraid) to /dev/dri inside the docker.

Block Code 2 loads the integrated i915 Device Driver (integrated Intel GPU device), sets the owner of the device to Nobody and Group of the device to Users, then changes permissions to be Read/Write/Execute to owner (Nobody), group (users), and everyone else (world).

Link to comment

Some corrections and clarifications for everybody

10 minutes ago, jang430 said:

1. -device /dev/dri:/dev/dri

2. 


#Setup drivers for hardware decoding in Plex
modprobe i915
chown -R nobody:users /dev/dri
chmod -R 777 /dev/dri

1. should be as below; note the double dash vs the single dash

--device /dev/dri:/dev/dri

2. the chown line is not needed, just the modprobe and the chmod lines (The official emby docker doesn't even need the the chmod line, just the modprobe line) and an extra option in the container config.

GIDLIST: 18

  • Like 1
Link to comment

@BRiT, some further clarifications.  I mentioned above that without line 1, I'm already able to stream to Plex Client in Kodi from Plex Media Server.  Though this only- (Amazon content is around 15000 bitrate with 4K content, in h264 your processor).  What's the additional line for?  Without this line, Plex won't transcode h.265?

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.