ݺߣ

ݺߣShare a Scribd company logo
Chromecast,
Cheapcast and TV

Sebastian Mauer
GDG Aachen

DevFest Brussels
November 16th, 2013
This Presentation
contains QR-Codes
Who am I?
Sebastian Mauer

GDG Aachen Co-Lead
Software Engineer

CS Student
I dont work for Googleyet
Part I: Google TV
GoogleTV
?

Googles first attempt to ?own
the TV

?

Introduced at Google I/O 2010

?

First Device, x86-based?
Logitech Revue

?

US only at launch
By the summer of 2012, the majority of the
televisions you see in stores will
have Google TV embedded.
- Eric Schmidt at LeWeb 2011
leTV
Goog
http://9to5mac.com/2013/07/16/report-at-56-apple-tv-takes-majority-of-streaming-device-marketshare-in-2012/
Three Generations
1. Generation, late 2010?
based on Android 3.2
2. Generation, Summer 2012
based on Android 3.2

3. Generation, 2013?
probably on Android 4.2.2
GoogleTV: Pros
?

Part of the Android-family.

?

Deploying apps is easy? (via Play Store)

?

Re-use most of your existing Android code
GoogleTV: Cons
?

Does not evolve as fast as mainline Android

?

Not many devices sold (500,000 - 1,000,000)

?

Late start in the European Union (2012)
Help me Android. You're my only hope
Part II: ChromeCast
aka Google Cast Devices
Chromecast, CheapCast and TV - DevFest Brussels 2013
?

Model Number: H2G2-42

?

Its not based on ChromeOS

?

Its based on Android?
and Chromium

?

Its not going to kill GoogleTV

http://www.i?xit.com/Teardown/Chromecast+Teardown/16069

ChromeCast: Hardware
ChromeCast: Pros
?

Very cheap hardware (35$)

?

Very easy to use (My Grandma can do it?)

?

Web Developers can easily write ?Receiver-Apps

?

Simple Protocol Stack
ChromeCast: Cons
?

Google Cast SDK is still a Developer Preview?
(read: things will break, things will change)

?

You have to manually whitelist?
all your apps with Google

?

Its not officially released outside the U.S.
ChromeCast: Protocol Stack
UDP

?

SSDP (Simple Service Discovery Protocol)

?

DIAL (DIscovery And Launch)

?

RAMP (Remote Application Media Protocol)

?

HTML5 & JS (You know that this is)

?

WebSockets (Bi-directional communication Browser<>WebApp)

?

WebRTC (Web Real Time Communication)

WebTech
ChromeCast: How does it work?
ChromeCast: How it works!
1.

Advertises ChromeCast?
using SSDP (UDP Broadcast)

3.

!
!
Requests App and opens?
WebSocket connection

4.
2.

!
Discovers Endpoints using DIAL

!
!
!
CC fetches HTML5 based 1st
Screen App (opens WebSocket)
ChromeCast: How it works! II
5.

!
!
!
!
Sends request to play media

7.

!
!
!
!
!
6.
!
Media is downloaded/streamed?
by ChromeCast device

!
!
!
!
!
HTML5 app receives?
media request (WebSocket)?
starts fetching content.
ChromeCast: DIAL
?

Protocol published by Netflix

?

Uses SSDP for Service Announcement

?

DIAL REST WebService for exchanging?
Device capabilities and controlling
ChromeCast: DIAL
SSDP

Search

SSDP

Discovery

HTTP

Capabilities

HTTP

Start
ChromeCast: Sender App
Cast SDK available for?

?

?
?
?

?

Needs Whitelisting with Google
ChromeCast: Receiver App
<html>
<script src=/slideshow/chromecast-cheapcast-and-tv-devfest-bru/29102491/"https:/www.gstatic.com/cast/js/receiver/1.0/cast_receiver.js">
</script>
<script type="text/javascript">

!

!
!

!

var receiver = new cast.receiver.Receiver(
'App ID', [cast.receiver.RemoteMedia.NAMESPACE],
"",
5);
var remoteMedia = new cast.receiver.RemoteMedia();
remoteMedia.addChannelFactory(
receiver.createChannelFactory(cast.receiver.RemoteMedia.NAMESPACE));
receiver.start();
window.addEventListener('load', function() {
var elem = document.getElementById('vid');
remoteMedia.setMediaElement(elem);
});

</script>
<body>
<video id="vid" style="position:absolute;top:0;left:0;height:100%;width:100%" />
</body>
</html>
ChromeCast is not just
for ?streaming content.
Its a remote controllable
Chrome Browser
running on your TV.
Part III: CheapCast*

* includes shameless plug
CheapCast all the Droids
?

Is an app that emulates a
ChromeCast (or Google Cast)
device on almost any Android
Device

?

Implements DIAL, RAMP/WS
Proxy-ing

?

Does not care if your id is
whitelisted or not.

?

Written by me
CheapCast: Components
1st Screen Output

Receiver App

SSDP Service

WebView

DIAL REST WS
ChromeCast API Ext

Sender App
CheapCast: Use Cases
?

Start developing ChromeCast apps without owning?
an actual ChromeCast Device

?

Turn one of your old Android-devices into a?
ChromeCast Dongle (connect via MHL<->HDMI)

?

Cast content from your Android Smartphone?
to your Android Tablet just for the hell of it.
CheapCast: Use Cases

Google Music

YouTube
CheapCast
CheapCast: OpenSource
https://github.com/mauimauer/cheapcast
Licensed under the Apache 2.0 License

MadeFp ature:
g eossible
obyin
c mC
Up
hng! iu
ti rom m
Cas
Tab
Demo
CheapCast: Get it now
Q&A

More Related Content

Chromecast, CheapCast and TV - DevFest Brussels 2013