Hardware: Odroid XU4 as Plex Media Server

HardwareMedia CenterSelf Hosted

Written by:

The Odroid XU4 – like a Raspberry Pi, but better.

As part of my efforts to be cloud non-dependent, I have a NAS full of several terabytes of music, movies, and TV shows. Plex is of course everyone’s favorite software for solving this problem, as it essentially turns your hard drive full of files into a private Netflix capable of streaming and syncing to any device.

1080p and commercial free, sorry Anthony.

The problem is that streaming and syncing is a very CPU intensive task and requires a server of substantial processing power. Is the cheap Odroid XU4 single board computer up to it?


The Odroid XU4 has a number of things that make it an ideal candidate for a small, low-power Plex server or a very nice and compact client.

  • 8-core ARM processor, half at 2ghz
  • 2GB RAM
  • USB3.0
  • Gigabit Ethernet

Sound greats, but I could find no documentation on whether this thing could actually meet the requirements needed for Plex transcoding, and what the state of the Plex software transcoding is on ARM processors. My needs are pretty minimal: I need to be able to transcode up to 1080p files to at least one client (my projector) and sync files to my various devices (phone, tablets).

Being performance sensitive, I went with Diet Pi as the operating system. It’s a barebones minimal install of Debian Linux, but what it really shines at is being optimized for these single board computers. It also contains quite an impressive set of programs that make getting up and running dead simple, and there are scripts for installing pre-tuned software.  You really don’t have to touch the command line at all.

RELEVANT CONFIGURATION DETAILS

Thank you Diet Pi, this otherwise would have been quite painful.

  • CPU:  As above, ondemand governor with the Max Frequency Limit set to 1800mhz. This essentially underclocks the faster cores slightly, which I found led it to run stable and at a reasonable temperature.
  • Network: The files are accessed over Gigabit ethernet through NFS on my file server. I originally set this up to get the files over Samba – but realized that Samba has a ridiculous 20% CPU overhead for moving files around, and is also unusably slow. Definitely use NFS if your storage is not local.
  • Heat: The Odroid XU4 is not very heat efficient and notoriously runs hot. I would recommend installing a larger heatsink than the manufacturer provides, and then using an active cooling fan on top of that. With a small heatsink and a fan, I’m getting 45 – 55C at idle, 60-70C while transcoding. This jumps up to around 75-80C on high res (55mbps, Blu-Ray equivalent) files and at the initial loading of files for a few seconds. This is borderline acceptable for my use but would require more active cooling for serving high-res files.
  • Plex: Installed the pre-tuned version from Diet Pi’s software installer. All default settings, except I have moved the temporary transcoding folder to a USB3 drive instead of using the SD card.
RELATED >>  Config: Setting up the Xiaomi Mi Robot Vacuum in Home Assistant


RESULTS

For my use – the transcoding of 1080p files for a single user – it works perfectly. Files load fast, the XU4 stays at a reasonable ~70C temperature under heavy load, and everything works as it should.

Testing with the files from http://jell.yfish.us/ I am able to load and play 55mbps (Blu-Ray equivalent) h264 and h265 files just fine. The loading does take significantly longer than my usual files, but it plays smoothly. As noted above, the temperatures do spike to unacceptable levels on these high-res files, so a more serious cooling solution would be needed.

I will do further testing on it’s performance but my initial results here are exactly as I’d hoped. For a cheap, low-power Plex server the XU4 works great.


8 Replies to “Hardware: Odroid XU4 as Plex Media Server”

  1. TOM says:

    Any news on how this project is going? Have you looked into getting hw transcoding going with Plex?

    • brad says:

      This has been working out great for me, I have been using it as a daily Plex transcoder for my apartment. I have not looked into HW transcoding because the performance is more than good enough as is for 1080p files.

      • TOM says:

        Sounds promising. Some follow-up questions:

        Have you done any tests on power consumption when the Plex server is idle vs. transcoding?

        How about the DVR functionality?

  2. […] overkill for Home Assistant, but I also plan to run Plex Media Server (which currently is on an Odroid XU4) so the CPU was important. I want to be able to run other VMs for various things like development, […]

  3. Pete says:

    Thinking about this myself . The hi res files are they direct play ? I am remuxing my 4k blueray library and putting them in mkv , I dont need any transcoding in my case so will I see those high temps ?

    • brad says:

      I’ve since switched to a different solution (running the transcoding server on an x86 machine) but my suggestion is to download the Jellyfish files I linked, see what works best with your setup, and then encode your library at whatever testfile quality you determine is the best.

Leave a Reply

Your email address will not be published. Required fields are marked *