連載
» 2014年09月03日 18時00分 公開

Chromecastアプリ開発入門(1):Chromecastで動くHTML5ベースのメディアストリーミングアプリを作るための基礎知識 (2/3)

[大西克己,オープンストリーム]

Chromecastアプリの開発環境

 開発者向けには、Receiverアプリ向けにJavaScriptライブラリ、SenderアプリのAndroid/iOS向けにSDK、Chromeブラウザー向けにSDKとChrome Extensionが提供されています。PCではChromeブラウザーのみサポートされており、他のブラウザーはサポートされていません。

 SDKおよびサンプルアプリは以下のサイトからダウンロードが可能です。

 前述の通り、ChromecastはChromeブラウザーを搭載しています。このため、いくつものメディアをサポートしておりHTML5のVideo/Audioに対応しています。

 しかしながら、HTML5のVideo/AudioのAPIだけでは、メディアストリーミングサービスには必要不可欠な技術であるAdaptive Bitrate StreamingやDRMを実装できません。これらをサポートするために、「Media Player Library」が提供されています。

 Media Player Libraryは、HTML5のEncrypted Media Extensions(EME)のAPIを介して、Chromecastのハードウェア上のDRMエージェントにアクセスして、コンテンツの保護を保ちつつストリーミング再生と、Adaptive Bitrate Streamingを実現しています。

 Media Player Libraryは以下のサイトからダウンロードが可能です。

Adaptive Bitrate Streaming

 Adaptive Bitrate Streamingは、ネットワーク状況に応じてビデオ/オーディオの品質を変化させて配信する技術のことです。アダプティブビットレートは、プレーヤーがコンテンツの受信速度を監視しながら、最適なビットレートに自動的に切り替えます。

 高いビットレートは高画質・高音質となりますがデータ量が大きくなり、再生中にバッファリングが頻繁に発生する可能性があります。そのため、回線が安定しているとは限らないインターネットのストリーミングではアダプティブビットレートが必要とされています。

 Chromecastでは、MPEG-DASH、Microsoft SmoothStreamingとHTTP Live Streaming(HLS)がサポートされています。

DRM

 DRM(Digital Rights Management:デジタル著作権管理)は、デジタルデータのコンテンツの著作権を保護して利用を制限する技術です。

 デジタルデータのコンテンツはコピーを行っても品質は劣化せず、無制限にコピーを生成できてしまいます。そのため、コンテンツデータを暗号化し特定のソフトウェアやハードウェアでのみしか再生を許可しない仕組みが必要とされます。多くのコンテンツホルダーはメディア配信サービスを行う事業者に対して、著作権を保護するためにDRMの必須を要求しています。

 Chromecastでは、DRM方式として「Microsoft PlayReady」「Google Widevine」がサポートされています。残念ながら、2007年に日本国内でVOD(ビデオオンデマンド)サービスをターゲットに作られた「Marlin DRM」はサポートされていないようです。

Receiverアプリの制限事項

 Chromecastは小型のデバイスであるため、ハードウェアリソースに限りがあります。このため、Receiverアプリには以下の制限があります。

  • メモリ・CPU・GPUは省電力デバイスであるため、Receiverアプリは軽量なものにする必要がある
  • Receiverアプリではダイアログなどは表示できない。また、入力を必要するUIを持つことはできない。コンテンツの再生・停止や切り替えなどの操作は、必ずSenderアプリから行う必要がある
  • Chromecastに搭載されているChromeブラウザーは、ビデオの再生に最適化されている。WebGLNative Client(NaCL)、Chrome Extensionsはサポートされていない
  • Chromecastは、videoタグ/audioタグでは単一のメディアのみサポートしている。Web Audio APIをサポートしているので、複数サウンドを同時に再生することが可能。アクティブなvideoタグは1つのみで、合成や回転などの画像加工はサポートされていない

開発準備と開発者登録

 開発者は「Google Cast SDK Developer Console」であらかじめ開発者登録をする必要があります。初回登録料金に5ドル掛かりますが、Chromecastを使用したアプリの開発とサービス提供には必須です。

 このコンソール上で、【1】開発者登録、【2】アプリ登録、【3】デバイス登録の3つを行います。

【1】開発者登録

 「Google Cast SDK Developer Console」に初めて訪れると、ログインしているGoogleアカウントで開発者登録する画面が表示されます。問題がなければ、支払手続きに進みます、Google Walletで決済を行うので、あらかじめ登録を済ませておくといいでしょう。

 利用規約の同意にチェックして決済へ進みます。決済が完了すると以下のページが表示されます。

【2】アプリの登録

 「Applications」で新規Receiverアプリを登録し、「Application ID」の取得を行います。「Application ID」は、Senderアプリの開発時に使用し、Receiverアプリとセッションを確立するために必要なものです。

 Receiverアプリには、「Styled Media Receiver」「Custom Receiver」の2種類が選択できます。前者は、あらかじめ用意されているメディア再生用のプレーヤー(JavaScriptアプリ)を使用し、CSSでスキンを変更するだけのアプリです。これはAdaptive Bitrate StreamingやDRMなどは対応しておらず、柔軟なUIを作成できません。大抵の場合、Custom Receiverを選択することになります。

 Receiverアプリは、Googleのサーバーへはホストされませんので、自前でWebサーバーを立ててデプロイする必要があります。

 Custom Receiverを使ったReceiverアプリの登録手順は以下の通りです。

 まず、「Overview」ページか「Applications」ページで、「Add New Application」をクリックします。

 次に、「Receiver Application」の種類は「Custom Receiver」を選択します。

 最後に、「Custom Receiver」の情報を入力します。「Name」にReceiverアプリの名前、「URL」にデプロイ先のURLパスを指定します。

 アプリ登録直後は、開発用に「Unpublished」状態(非公開)となっています。サービスを公開して利用できるように「published」状態にする場合は、アプリはHTTPS環境にデプロイを行いURLにそのパスを指定しなければなりません。

 登録に成功すると、「Application ID」が設定されます。

【3】デバイスの登録

 「Devices」で、開発に使用するChromecastデバイスを登録します。ここで登録していないデバイスでは「Unpublished」のアプリへの接続とリモートデバッグができません。

 「Serial Number」には、Chromecastデバイスに印字してある12桁のコードを入力します。登録が完了するまで、およそ15分かかります。登録完了後は、必ずChromecastデバイスを再起動する必要があります。

 またChromecastの設定で、「アップデート確認時にこのChromecastのシリアル番号を送信する」を有効にしておく必要もあります。

 デバッグできない場合は、この設定とSerial Numberの登録間違えがないか、確認してみるとよいでしょう

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。