Saturday, July 27, 2013

Google Chromecast


So after reviewing the very high end MED600X3D media streamer that specializes in local media lets take a look at the opposite end of the spectrum.  The google chromecast is dirt cheap at $35 (amazon).  I ordered it pretty early so I was able to get in on the free 3 months of netflix (which works with existing subscribers too) before that offer ran out.  Since I already pay $8/month for netflix this represents a $24 value which brings down the actual price of the chromecast to just $11.  That's cheaper than a lunch so I decided to give it a try and found some surprising uses for this little device.

I could not get the device to power off of hdmi even on my new vizio m801d (in hdmi port 4).  It works fine using the usb cable and plugging that into one of the TV usb ports.  It's tiny but it does get pretty hot to the touch after a bit of use.  It does come with an 850mA usb power adapter.  It does support 802.11n but only on the 2.4ghz band.  It doesn't see my 5ghz ssid.  Start up time is less than 5 sec.

Setup has a few interesting requirements.  You see, the chromecast doesn't have any sort of remote or even a UI for changing settings.  Everything has to be setup from some other controlling device.  Right now that means a pc or mac with wifi (so most likely a laptop of some sort) or an android device.  You cannot do initial setup with an ios device.  You must have a laptop or an android device.  The reason is you have to either install a windows/mac application or an android application by visiting:
If you go there on an android device it takes you to the google play store to install the chromecast app which basically does the same thing as the windows/mac app.

Hitting the setup url on my iPhone 5 will show the above.  It seems like a chromecast iOS app for setup is coming soon.  The reason you need a compatible wifi device for setup is it creates a little temporary ad hoc wifi network to the chromecast.  Then, you can pick your router ssid and enter the wpa2 password.  Once the chromecast is on your wireless lan then any device on your lan can cast to it including wired desktops running the chrome browser and the google cast plugin.  

Given the size and portability of the device I figure it might be a nice thing for travel.  Once you move it to a new location you will have to go through the entire setup process again so you can get it on another router ssid and password (I need to test once I get home to see if it remembers multiple wireless configurations.  UPDATE: It only stores ONE set of wifi information.  This means every time you change wireless networks you must go through the setup process again.  That's a bit inconvenient.).  So again make sure you have a laptop or an android device with you until they release the iOS app.  It's working fine right now at my parents house after setting it up again. 

While on this screen the background image changes over time, the ready to cast text will disappear, and the arogan chromecast text status and time block will move a little.  This is probably to prevent image retention on plasma displays.

Native apps (Google Cast API/HTML5) vs Mirroring (WebRTC):
Chromecast seems to work in two different modes.  It has a few native apps like netflix, youtube, google music, and movies (running on a slimed down version of chromeos).  The only way these apps get started is by using some compatible app on a mobile device or compatible website (like youtube or netflix)  that is going to be controlling the chromecast.  In this mode your mobile device (or website) acts only as a remote control.  Once you start playing some media you can turn off your phone and it will continue to play on the TV.  This is great since you use very little battery life except when you want to control the video in some way.  To get native app casting working from desktop chrome browser on the youtube or netflix site look at the bottom right corner of the video window for the usual casting icon (vs the extension icon in the upper right of the browser which is for mirroring).  If you don't see it check and see if you are running a script blocking extension like NotScript and make sure you allow the google cast extension.  Netflix quality and youtube quality is excellent.  Pictured above is an episode of Heroes (it's a good test b/c I know it is in 5.1) running at full 1080p and dolby digital+ 5.1.  I moved the chromecast and hooked it directly to the receiver for this test.  I had issues though when I hooked it through a monoprice 2X4 hdmi matrix switch.  It's a little older switch but fully supports 3D so I'm not sure what the issue was.  Just be warned that there might be some compatibility problems with certain hdmi switches.  Either way it worked fine once I hooked it up directly to the receiver.  The little hdmi dongle extension they include is really short and only a couple of inches long.  I might have to pick up a few hdmi extension cables from monoprice.  Youtube also looks great but is only 2 channel pcm audio.  Both worked fine from my iPhone using the native netflix and youtube apps.  I briefly tried out my hp touchpad running cyanogenmod 9 (android 4.0.4).  I had problems using it to do setup and couldn't connect to the chromecast to get it setup on the local wifi.  But once it was on the local wifi (using my macbook pro) the app seemed to work fine.  This might just be a quirk with the wifi in cyanogenmod on the hp touchpad.  Netflix and youtube worked fine.  When I tried the music app it gave me an error about not allowing side loaded content to be casted.  WTF????  So yeah those 20,000 songs they give you to upload to google music won't stream at all to the chromecast.  That's pretty lame.  UPDATE: My bad.  Apparently the song I was trying to play was local only to the tablet and not uploaded into the google music cloud (which wasn't readily apparent).  Once I picked a song that was actually in the cloud it played back just fine.  It even displays the cover art which moves around over time to prevent burn in.  Overall, a nice music experience if you use google music (though I still prefer subsonic).  They really need to improve that error message though.  This space can get very interesting as more native apps get added.  Performance is great and basically has no impact on your mobile device's battery life.

