談談 GoogleCast (ChromeCast)

昨日看到 Play 商店多了個項目 ChromeCast,如下圖,所以我忽然又對這東西感興趣了 ….

playstore-chromecast

ChromeCast 去年推出的時候似乎沒有受到多少人的注目(我指在台灣),其實我可以理解,大家可能會把她想成,這是不是又是 Google TV 的一種內容服務所要搭的硬體,又或者這和 Apple AirPlay / Miracast 有重複性。

應該很多人認為 ChromeCast 的 “表面” 應用就是可以由手機或平板看到的內容叫電視也顯示出來,這內容大部分是音樂或影片,所以很多人包括我也一樣直覺上感覺類似 AirPlay/Miracast ,但其實內部運作方式真的不是這樣。

今日花了一整天時間看了 Google 官方介紹,嘿嘿嘿,原來這東西算是一種訊息傳遞的架構,ChromeCast 給人印象是一定要有一隻 ChromeCast Dongle 嗎 ? 其實也不一定,等下會談到,總之這個東西我認為是一種 HTML5 的進階應用,一點也不神秘,等下就簡單介紹它的運作原理。

用 CheapCast 模擬 ChromeCast

沒有 ChromeCast Dongle 的人,可以安裝一套 Android App 叫 CheapCast,這個 App 會模擬 ChromeCast 裝置,而且還真的可以用,我已經用 padfone2 手機透過 Google Music 叫我的 Nexus 7 平板成功播出音樂,也透過 PC 打開 Chrome Browser 瀏覽 Youtube 網站並且也叫 Nexus7 來播放影片成功了,我想這是最快可以體驗  ChromeCast 的方式了。

我們看一下 CheapCast 官方的 DEMO VIDEO,就是用手機選定影片後,平板上的 CheapCast 就跟著播放了


由這段影片我們可以證實一件事情,ChromeCast Dongle 不是必須的,只要你的裝置有安裝某個 App 有支援 GoogleCast 協定也可以辦到,因此我們不難想像,未來也許 Google TV or 其它 Smart TV 可能也會內建 GoogleCast 功能,現階段先推出 ChromeCast Dongle 的政策考量我不清楚也不評論,但這在實務上絕對行的通的。

GoogleCast 運作原理

其實 GoogleCast 就是 ChromeCast,我目前還不知道這兩者之間有甚麼不同,但是 ChromeCast Dongle 上面確實是印著 Chrome ,可是官方網站介紹這技術時都改成了 GoogleCast 了,反正這兩個東西應該是講同一件事情,不必太在意,如果硬是要區分的話,我們就把 ChromeCast 當成是一個安裝了 Chrome Browser 的 Android Device 吧,而 GoogleCast 則是一種螢幕內容分享技術。

GoogleCast 開發者官網在下面

https://developers.google.com/cast/

一開始原文就說

Google Cast is a screen-sharing technology that lets a user send and control content like video from a small computing device like a phone, tablet, or laptop to a large display device like a television.

翻成中文就是 : Google Cast 是一種螢幕分享技術,可讓 User 透過小型運算裝置如手機,平板,或桌機傳送或控制如影片的內容至大型的顯示裝置如電視機。

由原文敘述,看起來真的和 AirPlay / Miracast 沒甚麼不同啊,可是後面又有一大段敘述我就不引述了,我把我看過 SDK 後的理解用我的方式說明。

我們以 Youtube 或 Google Music 這兩個 App 為例子,手機上所看到的這兩個 App,被定義為 Sender App,而若我們有 ChromeCast Dongle 或上面我們用  CheapCast 搞出的裝置算是 Receiver。

一個 GoogleCast 應用的組成要件必須要有 Sender (發送端),Receiver(接收端),Sender 端有 Sender App,Receiver 端也要有對應的 Receiver App。

Sender 端本來就該有個 App,可是 Receiver 端的 App 是甚麼? GoogleCast 的開發文件上其實很清楚的寫著, Receiver 端的 App 其實就是個 HTML5 Web ,Youtube 有 Youtube Receiver App,Google Music 有 Google Music Receiver App,在 Recever 裝置上收到 Sender 端要求要啟動(Launch)某個 Reciver App 時,就會透過網路載入對應的 HTML5 Web。

