Wiki: Definiteplexguide wiki page

Definite Guide to Plex (on Bytesized)

Table of Contents


All Streamboxes come with the ability to stream your content directly from our servers using the wonderful Plex application. This new paradigm introduces a lot of new techniques and applications that all affect your viewing experience. With this guide I want to run you through all the bolts and pieces that together form the Plex experience.

What is Plex?

Plex is a piece of software comprised of a server application (Plex Media Server) and a client in the form of one of Plex applications.

The Plex Media Server is responsible for identifying/indexing, transcoding and finally streaming your media files to a Plex app. Let's run through these things and tell you how we decided to handle each of those.

Identifying Media

One of the first things that Plex does is trying to figure out what kind of media you have in you collection. It does this by looking at the file and folder information and then looking up the data at one of the Plex Agents. Which agent depends on what kind of library the file was found in. Plex can see the difference between Movies/Series and music. An agent is a site that contains information about a series or movies. It will contain all the episode descriptions, box-art per season or series and sometimes even subtitles. As soon as Plex encounters a new file it will send the information it can deduct to a Agent and see if it can find a match. Every library-type has it's own agents.

How does Bytesized handle this?

We setup Plex with two default libraries, one for Movies and one for TV Shows. We setup the Movies library to watch for files in your media/Movies and TV Shows in media/TV Shows folder. We added one extra layer though to make it easier for Plex to find matches. Every torrent downloaded through Deluge or rTorrent will fire off a scan by an application called Filebot. Filebot will try to do the following things.

  • It will check if the content is compressed and try to uncompress it if that’s the case (You will have to enable this if you want it). Plex can’t read rar-ed files by default, this makes that work because it extracts the content to a path Plex is watching.
  • Next it will try to find the content on one of the known databases thetvdb.com, themoviedb.org etc.
  • Based on what it finds FileBot will now create a shortcut (symlink) to the file in ~/media and rename it in such a way that Plex is likely to identify the content correctly. For instance Friends.S06E03.mkv will be moved and renamed to ~/media/TV Shows/Friends/Seasons 06/Friends.S06E03.mkv or similar.

Because of this little helper Plex has a bigger chance of finding what are you looking for. Although it's still not fool-proof. Sometimes an agent doesn't know the content in question or the filename can be weird enough to not be detected.

Transcoding

What makes Plex so powerful is that it can transform a media file to fit your bandwidth requirements while watching it. This means that if you are watching a 1080p Movie on 3G it will transform the movie on the server to make it small enough so you can watch it. This process is called transcoding. Transcoding happens entirely on pure CPU power and the general rule of thumb is the better the quality of the transcode the more CPU power you need. Transcoding is always optional, if you have the bandwidth, latency and a supported client application you can always stream a movie without transcoding it first for optimal quality. You can learn more about optimizing your experience with Direct Streaming here.. Please note that Bytesized sets up your Plex to always favour fast encodes over higher quality encodes to ensure we don't run out of CPU power.

How does Bytesized handle this?

Transcoding is one of the heaviest tasks a CPU can do so all Streamboxes are employed with at least 24 core servers. In order to prevent one member to use up all these cores at once, for instance by sharing his account with his Facebook friendlist we lock each box and allow access to a variable amount of cores which we call "Plex cores". Six cores is enough to transcode multiple 1080p movies depending on the source quality. This does mean that if you do want to share your Streambox with a lot of others and you try to all stream at the same time you might not be able to stream something without stutter.

Streaming

After starting the transcode it will start sending the data to the Plex app. This is where your bandwidth and closeness to our servers will come in effect. To stream a 1080p movie to your home, depending on quality, you will need to download with an average of 1.4MB/s on a single thread about half of that for a 720p movie. Sadly the advertised connection speed of your internet provider is only a small part of this speed. An advertised speed of 12MBit should in theory be enough to stream it but only if you live in Europe. If you live outside of Europe your latency to our servers will be increased and because of the latency your download speed will go down. If you want to know more about this the principles of the FTP Guide apply here as well.

Usually the rule of thumb is that if you live in Europe you can stream any file you want in any quality, if you live outside of that you are usually tied to transcoding to 720p depending on your ISP. Some members in locations with bad internet will have to transcode to even lower qualities.

How does Bytesized handle this?

The server always has plenty of available bandwidth, we took care of that end. The best thing you can do is try a speedtest before buying a Streambox and based on the speed decide if this would be a good match for you.