Now this is what I was more interested in.  In the full regular desktop chrome web browser (pc or mac) with the google cast extension installed you can mirror any tab (apparently the chromebook pixel is supported too).  It's a true mirror and works with all websites including flash based ones like hulu and gametrailers.  As you scroll around and navigate on that tab your TV mirrors those actions.  The cool part is you can work on a different tab at the same time as another tab is mirrored.  If you sleep your laptop then of course casting stops.  Full screen hulu looks pretty good and fills the TV nicely.  Amazon prime instant video works well too.  Quality isn't bad once you set the extension to extreme bitrate.  Framerate never seems completely smooth to me though with some micro hitching going on.  You don't see any of these issues with the native apps.  At least it works and is probably good enough for most people.  Another neat thing you can do is cast your entire desktop.  It works ok but the quality seems a bit worse and there is no audio.  That's one of the neat things how casting a tab works.  It automatically mutes your audio on your pc while it is casting and restores it once you stop.  I could NOT find a way to do any kind of mirroring with the  mobile chrome web browser on ios or android.  I hope this feature gets added soon.  Text is quite legible.

Local media isn't directly supported but there are a few work arounds.  First you can just drag and drop media directly into a chrome tab and start playing it.  I tried mp4 and mp3 files which worked pretty well.  MKV would play but without audio.  Once it's starts playing you can just cast that tab and voila you are now casting local media.  Quality is average and even worse it doesn't full screen properly.  It looks full screen on my laptop but adds black bars all around the screen on the TV (maybe it's due to a difference in aspect ratio and/or resolution between my macbook and the TV.  UPDATE: It was an aspect ratio issue.  My macbook is 16:10 and my TV is 16:9.  I tried casting local media from my desktop which is set to 1920X1080 and full screen filled up the TV nicely).  You can also use full desktop mirror mode and fire up VLC but then you have no audio.  In general desktop mirroring is worse quality than tab mirroring.  It's still experimental so hopefully it gets improved over time.

Input latency is pretty high all around.  Even for native apps there is lag between the time you hit a player control and the app responds (like pause, play, scrubbing, etc).  It's even worse while mirroring. Scrolling text in a web browser feels like it lags at around 250-500ms.  Unless input latency improves don't expect to ever game on a chromecast.

Highly recommended.  At $35 I'm very impressed at the capabilities of this little device.  At $11 it's a no brainer.  If you want an ultra portable high quality youtube and netflix device with some web browser mirroring on the side then grab it now.  I see some great potential in this dirt cheap device.  Just don't expect something on the same level as appletv, wd tv live, or roku, and you should be quite happy.

UPDATE:  Looks like rooting is already happening.  Also, apparently the OS is more similar to android/google tv than it is to chromeos.

UPDATE: Chromecast and hotel internet
So there are a few challenges getting chromecast working with hotel internet:
- Access pages.  You know it is that page where you have to agree to some terms, click a check box, and put in your room number and last name every 24hrs to get your free internet access.  Yeah, the chromecast has no idea of how to get around that.
- Wireless isolation.  This is a security thing that they sometimes do where one wireless device can't talk directly to another wireless device on the hotel network.

Things you need to get it working:
- Wired ethernet internet access in the room.  If all they have is wireless you are kind of hosed unless you can get the hotel IT to whitelist the mac address of your chromecast so it bypasses the hotel access page.
- A wireless router.  I highly recommend a tiny travel one like the TPLink TL-WR702N.  It is a rather awesome little usb powered wireless router that is impressing me more the more I use it and all for less than $20.

I initially tried the router in AP mode, and that didn't work.  I could never get the chromecast on to the hotel network probably because of the hotel access page.  So I switched to full router mode.  After that I connected my laptop to my own router wirelessly, hit a web page, and went through the hotel (Hilton in this example) internet access procedure.  After that internet access worked fine.  I'm basically doing a double NAT.  This solves 2 issues:  First, I'm creating my own little local LAN on the wireless side of my own router using my own subnet.  This means all my wireless devices can talk to each other bypassing the wireless isolation issue.  Second, once I authorized internet access with my laptop while connected to my own wireless router I ended up granting access to the router (not to my specific laptop/wireless device).  Since it's the travel router device/mac address/wan ip that is getting granted access then all devices that connect to my router after that point don't need to go through that hotel access page (well at least for 24 hrs then you'll need to use your laptop and go through the hotel access page again).  After that running the chromecast setup app got me all connected and setup in no time.  I tested casting netflix, youtube, and a chrome tab.  It all worked great.  Chromecast is an awesome little travel device.  Combined with the router they don't weigh much more than a deck of cards, and they aren't that much bigger.

UPDATE: Chromecast when the hotel only has wireless:
This is at the Disney resorts (Art of Animation to be exact) where I couldn't find any sort of hard wired ethernet port.  It pops up a typical wireless authorization web page which then auto whitelists your mac and then the page auto refreshes after a few seconds telling you have internet access.  I couldn't get my travel router on their network in either bridge or client mode (tried quite a few different settings).  One post I read is using 2 routers: 1 in client mode and then daisy chain a 2nd router in router mode but I couldn't even get client mode working with my laptop.  I really should have tried cloning the mac address from my laptop after my laptop mac address was whitelisted.  I can't remember if mac address cloning was an option in bridge mode (I'm positive I saw it in router mode though).  Anyways, those were some very long, hot, and tiring days so I didn't get to spend as much time on it as I wanted to.


Unknown said...

I had a couple different outcomes. First, I had no problem casting from Google Play Music on my Galaxy S3. In fact, it was quite slick and showed cover art and some meta data. When casting Netflix (from the supported Android Netflix app) to my receiver, I wasn't getting 5.1 surround with the same movie that my PS3 played with 5.1 just fine.

Great little device.

ARogan said...

Google Play Music works fine now. Silly me accidentally picked a local only song instead of the other 50 that were in the cloud. Once I picked a song I verified was indeed in the cloud everything worked great.