Here are 5 common myths about Plex, these myths are mostly about Plex Pass and streaming, so, let’s debunk some Plex Myth….
Plex Myth 1. You need Plex Pass in order to stream remotely.
You can access your server remotely (outside your local network) for free. You just need to go to your server
Settings > Server > Remote Access > Enable Remote Access. Sometimes it doesn’t work because:
- You have not assigned a static IP address for the server machine (read more about what a static IP is here)
- You have not allowed Plex through your machine’s firewall.
- You have not claimed your server by signing into your Plex.tv account.
- You have not forwarded a port in your router and/or UPnP is disabled or failing. These are the Plex Ports
- UDP: 1900 (for access to the Plex DLNA Server)
- TCP: 3005 (for controlling Plex Home Theater via Plex Companion)
- UDP: 5353 (for older Bonjour/Avahi network discovery)
- TCP: 8324 (for controlling Plex for Roku via Plex Companion)
- UDP: 32410, 32412, 32413, 32414 (for current GDM network discovery)
- TCP: 32469 (for access to the Plex DLNA Server)
You can connect to your Plex Server by typing the static IP, followed by :port
Plex Myth 2. Plex will not transcode if the streaming quality is set to “Original”.
*transcode = re-encoding file to another file format
The streaming quality setting only determines the target resolution and bitrate the server should use for the stream. Therefore, selecting “Original” quality just tells the Plex server to use the file’s original resolution and bitrate. Compatibility of the file with your client will still cause it to direct play, direct stream, or transcode (see Plex Myth 3). This when you are streaming from your home network, or routing through the internet.
Changing the streaming quality to a lower value will always result in transcoding. This can be used to reduce the bit rate of the stream due to limited available bandwidth, recommended if you have slow internet (see Plex Myth 5).
Plex Myth 3. Plex only support certain file formats.
Plex can play nearly any media file you throw at it (except disk-image formats, like video_ts, iso or img), and will convert it on-the-fly if required. A media file typically consists of three parts: a video stream, an audio stream, and a container that holds it all together. The video and audio streams can be encoded using various codecs. Some examples include:
- Containers: mp4, mkv, avi, m4v, etc.
- Video Codecs: H.264/x264/AVC, H.265/x265/HEVC, WMV, VC-1, mp4, etc.
- Audio Codecs: AAC, AC3, DTS, DCA, mp3, vorbis, WMA, FLAC, etc.
The most important part is figuring out the codecs supported by your Plex client (the app/device you are using to watch your media). Of course there are many other factors to consider as well: resolution, bitrate, framerate, encoding level, network bandwidth, etc. Depending on these factors, your media will either direct play, direct stream, or transcode. (Note subtitles are not mentioned here, see the link for more details.)
- Direct Play: The client supports the container, video stream, and audio stream natively. The Plex server just sends the media file as-is to the client. This uses very little CPU power.
- Direct Stream: The client supports the video stream and audio stream, but not the container. The Plex server remuxes (changes container format) the file before sending it to the client (copies the video stream and audio stream into a compatible container). This uses very little CPU power.
- Transcode: The client does not support the video stream and/or the audio stream. The Plex server re-encodes the video, audio, or both into a compatible format. Transcoding video uses a lot of CPU power, but transcoding audio uses little to moderate CPU power.
The Plex client determines if transcoding is required by the server, (unless you have enabled bandwidth limits on your server). If you have a weak CPU, then you may want to store your media in format that is compatible with your clients in order to reduce transcoding. The most widely supported format that will direct play on most clients is:
- Container: mp4
- Resolution: 1920×1080 or lower
- Video Codec: H.264 (level 4.0 or lower)
- Video Framerate: 30fps
- Video Bit Depth: 8
- Audio Codec: AAC
- Audio Channels: 2
- Bitrate: 20Mbps or lower
Plex Myth 4. Your stream will not stutter as long as your bandwidth is greater than or equal to the bitrate of the file.
The bitrate that you see for most files is the average bitrate for the entire file. Bitrate is much data is stored in the file, in this case, it is how many bits in one second of the file. For variable bitrate files, the actual bitrate can drop down very low for scenes with fewer details or no movement (due to compression, and how a high bitrate isn’t necessary where there are little differences in the scene), but it can also spike up to several times the average for fast action scenes. These high bitrate scenes will cause your stream to stutter if you do not have sufficient bandwidth. You can read more about how Plex analyzes your bitrates here. This also does not account for other things using the connection such as downloading, games, etc., or the ability for the client to buffer ahead to prevent stuttering.
Note: Media files can also be encoded using constant bitrate, which can make streaming smoother.
In addition, if you are streaming remotely, an online speedtest does not necessarily mean you are getting that speed between you and your Plex server. The best way to test the real-world speed between your remote client and server is to transfer a large file and monitor the transfer speed, or just testing your internet speed can give a general idea (see here).
Plex Myth 5: You do not need a powerful server because the Plex clients can transcode.
Transcoding is always done by the server, and requires a decently powerful CPU. You should have a 2000 passmark score for each 1080p stream and 1500 passmark score for each 720p stream. You can find your CPU’s passmark score here. The Plex client determines if transcoding is required by the server, (unless you have enabled bandwidth limits on your server). Plex clients do not need a very powerful CPU as they only need to receive the (transcoded) stream from the server.
Note: Transcoding H.265/HEVC and 4k content requires significantly more CPU power than the rule of thumb above.
Note: A powerful CPU on the server is not required if your clients can direct play/direct stream your media (see Plex Myth 3).
This is why running using a Raspberry Pi as a Plex server can result in very poor performance, as the CPU is not powerful enough to do any transcoding. However, using the Raspberry Pi as a cheap, and very low power client with RasPlex, will work great. Rasplex also supports a wide range of file formats, so your server will do less transcoding (see Plex Myth 4).