The differences between Plex and XBMC

Ryan, one of the editors for Ars Technica, recently asked me why one might choose XBMC over Plex, when using a Mac.  This is a valid question, though one most devs for both programs will probably try to side step for fear of upsetting the other group.

As such, I’m going to take the coward’s way out and talk about the differences between the two (from an obviously pro-XBMC standpoint). You are then welcome to make your own decisions. Note: As a project manager for XBMC, I am clearly a biased source and my knowledge of the inner workings of Plex is incomplete at best. Feel free to call me on something if I get it wrong.

Some Quick History

In 2008 (about a month before I came onboard), the Plex and XBMC dev communities split. Because neither group likes to talk about it, I’ve only managed to gather an understanding of the situation from bits and pieces of public dialog, but the gist of the situation seems to be twofold.

First, Team XBMC has what they call XBMC-trunk from which all XBMC platforms derive. The goal is, wherever possible, to always keep functionality the same across OSes. This way, the skin or addon that works on Linux is the same skin or addon that works on Windows or OSX or iOS, and vice versa. Only occasionally (for example, when the Netflix addon requires Silverlight and therefore can’t work in Linux) is any kind of branching allowed. A recent benefit of this approach has been the inclusion of Dirty Region rendering, which, because it has been designed from the outset to be available across platforms, should reduce CPU and GPU usage regardless of OS.

The Plex devs didn’t care for this approach, preferring instead to totally separate XBMC for OSX development.

Secondly, the GPL only requires that open source software be open at the time of release. XBMC devs tended to prefer totally open development, in which the code was opened at the moment it was written down. Plex devs preferred to keep code closed until time of release (or, occasionally, shortly thereafter).

Both of these differences caused a great deal of frustration for the different dev groups. Eventually, there was a vote among developers whether to give the Plex devs the boot. While the team voted to keep the Plex devs on board, the Plex devs themselves decided to go their separate ways.

That’s all old news easily gathered from public forums either on the Plex or XBMC boards.  I mention it only to give the reader a bit of background on current differences.

Current Differences

At this point, Plex and XBMC are pretty distinct creatures, for all that they look similar. Let’s go through the various software differences point by point.

  • Open Source

XBMC remains, to this day, wholly open source. Every aspect and every version is entirely open source software. This includes XBMC for iOS, OSX, Windows, and Linux. This includes the database, the player, the decoder, the official Android remote app, and anything else you care to name.

Plex is, at this point, mostly closed source. While the player remains open, the Plex Media Server (i.e. the brains of Plex) is closed. As the Plex Player is totally dependent on the PMS, this means that you cannot build a working copy of Plex without installing proprietary software.  At the risk of coming off as an uneducated jerk, it appears that Plex for iOS is also closed, given that the Wiki doesn’t make any indication of its being open, it costs $5, and I am unable to find it on Github.

Whether a person cares about this distinction is, of course, questionable. Team Plex obviously benefits from closing some of its software and can theoretically earn an income as a result of its decision to go proprietary. Meanwhile, XBMC benefits from near constant development both internally and externally from dozens of non-team members who have access to the code whenever they want it. Generally, this means that more total man hours are spent working on XBMC code and the resulting base is theoretically more robust. In addition, new talent is constantly being added to the XBMC Team with next to no education time required, because XBMC Team developers started out as XBMC Non-Team Developers.

However, this advantage is potentially tempered, as shall be seen.

  • Platform Support

As everyone knows, Plex Media Server (without which Plex Player is useless) is available on OSX and, to a slightly more limited extent, on Windows.* XBMC is available on every major platform.  This is both good and bad news for XBMC users.

*I was recently contacted by the Plex Team to update my knowledge of their platform. Through the remainder of this comparison, I’ll be updating my post with more recent facts. In this case, it appears PMS is now available on Linux and various types of server software, including unRAID.

On the plus side, this platform independence means an XBMC user can install XBMC on any and every computer in their house. Every htpc throughout the house gets to have a uniform look, no hacking required. Users can install XBMC on a big honking monster, on their Apple machine, on their Apple TV, and on their ION nettop. And every single install can look and act the same.  Plex users, meanwhile, to keep a high WAF rating, must use Apple products exclusively around the house, if they want to keep the same look throughout the house.* Additionally, if they have 2 Apple TVs running Plex and both are attempting to play a 1080p video file, their single server is going to need to be a beast** to accommodate all the necessary transcoding, as the Plex release for the 2nd Gen Apple TV cannot natively decode 1080p video.

*The Plex thin client is now also available on specific LG and Samsung tvs and bluray players, along with the Roku player. While the look isn’t always exactly the same across platforms due to hardware limitations, they do, obviously, have access to the same Media Server.

