13 Aug 2013

The Media Streamer I'd Like

The Chromecast has reignited discussion on what a media device needs to have, whether Chromecast, Apple TV or Roku. This set me thinking about what kind of media device I’d like. (But first, I need to disclose that I work for Google, though not on Chromecast or anything related to it, like Chrome / Chrome OS, Android, Google TV, YouTube, etc.)


First, no one knows what the right interface for a media device should be — traditional hardware remote? Smartphone or tablet? Gestures? Voice? If I knew, I’d be building one rather than writing about it. But going by what works today, it seems that we need both a traditional remote control and a smartphone or tablet, because both are good for different things. A traditional hardware remote works best for controls like volume, play, pause, rewind and fast forward, previous and next item, power off, etc. You don’t need to find your phone, unlock it, enter a PIN, find the relevant app and end up getting distracted by email or Facebook, or have your phone run out of battery and preventing you from watching TV. Besides, on a hardware remote, you can press buttons while keeping your eyes on the TV. We need hardware remotes for the same reason we need hardware keyboards on laptops.


On the other hand, a touch device like a tablet works best for interactive features, search, navigation, advanced functions like recording and in general an open-ended set of features enabled by apps. You don’t want to drag everything down to the least common denominator. For example, a sports channel may let you switch camera angles. A weather channel may use your location to show you local weather. A news channel may let readers pose questions to a public figure being interviewed. And so on. You don’t want to drag everything down to the play/pause least common denominator. And apps on a media device require a touch interface, for the same reason apps on a phone require a touch interface rather than a feature phone.


So we need both a hardware remote and a smartphone or tablet interface [1].


Then, a media device needs to work with both local and cloud content. This means streaming from YouTube and other cloud services, with a robust third-party app ecosystem, but also mirroring of tabs, windows, apps and the whole screen, and being able to play stuff from network shares, USB hard disks and SD cards. SD cards may work great when you return from vacation and want to show your photos to your family or friends.


And local files need to work irrespective of the file format. Nobody wants to spend their time converting files from one format to another — we all have better things to do. Limited format support is fine on phones and tablets because they are battery-powered, and to maximize battery life, you want video to be decoded in hardware, which supports very few file formats. You don’t want a tablet with an Intel Core CPU and a two-hour battery life. But on a device that’s powered by mains power, just use a CPU powerful enough to be able to decode 1080p in software, so that we can support all file formats — H265, H264, FLV, AVI, MPG, WMV, M2TS, TS, ISO, MOV, VOB… [2] [3] This will probably be a low-end laptop-class CPU, like a cheap dual-core Core i3. Unlike on a phone or tablet, there’s no excuse for incomplete format support on a media device, since there’s no power usage limitation.


A powerful CPU means that a media device must be a few inches bigger than the ChromeCast, to dissipate heat. And it can’t be powered by USB. But that’s not a big deal for a device that you don’t carry with you, unlike a laptop, tablet or phone. It can be a few inches bigger and no one will care. And if you’re going to plug it into USB power, you might just as well plug it into mains power instead.


Then, I’d like support for 4k video at 72fps, but since most TVs are only 1080p at 60fps, I guess that’s an acceptable compromise.


In fact, I’d want my media device to double up as a desktop PC. After all, it already has most of the required components — a powerful CPU, more powerful than phones and tablets, a GPU to decode video, support for 1080p displays, WiFi, USB to connect hard discs… So a media device is practically already a PC. It just needs to support a Thunderbolt or DisplayPort out in addition to HDMI [5], and support USB and Bluetooth keyboards, trackpads and mice. But with these minor additions, it would be an affordable PC. Some fraction of media device customers would opt for a device that can also work as a PC, if it costs only a little more, like $50 more. Imagine buying a PC for $50! Considering that only one billion or so of the seven billion people on the planet have a PC, this could be a big deal. Even if you already have a PC, you probably wouldn’t mind it if something you’re buying anyway (a media device) can do more than you were looking for, as long as the extra functionality comes for a low price, like $50 rather than $300, and it doesn’t clutter up the user experience when you’re not using it or when you don’t care about it.


A PC requires apps, but web apps would be fine as a starting point. In other words, if a media device also worked as a Chromebox, that would already be a huge step forward for a media device.


Or we could use a lightweight OS that supports native apps, like Android, iOS or Windows Phone 8. Yes, these OSs are currently designed for phones and tablets, but they can (and should) be modified to support other interaction models. And, in fact, Apple TV already runs iOS. Adding apps is not a big deal. Yes, it’s a major undertaking, and needs to be done carefully, but there’s no fundamental obstacle to doing it. Or we could even use a more powerful OS like Windows 8. No matter the OS, we’ll have native apps. Or, like I said, we could eschew native apps and go with web apps for now. Even that would result in a far more powerful device than the existing media devices.


 


[1] You could, in theory, run the app on the media device and use your tablet or phone just as a remote touchscreen, but what’s the point? Phone and tablet apps are here, they work, and are widely adopted.


[2] You can alternatively support all file formats by transcoding other formats to H264 on your PC and streaming the H264 to the media device, but that kills quality and most devices, even Core i7 laptops, can’t encode 1080p in real-time at 60fps, to say nothing of phones, tablets and ARM- or Atom-powered laptops. Even if your laptop could handle the job, it will drain its battery quickly, and make a lot of noise as its fans spin up to full speed.


[3] The GPU can still handle what it can, and the CPU can handle the rest.


[4] Apparently, 60 fps is not enough for a realistic experience, and 72 is better.


[5] It can support both outputs at once, so that you can use it simultaneously as both a PC and a media device, or it may not, to cut cost.

No comments:

Post a Comment