Plex blog

Coming Attractions (the last one)

03.15.11 41 Comments

First of all, the winner of the pet monkey from the last post is Dean M, who was the first to name the movie. Very nicely done, sir.

So there is this tab on the iOS application that has been blacked out (or “red-ed out” to be more precise about it) in previous posts.

IOS Simulator  iPhone  iOS 4 3  8F190 12

Unfortunately, in a true comedy of errors, I did a horrible job of keeping it a secret. In the first post, I left some images on the server that didn’t have the button blocked out, and one clever person found it by typing in URLs. He was kind enough to send me an email about it to let me know, and I removed the images (thanks, Charles!).

Last night I was so tired when writing the blog post that I left the button completely unobscured in not one but TWO separate images. Twenty two comments poured in mentioning this fact (which I left unapproved, of course).

So just in case there’s anybody out there who doesn’t yet know, the feature which we’ve been trying to keep secret is this:

IOS Simulator  iPad  iOS 4 3  8F190

Yep, that’s it. Search. It’s a really boring feature, actually, we have been trying to replace it with something much cooler over the last few days, but we ran out of time.

Or did we?

This is not your grandmother’s search. This is an ass-kicking, search-as-you-type, tri-winning sort of a search. Forget tiger blood, this is pure 100% velociraptor blood.

IOS Simulator  iPad  iOS 4 3  8F190 12

So where are these results coming from? Well, it searches the Plex Media Server you’re connected to, obviously. But we went a step further, and made it search all Plex Media Servers in your house. And really, why stop there? We also made it return results from online sites as well. Through the magic of our friends at VideoSurf, it returns results from YouTube and Vimeo.

IOS Simulator  iPad  iOS 4 3  8F190 14

The search functionality is extremely pluggable, so you’ll see new providers come online very shortly, as well as the ability to add your own custom providers, should you so choose.

But really, why stop at the mobile apps? Why not extend the feature to the desktop client as well? Excellent question.

Plex 6

Plex 7

So there you have it. Plex now has a rich (and fun!) universal search feature, which searches all the local media in your house, and online media, in one unified interface. You can search from either your mobile device, or the comfort of your couch.

Pretty cool, right?

Coming Attractions (part 5)

03.14.11 99 Comments

As most of you know, at the core of the Plex Media Server sits a powerful transcoding engine. Its raison d’être is to make your media available on the widest range of clients possible, over any connection. A 1080p MKV file, for example, is impossible to play on a tiny little Archos media player, because of hardware limitations. The Plex Media Server’s transcoder makes it possible to stream such a file to that device by performing a real-time conversion. On iOS devices, their limited support for alternative formats (such as MKV or AVI) also make conversion a must. Additionally, if you’re trying to play media over a low bandwidth link, such as a 3G network, even if you have a file with the right format and codecs, it would likely not stream correctly because of the limited bandwidth.

To summarize, the transcoder gets you your media, streamed in real time, regardless of what the player device is or what the speed of the connection is to the server.

There are two downsides to transcoding. First of all, it can take quite a bit of CPU on the server machine. Second of all, transcoding implies a decode and then a subsequent re-encode of the media, which is a lossy transformation, meaning the video quality will be degraded (although usually not perceptibly at higher qualities).

I’m quite pleased to say we’ve addressed both of these issues in this release.

First of all, we’ve introduced a feature we call DIrect Play, and here’s how it works: During the media analysis phase, the Plex Media Server looks at certain attributes of your media (resolution, bitrate, etc.). When a client requests a piece of media, the server looks at the client’s capabilities, compares them to the media parameters, and makes a determination as to whether or not the file can be directly played on the device. For example, if you have a properly prepared MP4 file, it’ll play without any transcoding on an iOS device. Tiny CPU usage, and no loss in quality. If you had a movie in MKV format and also encoded it for mobile devices (and both versions scanned into your library), the media server is smart enough to mark the specific version of the file as playable by the device.

This is all well and fine, but the media might not be in the right format in the first place, and encoding multiple versions of a file is a pain. For this reason, we’ve introduced a feature called Direct Streaming, As you might know, the current standard for web video is H.264 (regardless of how Google tries to undermine it); this codec happens to be the most common inside an MKV file, and also the most commonly supported on mobile devices. Android and iOS devices support decoding H.264 in hardware directly.

What you might not know is that the iOS devices (especially the latest generation, including the ATV2) have incredibly powerful little chips inside them for decoding video. Even though the specs say they are capable of 720p, it turns out that they do a good job with a lot of 1080p content as well. So when a client connects to the Plex Media Server, it describes its capabilities, and if the file falls within the acceptable range, the video is simply copied over to the new format (a process known as re-muxing). This again means that there is very little CPU used on the server side, and no loss in quality in the video. Streams start up nearly instantly, and seek quickly. All of this without the need to jailbreak, or use any private APIs.

Having the transcoder and these two new technologies, along with a set of heuristics built into the Plex Media Server, means that we are in a position to optimally deliver your media to all your devices: If you’re on a powerful enough client, with a high enough bandwidth connection, the media can be Direct Streamed over. On a lower bandwidth link, or on less powerful devices, full transcoding kicks in. (By the way, both of these features work with online media as well.)

I’ll leave you with this set of two screenshots, showing a 1080p movie, playing with Direct Streaming on an iPad. I can’t show you in a screenshot, but it started playing almost instantly. First one to name the movie in the comments gets a pet monkey.

Skitched 20110314 002316

IOS Simulator  iPad  iOS 4 3  8F190 11

Finally, we’ve added some additional quality settings, both for use in transcoding, and for help in determining whether or not Direct Streaming is applicable; for example, if you set the quality to 320kbps (a bad Wi-Fi link), it won’t try to Direct Stream a movie that’s 5Mbps.

Skitched 20110314 092350

To summarize these new features in a sentence: Your media is optimally and effortlessly available on a wide range of client devices, over any connection.