The Chromecast tangents what a number of existing products in the MediaStreamer sphere offers. Mirroring your device’s display onto a TV or controlling an external media player from some other device such as a cell phone, tablet or computer. Compared to the competition, it’s definitely cheaper ($35 in the US) and manages to be both simpler and more complex at the same time. Simpler in the context of being a tiny HDMI-stick whose operating system, embedded applications or general setup is more or less abstracted and hidden away from the user. But the programming model opens up a lot of interesting uses for it, once the SDK is finalized in an extremely user-friendly way. Sure, a typical Android-on-a-stick device or a Raspberry Pi can be customized to do whatever you want it to do, but it may not be very accessible to the general public. An Apple TV is more powerful and a very capable device in its own right, but it’s rather “locked down” and as far as I know you can’t develop your own applications without “jairbreaking” it. Well, you can’t launch custom applications for the Chromecast either without going through the whitelisting process, but at least anyone can apply for whitelisting their device for development and perhaps later on get Google’s approval for a global whitelisting.
Technically, the Chromecast unit is an HDMI-stick with integrated CPU, GPU, RAM and WiFi. It probably runs some kind of Chrome OS / Android hybrid as operating system, but some sources (read hackers) claim that it does not have a Dalvik and thus cannot run any Android applications. This sets it apart from traditional Android-on-a-stick devices such as the Rikomagic.
On the broader perspective, there’s a few variants on how different media streamers and media playing devices consumes online video streams, performs device screen mirroring or plays back locally stored media.
- Mirroring. Simply, the sending device encodes a video stream of the frame buffer and sends it over the network to the receiving device. Apple’s AirPlay uses this technique rather successfully and a newcomer using this solution is Miracast. However, Miracast isn’t widely adopted yet and seems to suffer from some technical issues for certain users. The downside of mirroring is that it requires the sending platform to be somewhat powerful in order to manage to continuously encode the frame buffer into a video stream and send it over the network.
- Many modern TV:s as well as devices such as the AppleTV has offical “apps” that serves media from some online streaming service such as NetFlix and HBO.
- XBMC / Plex uses DLNA and related technologies to discover and playback media stored on the local network, as well as sometimes offering “apps” to consume 3rd party streaming services. Often, they can also send a media stream over to another device for playback as well. However, at least DLNA relies on that the device performing the playback actually has the appropriate decoders and performance to actually decode the raw stream provided over the network.
Chromecast supports mirroring of Chrome-tabs from PC/Mac using VP8-encoding of video and WebRTC. However, the main use of the Chromecast is to load 3rd-party trusted HTML5 apps from the Internet and then control those from your Android/iOS/Chrome device.