When managing a Plex Media server the ultimate goal is provide a consistent, buffer-free streaming experience to your users. There are variables that go into providing such an experience: CPU, RAM, GPU (transcoding), network connections, and storage. Each component of the server needs to be fast enough to stream media across a network.
While much focus has been put on the CPU for processing the media files, many questions come up about where to store the media files. In reality, however, providing a consistem streaming experience doesn't really have as much to do with where the files are stored, as it does with the CPU.
Let's look at why the storage doesn't have as much of an impact on streaming.
It's about the bitrate
The examples I will be using will focus on 1080p movie files. The reason is because most movies are probably 1080p, and anything with less resolution than 1080p will have lower requirements. Higher resolution, such as 4K, will have more requirements, however, I have little experience with 4K movies, so I'll talk about what I know.
One of the characteristics of whether a device play or stream a movie file is bitrate. Bitrate is simply the number of bits that can be streamed or processed over a period of time. When it comes to movie files, the bitrate is usually given in the prefix megabits per second (Mbps, Mb/s, or mbit/s).
Megabits is always indicated using a lowercase “b”, such as “Mb”. Megabytes (8x larger than megabits) is indicated with an uppercase “b”, such as “MB”.
The bitrate of a movie indicates how many bits will need to be transferred to the device per second to stream the file. For a movie file with a bitrate of 17 Mb/s, it would require all hardware - hard drive, network, CPU, etc. - to process and send 17 megabits per second to the streamining device.
For 1080p movies that have been transcoded into mp4 or mkv containers, the bitrate is usually less than 20 Mb/s. When I transcode my movies into the mkv format, I target under 20 Mb/s, and newer movies easily end up with a bitrate under 10 Mb/s. Even after compressing a 1080p movie to that bitrate, the quality is still great and indistingishabile from the original blu-ray disc.
Now with the discussion about bitrate, what does this mean for the storage device used to store the media files on the server? Let's have a look at that.
Which storage device?
This is a question I have seen a lot. The quick response is: pretty much anything.
Computers store data usually on of two devices: solid state drives (SSD) and hard disk drives (HDD). The difference is SSD's use flash memory for storage, while HDD's using spinning platters. SSD's are much faster than HDD drives, but HDD's are cheaper per gigabyte of storage. The most common setup is to have a fast SSD for the operating system and applications, and the HDD for data.
When it comes to streamining, however, any modern SSD or HDD can easily stream movie files, in fact, they can stream multiple 1080p files at any given time.
Since HDD's are slower, and more common for storing media libraries, I'll talk about those drives.
A typical, modern hard drive can transfer data over 140 MB/s. Notice how I used the big "B", meaning 140 megabytes per second. Translated into megabites per second is 1,120 Mb/s. This is much higher than what is needed to stream a high-quality 1080p video that has a bitrate of 20 mb/s. Even with a bitrate of 20 mb/s, the hard drive has enough speed to stream 56 movies at a time. Of course, there are other factors that come into play, but the takeaway is that a modern, spinning hard drive can easily stream multiple 1080p movie files.
What about external drives?
The above section talks about hard drives, but most people think about hard drives that are internal to a computer - meaning they are installed in the computer. Many people (myself included) use external, USB- or thunderbolt-connected drives. Are these as fast?
They are fast, and both the USB and thunderbolt ports are more than fast enough to transfer data to stream a 1080p movie file. In fact, my current Plex server that has been running for over 5 years currently has it's media files located on a USB 3.0 external hard drive. There has never been an issue with streaminig movies from that device.
One quick note about USB 2.0. While this is an older standard, many people use older computers as Plex servers. Some of these systems may pre-date USB 3.0 becoming standard. The transfer speed of USB 2.0 is 480 Mb/s, which is should be more than fast enough. I haven't test streaming from a USB 2.0 device, so I can't comment on the speed.
Thunderbolt ports are faster than USB 3.0, so streaminig from thunderbolt-connected storage device won't be an issue.
When thinking about what hardware you will need to build a Plex Media server, you shouldn't be too concerned with the speed of streaming files from a hard drive. Any modern hard drives, both internal and external, are more than fast enough to stream a 1080p, high-quality movie file. One thing to keep in mind, though, is how much space will you need to store your media files. That is the more important question.