今月半ばにあったCESで、CanonicalはTVプラットフォーム向けの「Ubuntu TV」のプロトタイプを発表しました[1]。
これはもともと昨年の10月末にマーク・シャトルワースによる「電話・タブレット・テレビといった家電向けUbuntu」という構想を受けて開発されたもので、CESの発表に先んじてソースコードの公開なども行われています。
今回のレシピでは、このUbuntu TVを実際に試してみましょう。
Ubuntu TVの構成
現在のUbuntu TVは以下のようなコンポーネントからなります。
- インターフェース:Unity
- 各種サービス:Lens
- TV視聴・録画:MythTV
- 再生バックエンド:GStreamer
- メタデータ管理:XBMC
インターフェースとしてUnityが採用されていますが、普段デスクトップで使うUnityと異なり、常にDashが表示された状態で操作します。リモコンでも操作できるよう、原則としてカーソルキーと決定キーだけでも操作できるUIになっています。
ユーザーは、左側のLauncher部分から動画再生・TV視聴・YouTubeといったUnity Lensを選択し、動画リストや番組表から再生したいコンテンツを選択・検索して再生するという、ごくごくシンプルな作りです。
ただし今のところ、まともに動くのはVideo Lensが行う動画の検索と再生ぐらいです。例えばTV視聴・録画部分はMythTVを使うことになっていますが、現時点で動作しているわけではありません[2]。
YouTubeのアイコンらしきものも存在しますが選択できない状態です。YouTube Lens自体は別途開発されているので、そのうちUbuntu TVにあわせたUIを備えた上で、Ubuntu TVに単独でインストールできるようになるか、Video Lensに組み込まれることになるでしょう。
同様に他の動画配信だけでなく、音楽や写真といったインターネットサービスも、「Lensを追加する」ことでプラグイン的に対応可能になる作りになっています。
Ubuntu TVのインストール
Ubuntu TVはUnityをベースにしているため、既存のUbuntu環境にインストールすることが可能です。Ubuntu TVのプロジェクトページではソースコードが公開され、Wikiにもそのビルド方法が掲載されています。そこで実際にインストールして、動画の再生を行ってみましょう。
ただし、現在のUbuntu TVは産まれたてのプロジェクトであり、そのコードはアルファ以前のプロトタイプでしかありません。インストールし、実行することによって、既存の環境を壊してしまう可能性がありますので、仮想マシン上などの実環境から隔離された場所でテストするようにしてください。
今回はVirtualBox上の仮想マシンに、あらかじめUbuntu 11.10をインストールしていることを前提に、ソースコードからビルドする形でインストールします[3]。
ちなみに、UnityはQtベースのUnity 2Dを使っているため、3Dアクセラレーションがない環境でも動作します。しかしながらVirtualBoxを使う場合、3Dアクセラレーションが有効になっているとVideo Lensが落ちるという問題がありますので、仮想マシン上では3Dアクセラレーションをオフにして試してください。
ビルドとインストール
最初に、UnityとVideo Lensをビルドし、インストールします。Ubuntu Wikiに掲載されている手順のうち、以下の四つの手順を、そのまま仮想マシン上で実行するだけです。
- "Download Ubuntu TV’s code, its dependencies and compile it"
- "Download and compile the prototype Unity video lens system"
- "Set the formFactor D-Conf key to “tv”"
- "Prepare your environment"
上記以外については別途説明します。
build-depでは大量の開発用パッケージがインストールされるので、Arkoseなどと組み合わせるのも良いでしょう。
動画ディレクトリの作成
Video Lensはライブラリとして~/Videosを使用します。最初から存在する"~/Video"でも"~/ビデオ"でもないので注意してください。
ここに以下のような4つのディレクトリを作成します。
- ~/Videos/unity/local/featured
- ~/Videos/unity/local/rented
- ~/Videos/unity/local/purchased
- ~/Videos/unity/local/recorded
それぞれ上から順番に、特集、レンタル、購入、録画みたいな形で区分けされていますが、今のところ特に意味はないので、4つのうち好きなディレクトリに動画をコピーしてください[4]。
次に以下のコマンドで、保存した動画のサムネイルを作成します。
このコマンドは動画1ファイルにつき、10個のサムネイルを作成し、後述のチャプタージャンプに使用します。
なお、カバー画像は自動では生成してくれません。適切な画像を自分で用意した上で、動画ファイルと同じディレクトリに拡張子だけ".tbn"に変更して保管してください。
Ubuntu TVの起動と終了
以下のコマンドでUbuntu TVを起動します。
3Dアクセラレーションが有効になっている環境では、unity-2d-shellに-openglオプションをつけてください。うまく起動できれば、Ubuntu TVの「ウィンドウ」が全画面で表示されるでしょう。ちなみに、ウィンドウを全画面表示しているので、画面の上部には元の環境のGlobal Menuが表示されます。
終了方法は、画面左上にマウスポインタ(ただし表示されません)を移動した上で閉じるボタンを押して、さらにunity-2d-shellを実行した端末上でCtrl-Cで終了させるだけです。
以降、unity-2d-shellの実行をするだけで、いつでもUbuntu TVを起動できます。
もしVideosディレクトリに新しい動画を保存しても、Ubuntu TV上の情報が更新されない場合は、一度Ubuntu TVを終了してから以下のコマンドでVideoデーモンを強制終了すれば、次回起動時から情報が反映されるでしょう。
Ubuntu TVの操作方法
Ubuntu TVでは、以下のキーボードショートカットを利用できます。
- Unity表示中
- F1:画面左のLauncherにフォーカスをあてる(カーソルキーでLensを変更可能)
- F3: コンテンツのメタデータを表示する
- Enter: Launcherでは検索ウィンドウにフォーカスをあわせ、Dash上では選択したコンテンツの再生を開始する、音量ボタン上では音量調節開始
- カーソル: フォーカス移動、音量バー表示時は、音量のアップダウン
- 再生中
- ESC: 再生終了
- F2: (再生中に)トップメニューの音量バーなどを表示する
- Enter: シークバー表示、一時停止
- カーソルの左右: チャプタージャンプ
- 一時停止中にカーソルの上: チャプターリストの展開
今後の展開
このように、Ubuntu TVは十分に野心的な試みを感じさせる形にはなっているものの、まだまだシンプルな動画プレイヤーにしかなっていません。言い方を変えると、シンプルであるが故に今ならまだ内部の仕様を簡単に理解することができるということです。
例えばARMチームのメンバーは既にPandaBoardへの移植とデモの撮影を行っています。最近よく出回っているARMベースの小型マシンとUbuntu TVを組み合わせることで、何かおもしろいものができるかもしれません。
これを機会にぜひ開発に参加してみてはいかがでしょうか。
なお、今月末にIRC上で行われるUbuntu Developer Weekでは、メインの開発者であるMichat SawiczがUbuntu TVについて説明してくれる予定です。