オープンストリームがChromecast対応iOS/Androidアプリ開発技術を確立できた理由DRM、ストリーミング、ネイティブ/HTML5の高い技術力が必要

» 2014年06月20日 10時00分 公開
[PR/@IT]
PR

 Chromecastは、「YouTube」「Google Play ムービー& TV」などのインターネット上の動画コンテンツを簡単にテレビ画面で楽しめる小型の端末。USBメモリほどの大きさで、テレビのHDMI端子に差し込んで使う。グーグルが開発・販売し、日本国内では2014年5月28日に発売を開始している。

 Chromecastは、低価格でありながら大画面に耐え得る高画質と著作権保護技術(DRM)に適合した動画を再生する機能を備えているため、コンテンツビジネスを展開する事業者からも大きな注目を集めている。特に日本でも人気が高まりつつある定額制の動画配信サービスでは今後Chromecast対応が求められる可能性が高い。

 一方、Chromecastのユニークな特徴として、この端末自身にはユーザーインターフェースがなく、必ずスマートフォンやPCなどと連携して操作しなければならない点が挙げられる。前述の定額制動画配信サービスでは、各社とも専用の動画視聴アプリケーションを用意しているが、Chromecast対応を図ろうとすれば、こうしたアプリケーションにChromecast連携機能を搭載する必要が出てくる。

 このような背景の下、Web&モバイル技術のSIを手掛けるオープンストリームは、Chromecast対応のスマートフォンアプリケーション(iOS版およびAndroid版)について技術実証を行い、いち早く開発技術を確立した。本稿では、Chromecast対応の技術的ポイントについてオープンストリーム CTOの寺田英雄氏に話を伺った。

 「今回の取り組みは、従来当社が得意としているDRM動画プレーヤーアプリケーションの開発技術をさらにレベルアップさせるために実施したものです。Chromecast対応には、ネイティブアプリケーション開発、各種DRM関連技術、HTML5関連技術などを、高いレベルで融合させる必要があり、一朝一夕に達成できるものではありませんでした」(寺田氏)

Chromecastアプリケーションの開発とは、どのようなものなのか

 ChromecastはDRMエージェント、動画コーデック、HDMI動画レンダリング、Webアプリケーション(HTML5+JavaScript)エンジン、そしてWi-Fiを有する。Chromecast用アプリケーションを作成するSDKは「Google Cast SDK」と呼ばれ、Receiver、Senderの機能を各OSプラットフォーム向けに提供する。MPEG-DASHやMicrosoft Smooth Streamingなどのストリーミング技術、Microsoft PlayReady、Google WideVineなどのDRM技術に対応している。

Chromecastアプリケーションの構造

 Receiverの主な機能は、HTML5のvideoタグでChromecastに接続したTV端末上に動画を再生/表示することである。Chromecastのファームウェアに実装されているW3C規格のDRM機能を使って、不正なデータ複製を防ぐようになっている。

 なお、W3C規格のDRM拡張仕様「Encrypted Media Extensions」(以下、EME)はグーグルとマイクロソフトがNetflixなどのコンテンツプロバイダーと組んで提案したものだ(参考記事)。仕様としては2013年末に策定され、モジラファウンデーションも2014年5月に実装を表明したばかりだ(参考記事)。

 このようにEMEは、まだ出来たての仕様のため、2014年1月時点でもReceiver SDKが対応しておらず、手探りでの開発を余儀なくされた。「情報が少ない中、英語のW3Cドキュメントを解読し実装したのが、苦労した点」と寺田氏は述べる。

 ReceiverはDRMを取得するためにライセンスサーバーと通信する以外にも、Google Cast SDK Developer Console(グーグルが提供する専用の管理サイト)と「App ID」を介してChromecastアプリケーションの起動を制御し、最後にCDNなどを介してストリーミングを行う。

 SenderはDIALプロトコルやWebSocketを介して、Chromecastへのコマンドを送るスマートフォン端末側アプリケーションだ。Sender SDKを使い、Android/iOS/Chromeブラウザー向けのアプリケーションを開発できる。

Chromecast対応のポイント

オープンストリーム CTO 寺田英雄氏

 寺田氏は技術実証を通じて得たChromecast対応で重要となるポイントについて、「複雑に見えるアーキテクチャでも、粘り強く読み解いて理解・整理すること」を挙げている。「Chromecastのアーキテクチャには、さまざまな構成要素が登場します。提供されるSDKやAPIがうまく隠蔽(いんぺい)してくれている部分もありますが、各要素の本質的な意味や役割もきちんと理解しておかないと、トラブルシューティングやデバッグがうまくいかなくなります」(寺田氏)という。

 Chromecastのような最新技術を理解するには、英語のドキュメントを読み解く力も重要だ。寺田氏は、「やはり英語力は重要です。日本語に翻訳されるのを待っていては今回のようなスピードで新技術にキャッチアップするのは不可能です」と語る。オープンストリームでは、InfoQの海外技術記事の翻訳活動などを通じて英語力のあるエンジニアの育成を積極的に行っているという。

 広範な要素技術が関係するChromecast開発では、一般的な開発では別チームになることが多い、サーバー側、HTML5アプリケーション、ネイティブアプリケーションの技術者が協調して問題解決に当たる必要があり、「エンジニア間のコミュニケーションが特に重要」(寺田氏)という。オープンストリームではチケット駆動開発やアジャイル的なチーム運営を活用して「エンジニアの個性を生かしつつ、課題を協調して解決していく文化がある」(寺田氏)としている。

 Chromecast Receiverの開発ではWebアプリケーションとしての制約を受けるため、寺田氏は「DRMのライセンス処理などが絡む場合は、特にAjaxなどでのクロスドメイン通信の設定に注意する必要がある」と述べている。「DRM処理では、複数のドメインのサーバーとアプリケーションが通信する必要が出てくる。CDNなども関係するため、トラブル時の問題の切り分けで混乱を生じやすい」という。

 ネイティブアプリケーションの開発にも注意が必要だ。ベースとなる動画アプリケーションは、もともとリアルタイムで動作する動画とUIとの連携が必要なため、非同期処理などを多用し複雑な構成となることが多い。「既存のアプリケーション構造の中に、新たにChromecast側との非同期処理を追加することになる。アプリケーション内部の状態遷移をしっかりと管理するノウハウが必要」(寺田氏)という。

Chromecastアプリケーションの開発ノウハウを生かしていきたい

 このようにオープンストリームは、Chromecastの日本発売に合わせて短期間で技術実証に成功した。その要因としては、DRM、ストリーミング、Android、iOS、HTML5、JavaScriptなどの最新技術動向に対し造詣が深いこと、アジャイル開発で高い技術力を提供できること、DRM動画配信アプリケーションの開発実績がすでにあったことなども大きいだろう。

 「ハードウェアの発売にタイミング合わせるという目標を掲げ、Android/iOSを同時に対応できるChromecast対応ノウハウを確立できた意義は大きい。また、Chromecast Receiverは、最近注目のシングルページアプリケーション(SPA)と同じ構造。このノウハウは動画再生以外のChromecastアプリケーション開発でも生かせる。今後もオープンストリームは、変化の続くITの世界で最新技術を素早く吸収し柔軟に応用していくことで、お客さまを成功に導けるようまい進していきたい」と寺田氏は、今後の展望を述べていた。

Copyright © ITmedia, Inc. All Rights Reserved.


提供:株式会社オープンストリーム
アイティメディア営業企画/制作:@IT 編集部/掲載内容有効期限:2014年7月19日

RSSについて

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

メールマガジン登録

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