You can go here and run the speedtest on the right side, it should give you all kinds of information. Follow the instructions below if you want to manually check the speeds.

  • Download this file and note the speed.
  • If the speed is bigger then 2.5MB/s you can most likely use Direct Streams without transcoding and watch any type of content, but this depends highly on the quality of the file. Some files can go up to peak bitrates of 8MB/s. Transcode to 20Mbit to be safe.
  • If the speed is around 1.5MB/s you should probably transcode to around 10Mbit.
  • If the speed is less then 1MB you will have to transcode to lower qualities 8Mbit and less.

The most important thing to realise is that your ISP total bandwidth has (almost) nothing to do with the speed you will reach to our servers. Yes you can probably stream 1080p 60fps from Youtube, they have a content delivery system that redirects you to a server closest to your connection. Our servers are only in one location and could be far away from you if you are not in Europe.

The servers owned by Bytesized have the ability of rerouting of traffic: If on the right side panel of your box page you have a link that says "Rerouting support", your server supports rerouting. Follow the link and try selecting a different route. The best thing to do here is start a single threaded FTP transfer, observe how fast it's going and then try an other route wait a minute and start an other transfer. Keep going until you found the fastest route.

Reaching your server

Normally Plex is installed on a, local, home network. By default it allows anybody on the same local IP range access to it's server. On a remote and shared server this won't work however. You wan't to be able to reach it from third party networks and you want to prevent other members on the same server to not have access to it. In order to login to your Plex server from other locations Plex has an username/password system in place that they handle from their centralised servers.

How does Bytesized handle this?

We disabled local network access by default so nobody else can touch your Plex server. Next we grant access to the one IP you gave during the Plex installation so you can login to the remote server from your own IP. Once you have done this you can associate the Plex server we host for you with your own Plex account. Once you have done that your IP address no longer matters. As long as you login to your Plex account the server will be accessible for you.

Plugins

Plex has a plugin structure that allows developers to create plugins that can perform all kinds of tasks, from maintenance to automatic content downloading. Plugins come in bundle files that you have to install in your Plex plugin folder to work.

How does Bytesized handle this?

You can install and configure most plugins, although not all will work on Bytesized, but there is no official support for it. Plugins have the tendancy to make Plex more unstable so we would always advise to be careful when installing new plugins.

Plex applications

There are tons of applications that Plex supports officially or unofficially. Please note that not all apps have the same feature set though. Most notable is that some apps don't support direct streaming, which means that even if you bandwidth allows it they will transcode which will result in quality loss.

The official Plex frontpage has an overview of most applications. I want to mention some notable ways of using Plex. For an example of how to install them see this Trakt tutorial

Chromecast

If you have an iOS or Android device in the house then I can highly recommend the Chromecast. It will set you back around 35 USD and turns any device with an HDMI connection into a Plex ready device. You control your TV using the iOS or Android app and stream directly to the Chromecast from within the application.

Raspberry Pi

An other very cheap way to turn a TV in a Plex ready device is the Raspberry Pi using a custom distribution called Rasplex. Rasplex runs the Plex Home Theatre which has more features then streaming it just via the Chromecast. Most notable it supports direct streaming and a full range of digital audio signals (DTS/Dolby) which the Chromecast does not.

XBox one

There is an official Xbox one application available as well. The downside is that it's in the early stages and some people are reporting problems and that it does not support direct streams.

Diagnosing playback problems

Is your Plex playback not smooth then go the following steps.

  1. First determine your single thread speed by doing an FTP transfer to your server.
  2. Setup your transcoding quality within this limit. I.e. if a transfer is going at 800kb/s setup your Plex to transcode to 7Mbit. Is it going at 2.5MB/s set it up at 20Mbit.
  3. If you are not near the servers make sure direct-stream and direct-play are off as this bypasses transcoding.
  4. Use Plex Home Theater for playback and press 'i' to view your stats. Is your cache still running empty then select a lower transcoding quality.
  5. If nothing works raise a ticket and supply the following details
    • A screenshot of the buffer status in step 4.
    • Specify which Plex client you are using and which transcode quality
    • Your single threaded FTP speed
    • Your IP so we can traceroute
    • If this was during or off-peak hours.

Last Author Contributors Versions Last update
Maran Marin, cooldudefx, kd0t, Alchemist, woodhouse 28 Tue, 14 Feb 2017 14:48:24 +0100