所以我們會看到各種不同的 GoogleCast 應用在電視上會有不同的展示風格與佈局,且這些畫面壓根和你手機或平板上看到的完全不同,也不是由手機所提供的。

以 Youtube 來說Sender 端可能只負責將要播放的影片代碼傳遞給 Youtube Receiver App,然後 Youtube  Receiver  App 則透過網路下載 Youtub 影片來播放,因此頻寬完全是 Receiver 在吃的,相對的手持設備端就省電。然後我還可以繼續去敲我的 FACEBOOK,因為 Sender 端不負責下載影片或播放,這樣是不是一種非同步的運作應用呀。

再簡單的說法,Sender 端好比遙控器,遙控 ChromeCast Dongle,請他啟動某個Receiver App,然後 User 可透過 Sender App 操控 Receiver App。實際所有的運算大部分在 Receiver 端,內容則是透過雲端提供而非 Sender 端下載回來再分享給 Reciver 端。

下面是官方的示意圖可以比對一下我的說法其實差不多

googlecast_diagram

GoogleCast 和你我有甚麼關係

先前說過,Receiver 端的 App 就是個 HTML5 Web,依照 Google 開發文件上所述,我們是可以自行開發 ChromeCast 應用的,而且電視上要如何呈現是由 HTML5 Web 來決定,而非手機 App 來決定的,所以這個技術門檻高嗎 ? 其實不高。

再細講一下

Sender 端目前有 Android/IOS SDK 可以用,因此目前 ios/android 上面已經有一些支援 GoogleCast 應用的 App了,而 PC 端則可以透過 Chrome Browser 來跑 HTML5 版的 Sender App 也行的,目前 Youtube 網頁版也已經支援 GoogleCast,但是一定要於 Chrome Browser 安裝 GoogleCast Extension 就是了。

先不要去想 Android 電視或 ChromeCast 裝置市佔率問題,假如你想要搞自己的個人電視台可不可以?

其實是可以的,你只要會 HTML5 就行了,弄個網站,簡單的 Javascript 真的就可以做出來。我倒不是說真的要搞個個人電視台,我只是想表達,GoogleCast的架構其實是非常開放的,它可以讓我們在開發一般 App 或 Web 時,若想要同時讓電視上也看到對應的內容,且電視上所看到的內容也可以自己設計不同的畫面布局或安插額外的內容。

由於這種方式的應用,一方面門檻不高,一方面自由度又高,我覺得會激發出非常多不同的互動電視應用,只是這東西真的出來也沒多久,市場還要被教育,尤其是技術人員可能很多還認為這東西只是另一個 AirPlay 這件事情 ….

目前我所看到的就是這樣子,我並沒有真正去開發 GoogleCast 應用,因為還要去申請 whitelist ,申請還要有 ChromeCast Dongle 序號,我沒有買,不過看到這種開放的架構,真的覺得挺有趣的。

我覺得那天 GoogleCast 技術被內建於未來版本的 Android TV 而非 ChromeCast Dongle,那個爆發力就出來了。真的很想搞一個個人電視應用,等我拿到了 Chromecast Dongle 後有機會再來玩看看吧。

對 SmartTV 內容的感想

最後一個感想,市場上任何以內容想要吸引人來買 SmartTV 電視的的行銷手法我看了十來年了,根本不可行,其實若我本身還是會看規格買電視,這順序是

  • 硬體規格 : 螢幕色階,像素,輸出入接頭的支援,是否支援 3D
  • 作業系統 : 應該就 Android 了,且要可以讓我自由安裝 APP
  • 支援協定 : miracast/dlna 等,以後最好給我加上 googlecast 啊

我不會去管你有和國內甚麼廠商有合作甚麼內容,我不是重度電影迷,且我有的是方法可以看電影,我覺得這僅能打到一小部分人而已,那SmartTV還能幹什 ?

但互動電視應用,靠這種外接的方式可能會打到我,因為它不貴才 35美金,且內容是可由我來決定,我未來若可以由手機選定好內容再由電視播放應該會比由遙控器來操控電視選單來的方便吧。我想我再閒也不會拿電視來玩 facebook,我不需要過度的互動,我只要方便的讓電視播出我想要看的東西即可,即便玩手機時還能聽得到電視播出我要的聲音就已經很爽了。

發佈留言