FAQ: Plex Media Server and NAS
Running Plex Media Server on a NAS
This guide is designed to provide information on what is required to successfully run Plex Media Server on a NAS unit.
I think I want a NAS and I think I want it to run Plex Media Server, but I'm really not sure...
The two most important questions you will need to ask yourself when buying a NAS for use with Plex are:
- Do I want to run Plex Media Server (PMS) on the NAS itself or do I just want the NAS to store my media on?
- Do I need my NAS to be able to transcode my media for my client devices, or can my client devices play the media in the formats as I have them stored natively?
Let's expand on those questions and see what they really mean.
Do I want to run PMS on the NAS itself or do I just want the NAS to store my media?
If you just want to store your media on your NAS, then there isn’t really anything Plex-wise that needs to influence which NAS you buy. Find a brand you like that can hold the amount of storage you want and you’re done.
If you want to run PMS on the NAS itself, keep reading.
Do I need my NAS to transcode my media for my client devices or can my client devices play the media in the formats in which I have it stored natively?
Running PMS on the NAS itself means you’ll need to choose a NAS that meets a few basic criteria. It will need to:
- Be a QNAP, Synology or ReadyNAS model with an x86 CPU and have a CPU fast enough to transcode the type of media you want to watch, on the types of clients you want to watch it on, or
- Be an ARM supported model (currently only the ReadyNAS and Synology ARM models). Note that ARM models do not support transcoding at all, and likely never will. The format of your media will need to 100% match the formats your clients can play in order to work with an ARM-based NAS. Without the transcoder you are also likely to run into issues when viewing your media remotely as you will only be able to stream the media at full bit-rate, needing an internet connection with a high bandwidth
There are also situations where transcoding is required even if your media is compatible with your playback device, this can be the case when:
- Using subtitles - these are added on the server side so need to be “burnt into” the video stream, meaning it needs to be re-encoded
- Accessing your media remotely and your connection does not have the bandwidth to streaming the movie at its native bit-rate or resolution. Transcoding will be used here to make "the stream" smaller so it can fit over the bandwidth you do have available
I do plan to run PMS on a NAS, but what's this "transcoding" thing all about? Give me all the details and don't hide the fine print!
What is transcoding, and do I need it?
Transcoding is the process of converting media from one format to another. Normally when trying to play a media file that is in a format not supported by a given playback device it will simply stop and say it cannot play it. With Plex, it will still play, and that is due to the transcoder. When playing media on any device with Plex, the following process happens:
- When adding media to a Plex library, Plex will analyze the media and detect its format and details of the media such as encoding, bitrate, etc.
- When playing the media on a client device, the Plex software installed on the client device tells the server what formats it can support
- If Plex detects the media format is compatible with the client device it will send it the media "as is". If the media is not compatible, Plex will automatically transcode it into a format that is compatible
- The media will then play on the device, and continue playing as long as the CPU doing the transcoding is fast enough to transcode the media at a rate that is equal to or faster than it is being watched
How can I tell in what format my media is stored?
MediaInfo is a great tool for this, using its "Text" View will give a full summary of the containers and codecs used in a media file. At a basic level there are 4 things to note:
- Container formats, e.g. mkv, mp4, avi, etc
- Video codecs, e.g. divx, xvid, x264, etc
- Audio codecs, e.g. mp3, aac, AC-3, DTS, etc
- Subtitle tracks, e.g. srt, smi, vobsub, pgs, etc
You can download MediaInfo from their website.
Ok, I have Mediainfo, and it gives me a lot of information, but what does it all mean?
What to look for in the Audio section: this is all information about the audio codec used. This section may have multiple entries if your media has multiple audio tracks. In this example this media file has both a AC-3 6 channel and an AAC 2 channel audio track.
How can I tell what containers and codecs my client device(s) support?
Look at the specifications listed for the device on the device manufacturer's webpage. Plex uses the default playback engine on the device(s) so whatever the manufacturer lists is what it can natively play in Plex.
I am using the Plex Media Center desktop clients on either Windows or OSX. Where can I locate the specifications on what containers and codecs they support?
The Plex Media Center desktop clients decode all formats locally so transcoding it not used. Transcoding can be enabled though in the clients if you want to access your media remotely via these clients and the network between your location and your server does not support the media you wish to watch at full bitrates.
How can I tell what speed CPU the NAS needs to have in order to transcode the type of media that I want to watch?
The higher the resolution and the higher the media bitrate the faster the CPU will need to be. As a very general minimum, Plex recommends the following:
- At a minimum, a Core 2 Duo 1.6ghz CPU
- For 720p transcoding, a Core 2 Duo 2.0ghz CPU
- For 1080p transcoding, a Core 2 Duo 2.4ghz CPU
Note, that those specs imply both a specific CPU type (i.e., Core 2 Duo) and a clock speed (i.e. 1.6ghz). Some NAS units use Intel ATOM CPUs. ATOM CPUs are slower than Core 2 duo CPUs when running at the same clock speed. Check online benchmarks that compare the CPU in the NAS to the minimums listed above. As a general rule, no ATOM CPU is fast enough to transcode 1080p media, and only the fastest ones can transcode low bit-rate 720p media. These recommended speeds assume there is a single client needing to transcode. If there is more than one client, and the need to simultaneously transcode to them, an even faster CPU will be needed. (i.e. If you want to transcode 2 streams, double the CPU power. 3 streams, triple it etc)
How can I tell what CPU is in the NAS I like?
Check the specs on the manufacturers website. Some manufacturers make this info hard to find, so you may need to check in their forums. Googling for "NAS model xyz CPU type" can also help answer this quickly.
What is an x86 CPU and an ARM CPU and why does Plex work differently on them?
x86 is a type of CPU that is normally found in a desktop computer or laptop. It is designed to be fast, and run almost any software. ARM is a type of CPU that would normally be found in a mobile phone or tablet device. It runs some software well, but not all, and its primarily designed to be efficient and power conservative in order to lengthen battery lifetimes. ARM CPUs are very cheap and popular due to their widespread use in such devices. PowerPC (PPC) is another type of CPU that can be used in NAS devices, but is much older and was born before the age of CDs/DVDs and streaming media were thought of and given their age they are also very cheap. ARM and PPC CPUs are fine for running the basic functions of a NAS, but not so good with more complex functions like media transcoding.
Will there ever be versions of PMS for other non x86 CPU NAS units, or for additional x86 model NAS units?
There is an experimental build that can be found in the Linux forums for devices other than the ReadyNAS and Synology models (official versions of PMS can be found for it on the download page for these units). The Plex development team is interested in enabling support for more ARM NAS devices given their increasing popularity, though many NAS models run very specific operating systems so will need specific support. It is expected that additional ARM models will be supported over time, but how soon depends on how hard it is to make the custom version of PMS for each model. The ARM version is also unlikely to ever support the transcoding functionality as ARM processors are just too slow to support it. A build for Power PC (PPC) or SPARC based NAS units will likely never occur. There is also a community-based build for some Thecus models also to be found in the forums.
But surely if it runs on some NAS models using Linux, it should run on others also running Linux?
The Linux versions used on NAS’s can use very different “libraries”, just like they can do on normal Linux distributions. They can also make use of different processes for starting and stopping software as well as different locations and methods for storing configuration information. This all means that PMS needs to be customized for the different Linux environments in which it runs.
Are there any limitations I should be aware of when wanting to run PMS on a Linux NAS?
Yes, there are:
- Many Plex Channels are unavailable when running PMS on any type of Linux host. This is due to Linux not having support for formats like Flash, Silverlight or Webkit video which many companies have chosen to use to stream their content.
- "Merged Media" is not supported on the Linux platform. If you have multiple versions of the same movie in different qualities then they will not be merged into a single library item.
- This is more something to just be aware of, and something you may already be starting to think about. If you need to transcode 1080p media with your PMS, then doing so on a NAS means you are going to be looking at purchasing a high end NAS unit in order to for it have the required CPU speed. It may be more economical for you to run your PMS on a small efficient computer and just use any NAS for storage of your media.
I think I'll be ok with an ARM based NAS, but just in case, what does not having the ability to transcode really mean?
- You are going to need to know a great deal about the codecs and containers used by your media and a great deal about the capabilities of your client device(s) and ensure that they match exactly
- You will need to be familiar will media encoding tools to enable you to manually re-encode media that is incompatible with your client devices into formats which are compatible
- You may need multiple versions of each media file encoded with different containers and codecs, one for each of your client devices
- You may not be able to use Plex remotely, even if your media is 100% compatible with your remote client device(s), you will need sufficient Internet bandwidth to stream the media at its full bit-rate
- It will not be possible to watch media that use most forms of subtitles, subtitles need to be "burnt into" the video stream by the transcoder for viewing on most clients
- If you plan to use a DLNA client, you may need a version of your media specifically for your DLNA device. DLNA devices have a preferred format that your media will need to be in in order to work so you will likely need to read the "fine print" in your devices manual to ensure you have compatible media
- If you plan to use PlexSync, your media will need to be 100% compatible with your playback device and you will need to choose the "highest" quality level
- Channel support is limited, in addition to not being able to use Flash, Silverlight or Webkit based channels which are not available under linux, many channels also need to have their streams transcoded to work on many clients
For best results with an ARM based NAS, it is recommend that you use a client which supports a broad range of containers and codecs, like the Plex Laika Media Center clients for Windows and OSX, or the Samsung Smart Hub Client.
My friend and I both have NAS xyz and she can play 720p media, why can't I?
It is likely her combination of media container, video codecs, audio codecs and network speed allow her to play the media on her chosen client without transcoding it. Understand that using terminology like 720p to describe media is like saying "My friend has a blue car, and I have a blue car, how come her car is faster than mine" - it actually provides very little relevant information about the media in question.
This is all really confusing and very detailed, why is it so hard to just play back media?
This is what the Plex team realized which led to the creation of the transcoder. With the transcoder you do not have to care what sort of media you have; it lets you avoid having to keep several versions of media to work on each of your playback devices. Video transcoding can require a lot of CPU power to work - especially real-time transcoding - so the PMS runs best on fast CPU options.
Is there some sort of add-on “thing” I can install in my NAS to make it transcode faster?
No, transcoding is an entirely CPU-dependent process.
Is there a list of what NASs people are already using, and what success they have had with what types of media?
Yes, there is a community updated NAS list. As with any list that tries to track products that are being constantly updated it's best used a reference and hand-in-hand with the advice above.