**It appears, for most 1080p content, Plex does not actually transcode to the AppleTV. Instead, the Server remuxes to a container that the ATV will recognize. This should be a less CPU intensive process than transcoding, at least for the ATV. One assumes the same is true for the other iOS devices.

Unfortunately, supporting this many different platforms means that it should takeabout 4 times as many developers to keep XBMC going as it does to keep Plex going. As I am not privy to the size of the Plex team, I have no real idea if XBMC really does have that many more devs. Still, with well over 30 or 40 active devs at any one time, XBMC does appear to have a pretty energetic developer base.

  • Elan vs Davilla and Jonathan

I’m probably going to mostly leave this one alone. Elan is the lead developer at Plex. Jonathan Marshall is the lead developer of XBMC and Scott Davilla is the lead developer of XBMC for OSX and iOS. Which developer you feel more comfortable leading your software development is almost certainly a matter of opinion. For my money, I’d probably take Davilla, if only because he figured out how to get XBMC on iOS (and the Apple TV 2) months before anyone else.  Then again, I’m pretty biased, and my opinion probably isn’t worth too much.

  • The Media Server

There’s no way to get around the fact that Plex Media Server is better than anything XBMC has to offer in the server category, because XBMC has nothing to offer in the server category.  XBMC does not offer the ability to transcode for weaker devices. It does not offer a thin client. Every version of XBMC is a fullblown version of XBMC.  For now, that is simply a drastically superior advantage of Plex over XBMC.

Whether that will be an advantage in 1 to 3 years remains to be seen. Today, XBMC for the iPad 2 can play just about every file the team has managed to throw at it. Over the coming months and years, tiny little chips will, more and more, be cheap enough and simple enough to make the need for thin clients a thing of the past, to the point that the only value of a server will be in maintaining a consistent library of watched and unwatched material across devices.

Still, for now and for the foreseeable future, Plex has a leg up on XBMC in this regard.

  • The 10 foot interface

When Plex introduced the their PMS, they provided something that XBMC has not and still does not provide: a 2 foot interface. To add plugins, skins, and content to XBMC, you have to use the 10 foot interface designed around a remote control. To add content to Plex, you use the 2 foot interface designed around a mouse.

Which of these interfaces is better is, once again, a matter of opinion.

  • OSX specific visible differences

To be totally honest, there aren’t many. While XBMC appears to have a more active skin development base, many of the most popular skins on XBMC have found their way over to Plex. Likewise, while Plex appears to have a more active app development base, many of the more popular Plex apps have been ported to XBMC.  Plex has a built in “App Store.”  XBMC has a built in “Addon Repository.”  Both do the same thing. Occasionally XBMC will not include a streaming addon that Plex includes, because XBMC mildly fears potential lawsuits, but most of those addons can be found and added via the bluecop repository found here.

Both Plex and XBMC for OSX use FFMPEG to perform software decoding, and both can theoretically use GPU decoding. 

Perhaps a key visible difference lies in the install process. Plex installs two programs, one of which is an always running service. XBMC installs a single program that shuts down when one closes out of XBMC.

  • OSX specific invisible differences

Most under-the-hood differences between the two programs have been spelled out. “Plex” is actually two programs, while XBMC is one. Plex is heavily closed source, while the entirety of XBMC is licensed under the GPL. Plex can act as a video server for thin clients while XBMC cannot.


The question posed to me was a simple one. Why choose XBMC over Plex? As always though, the answer to a simple question is rarely simple itself. Choose XBMC because you support wholly open development. Choose XBMC because it has a more active development base. Choose XBMC because it can run on the Mac Mini in your living room, the Apple TV in your bedroom, and the Linux-based XBMC Live HTPC in your man cave, and every version can have the same look and functionality.  

Or don’t. Choose Plex because you like the idea of an always-on Media Server. Choose Plex because TVTunes is built-in, rather than a downloadable addon. Choose Plex because you have no need for anything but Apple machines and you prefer their selection of apps.

But at the very least, I’d ask that you not ignore the more open software in favor of the more closed software, when the difference between the two, from a non-technical user perspective, is almost entirely invisible.*

*Team Plex is of the opinion that the difference is rather visible, when you are using more than one client off a single server. As far as I can tell, for a non-technical user, in the proposed case, there should be only two notable differences. First, the watched status should be the same between machines. For some this may be an advantage. For others, it may not be. Second, one need only install a Plex app once, rather than twice for the XBMC addon, when using two clients. I suppose XBMC also requires you to add your local library more than once, but I somewhat wouldn’t expect non-technical users to be doing that in the first place, and after the first time, the updates become automatic.  In the end, I suppose these difference, like all the others, are a matter of personal choice.


Note: The opinions in this piece are entirely those of the author and should not be attributed to Team XBMC or the XBMC Foundation.*

*Excluding the opinion that XBMC totally rocks.