Don't lock up your movie collection on your server's hard drive — watch it on your phone, tablet or TV.
Right now, home entertainment is pretty much driven by the idea of media streaming — watching movies or playing music that originate from another drive on your wired or wireless network. But when you get down to practicalities, media streaming is a pretty confused area of computing that means different things to different people.
Let's say you use Windows Media Player (WMP) to play a .WMV file from a networked drive located on another computer — is that media streaming or just file serving? What about an app that transcodes a DVD ISO image into H.264/MP4 format on the fly and sends it to your iPad? Technically, they're both forms of media streaming, but it's pretty clear the terminology is about as vague as 'computer' is in describing a desktop PC and a Raspberry Pi. Bottom line, we need something more precise.
Passive and active streaming
In the field of electronics, we talk about 'passive' and 'active' components, where active components (ICs, transistors) manipulate an electric current via a control signal, while passive components (capacitors, resistors) simply modify an existing current. I reckon it's a pretty good description of what's going on in media streaming too — 'passive streaming' is basically just file serving the original video file across a network, whereas active streaming involves some form of transcoding before the data is sent to the receiving device. It might sound nitpicky, but it's important to know the difference because depending on the device you want to stream your media to, you might need one or the other. For example, passive streaming is an easy choice when you have a playback device that can handle any audio/video codec under the sun. But throw an iPad into the mix (which effectively just handles H.264 video and AAC audio) and passive streaming doesn't cut it, especially if you have your DVD movies stored as MPEG-2-based ISO images or you're trying to play .FLV files.
Live and progressive streaming
Frankly, it's surprising that iOS offers so little in the way of out-of-the-box media streaming, because it actually comes with a brilliant Apple-designed technology called HTTP Live Streaming (HLS), which basically uses little more than HTTP to stream audio and video over a network. In fact, apps like Air Video, Emit and others rely on it. Briefly, HLS works a little bit like digital TV, using the MPEG-2 Transport Stream (MPEG-TS) file system and breaking the video up into small bite-size chunks. That makes it a definite example of 'active streaming'.
The problem with active streaming, though, is that you need plenty of CPU horsepower to transcode the video into the format, frame size and bit rate you need on the fly. Passive streaming requires far less horsepower, but you need to have the video in the right format to begin with. You'll also find some devices need to download the complete video file before they'll start playing it. If it's a two-hour/2GB movie, you could be in for a wait. But that's where a compromise option called 'progressive streaming' comes in and the MP4 file container supports it. In a nutshell, progressive streaming allows for almost-immediate playback while the video is being 'progressively' downloaded in the background. It's supported by iOS and Android devices, but you still have to have the space on the device to download the video and not all .MP4 files work unless they've been specially prepared.
To give you a better handle on all this, next week we'll be looking at three different options — active streaming to an iPad, passive streaming to an Android tablet and active streaming to a DLNA device. So, watch this space.