はじめてのXBMC [XBMC]
XBMCとはXBox Media Centerの略で、Linux, OSX, iOS, Windowsに対応したメディアプレーヤーアプリケーションです。
XBMC
http://xbmc.org/
ここ1年くらいはPAV-MP1でメディアプレーヤーは落ち着いていたのですが、操作感が悪いので長らく他のメディアプレーヤーを探していたのですが、XBMCを試してみようかと。。

プリンストンテクノロジー デジ像メディアプレーヤー PAV-MP1
- 出版社/メーカー: プリンストンテクノロジー
- メディア: エレクトロニクス
Ubuntu11.10 desktop と Windows7 home Premium で試してみた結果、Ubuntuのドライバでは時折、画面にノイズというか、ちらつきが入り、Windowsと比べてわずかに見劣りする結果となったことと、どちらが簡単にリモコンで操作できるかという点で、Windowsを選ぶことにしました。
個人的には、新しいApple TV(3rd gen)で試してみたかったのですが、iOS5.1でのJailbreakがまだできる状態ではないので、今回はあきらめることに。
Windowsは以前、Windows Media Centerを試すために購入したWindows 7 Home Premiumのライセンスを使います。久々のWindows勝手がよくわかりませんが、インストール完了。インストールしたのは、以前から調子が悪く使っていなかったFiono330です。OSにかかわらず、しばらく使っていると突然落ちてしまい困っていたのですが、BIOSをリセットしたら今までの動きが嘘のように止まって、落ちなくなりました。
インストールはいたって簡単。上記のURLからWindows用のexeをダウンロードしてきて、インストールです。
私の場合は、ファイルサーバーにあるDVD ISOファイルを読みたいので、Video-File-Add Videosからパスを参照して、加えてあげます。
(ちなみに、日本語対応させるには、System-Settings-Appearance-Skin-FontをまずArial basedにしてあげてから、InternationalでLanguageとCharacter setをJapaneseにしてあげます。)
さて、これで、DVD ISOを再生できるようになります。
ちなみに、BR ISOの再生はあまりうまくいきませんでした。Edenになって期待していたんですけどね。。PAV-MP1と同じレベルです。
XBMCでリモコンを使う方法にもいくつかありますが、汎用性と便利さを考えて今回は、PlayStation用のリモコンCECH-ZRC1Jをつかいます。

PlayStation 3用 BDリモートコントローラ (CECH-ZRC1J)
- 出版社/メーカー: ソニー・コンピュータエンタテインメント
- メディア: Video Game
学習リモコンなどでもよいのですが、赤外線の受光部をにょろにょろ出すのがいやで、Bluetoothで通信できるCECH-ZRC1Jにしました。
さて、CECH-ZRC1Jを使うにもいくつか方法があるようですが、一番手っ取り早い方法で行きます。
ちなみに、PCやMacなどとCECH-ZRC1Jをペアリングするには、PCやMacなどでBluetoothデバイスを検出可能状態にしたところで、CECH-ZRC1Jの[ENTER]+[START]を押してあげることで登録可能です。
さて、どうやって、CECH-ZRC1Jからコントロールするかということですが、XBMCはキーボードのみで操作が可能ととなっており、C:\Program Files\XBMC\system\keymaps\keyboard.xml に設定を記述します。ということは、CECH-ZRC1Jから受け取ったコードをキーの押し下げに変換してあげることができればよいことになります。
その変換がBDRemoteで可能です。
BDRemote
http://www11.plala.or.jp/tsuutako/
上記サイトからダウンロードして、実行ファイルをスタートアップに登録しておくと吉。
ヘルプにしたがって、CECH-ZRC1Jのどのボタンにキーボードのどのキーを対応づけるかを調整します。
この対応付けとkeyboard.xmlの設定で自分好みの動きにすることが可能です。ちなみに、XBMCのキーマップはこちらに詳細が記載されています。
http://wiki.xbmc.org/?title=Keymap.xml
私のDBRemoteの設定は、今のところこんな感じです。
keybord.xmlはこんな感じ。
<keymap>
<global>
<keyboard>
<p>Play</p>
<q>Queue</q>
<f>FastForward</f>
<r>Rewind</r>
<left>Left</left>
<right>Right</right>
<up>Up</up>
<down>Down</down>
<pageup>PageUp</pageup>
<pagedown>PageDown</pagedown>
<return>Select</return>
<enter>Select</enter>
<backspace>Back</backspace>
<m>ActivateWindow(PlayerControls)</m>
<s>ActivateWindow(shutdownmenu)</s>
<escape>PreviousMenu</escape>
<i>Info</i>
<c>ContextMenu</c>
<space>Pause</space>
<x>Stop</x>
<period>SkipNext</period>
<comma>SkipPrevious</comma>
<tab>FullScreen</tab>
<s mod="ctrl">Screenshot</s>
<minus>VolumeDown</minus>
<plus>VolumeUp</plus>
<zero>Number0</zero>
<one>Number1</one>
<two>Number2</two>
<three>Number3</three>
<four>Number4</four>
<five>Number5</five>
<six>Number6</six>
<seven>Number7</seven>
<eight>Number8</eight>
<nine>Number9</nine>
<backslash>ToggleFullScreen</backslash>
<f1>XBMC.ActivateWindow(Home)</f1>
<f2>XBMC.ActivateWindow(12600)</f2>
<f3>XBMC.ActivateWindow(MyVideos)</f3>
<f4>XBMC.ActivateWindow(MyMusic)</f4>
<f5>XBMC.ActivateWindow(MyPictures)</f5>
<volume_mute>Mute</volume_mute>
<volume_down>VolumeDown</volume_down>
<volume_up>VolumeUp</volume_up>
<next_track>SkipNext</next_track>
<prev_track>SkipPrevious</prev_track>
<stop>Stop</stop>
<play_pause>Pause</play_pause>
<o mod="ctrl">Notification(MCEKeypress, Recorded TV, 3)</o>
<t mod="ctrl">Notification(MCEKeypress, Live TV, 3)</t>
<t mod="ctrl,shift">Notification(MCEKeypress, My TV, 3)</t>
<a mod="ctrl">Notification(MCEKeypress, Radio, 3)</a>
<u mod="ctrl">Notification(MCEKeypress, DVD subtitle, 3)</u>
<a mod="ctrl,shift">Notification(MCEKeypress, DVD audio, 3)</a>
</keyboard>
</global>
<FullscreenVideo>
<keyboard>
<f>FastForward</f>
<r>Rewind</r>
<period>StepForward</period>
<comma>StepBack</comma>
<backspace>Fullscreen</backspace>
<quote>SmallStepBack</quote>
<return>OSD</return>
<enter>OSD</enter>
<m>OSD</m>
<i>Info</i>
<o>CodecInfo</o>
<z>AspectRatio</z>
<t>ShowSubtitles</t>
<t mod="ctrl">SubtitleAlign</t>
<l>NextSubtitle</l>
<b>AudioNextLanguage</b>
<h>ShowVideoMenu</h>
<e>ShowTime</e>
<j>Mute</j>
<left>StepBack</left>
<right>StepForward</right>
<up>BigStepForward</up>
<down>BigStepBack</down>
<a>AudioDelay</a>
<escape>Fullscreen</escape>
<v>XBMC.ActivateWindow(Teletext)</v>
<up mod="ctrl">SubtitleShiftUp</up>
<down mod="ctrl">SubtitleShiftDown</down>
</keyboard>
</FullscreenVideo>
<VideoTimeSeek>
<keyboard>
<return>Select</return>
<enter>Select</enter>
</keyboard>
</VideoTimeSeek>
<FullscreenInfo>
<keyboard>
<f>FastForward</f>
<r>Rewind</r>
<period>StepForward</period>
<o>CodecInfo</o>
<i>Back</i>
<d mod="ctrl">Back</d>
<m>OSD</m>
</keyboard>
</FullscreenInfo>
<Visualisation>
<keyboard>
<f>FastForward</f>
<r>Rewind</r>
<period>SkipNext</period>
<comma>SkipPrevious</comma>
<return>ActivateWindow(MusicOSD)</return>
<enter>ActivateWindow(MusicOSD)</enter>
<m>ActivateWindow(MusicOSD)</m>
<i>Info</i>
<p>ActivateWindow(VisualisationPresetList)</p>
<v>ActivateWindow(VisualisationSettings)</v>
<n>ActivateWindow(MusicPlaylist)</n>
<left>SkipPrevious</left>
<right>SkipNext</right>
<up>IncreaseRating</up>
<down>DecreaseRating</down> <!--<back>NextPreset</back>!-->
<o>CodecInfo</o>
<l>LockPreset</l>
<escape>FullScreen</escape>
</keyboard>
</Visualisation>
<VisualisationSettings>
<keyboard>
<f>FastForward</f>
<r>Rewind</r>
<period>SkipNext</period>
<comma>SkipPrevious</comma>
<m>Back</m>
<i>Info</i>
<o>CodecInfo</o>
<p>ActivateWindow(VisualisationPresetList)</p>
<v>Back</v>
<n>ActivateWindow(MusicPlaylist)</n>
</keyboard>
</VisualisationSettings>
<VisualisationPresetList>
<keyboard>
<f>FastForward</f>
<r>Rewind</r>
<period>SkipNext</period>
<comma>SkipPrevious</comma>
<m>Back</m>
<i>Info</i>
<o>CodecInfo</o>
<p>Back</p>
<v>Back</v>
<n>ActivateWindow(MusicPlaylist)</n>
</keyboard>
</VisualisationPresetList>
<SlideShow>
<keyboard>
<zero>ZoomNormal</zero>
<one>ZoomLevel1</one>
<two>ZoomLevel2</two>
<three>ZoomLevel3</three>
<four>ZoomLevel4</four>
<five>ZoomLevel5</five>
<six>ZoomLevel6</six>
<seven>ZoomLevel7</seven>
<eight>ZoomLevel8</eight>
<nine>ZoomLevel9</nine>
<i>Info</i>
<o>CodecInfo</o>
<period>NextPicture</period>
<comma>PreviousPicture</comma>
<plus>ZoomIn</plus>
<minus>ZoomOut</minus>
<return>Rotate</return>
<enter>Rotate</enter>
<r>Rotate</r>
</keyboard>
</SlideShow>
<ScreenCalibration>
<keyboard>
<return>NextCalibration</return>
<enter>NextCalibration</enter>
<d>ResetCalibration</d>
<r>NextResolution</r>
</keyboard>
</ScreenCalibration>
<GUICalibration>
<keyboard>
<return>NextCalibration</return>
<enter>NextCalibration</enter>
<d>ResetCalibration</d>
</keyboard>
</GUICalibration>
<VideoOSD>
<keyboard>
<m>Back</m>
<g mod="ctrl">Back</g> <!-- MCE Guide button -->
<i>Info</i>
<o>CodecInfo</o>
</keyboard>
</VideoOSD>
<VideoMenu>
<keyboard>
<opensquarebracket>BigStepForward</opensquarebracket>
<closesquarebracket>BigStepBack</closesquarebracket>
<m>OSD</m>
<i>Info</i>
<o>CodecInfo</o>
<z>AspectRatio</z>
<t>ShowSubtitles</t>
<l>NextSubtitle</l>
<b>AudioNextLanguage</b>
<h>ShowVideoMenu</h>
<e>ShowTime</e>
<j>Mute</j>
<a>AudioDelay</a>
<escape>Fullscreen</escape>
<return>Select</return>
<enter>Select</enter> <!-- backspace>Fullscreen</backspace -->
<left>Left</left>
<right>Right</right>
<up>Up</up>
<down>Down</down>
</keyboard>
</VideoMenu>
<VideoBookmarks>
<keyboard>
<delete>Delete</delete>
</keyboard>
</VideoBookmarks>
<MyVideoLibrary>
<keyboard>
<delete>Delete</delete>
<space>Playlist</space>
<w>ToggleWatched</w>
</keyboard>
</MyVideoLibrary>
<MyVideoFiles>
<keyboard>
<space>Playlist</space>
<q>Queue</q>
<w>ToggleWatched</w>
</keyboard>
</MyVideoFiles>
<MyVideoPlaylist>
<keyboard>
<space>Back</space>
<delete>Delete</delete>
<u>MoveItemUp</u>
<d>MoveItemDown</d>
</keyboard>
</MyVideoPlaylist>
<MyPictures>
<keyboard>
<delete>Delete</delete>
</keyboard>
</MyPictures>
<ContextMenu>
<keyboard>
<c>Back</c>
<menu>Back</menu>
</keyboard>
</ContextMenu>
<PlayerControls>
<keyboard>
<m>Back</m>
</keyboard>
</PlayerControls>
<Scripts>
<keyboard>
<i>info</i>
</keyboard>
</Scripts>
<MusicInformation>
<keyboard>
<i>Back</i>
<d mod="ctrl">Back</d>
</keyboard>
</MusicInformation>
<MovieInformation>
<keyboard>
<i>Back</i>
</keyboard>
</MovieInformation>
<PictureInfo>
<keyboard>
<period>NextPicture</period>
<comma>PreviousPicture</comma>
<i>Back</i>
<d mod="ctrl">Back</d>
<o>Back</o>
<space>Pause</space>
</keyboard>
</PictureInfo>
<Teletext>
<keyboard>
<v>Back</v>
</keyboard>
</Teletext>
<FileBrowser>
<keyboard>
<space>Highlight</space>
</keyboard>
</FileBrowser>
<ShutdownMenu>
<keyboard>
<s>Back</s>
</keyboard>
</ShutdownMenu>
<LoginScreen>
<keyboard>
<end>XBMC.ShutDown()</end>
</keyboard>
</LoginScreen>
<Home>
<keyboard>
<i>info</i>
<end>XBMC.ShutDown()</end>
</keyboard>
</Home>
<VirtualKeyboard>
<keyboard>
<backspace>Backspace</backspace>
</keyboard>
</VirtualKeyboard>
<MyFiles>
<keyboard>
<space>Highlight</space>
<delete>Delete</delete>
<m>Move</m>
<r>Rename</r>
</keyboard>
</MyFiles>
<MyMusicPlaylist>
<keyboard>
<space>Back</space>
<delete>Delete</delete>
<u>MoveItemUp</u>
<d>MoveItemDown</d>
</keyboard>
</MyMusicPlaylist>
<MyMusicPlaylistEditor>
<keyboard>
<u>MoveItemUp</u>
<d>MoveItemDown</d>
<delete>Delete</delete>
</keyboard>
</MyMusicPlaylistEditor>
<MyMusicFiles>
<keyboard>
<space>Playlist</space>
<q>Queue</q>
<delete>Delete</delete>
</keyboard>
</MyMusicFiles>
<MyMusicLibrary>
<keyboard>
<space>Playlist</space>
<q>Queue</q>
</keyboard>
</MyMusicLibrary>
<MusicOSD>
<keyboard>
<f>FastForward</f>
<r>Rewind</r>
<period>SkipNext</period>
<comma>SkipPrevious</comma>
<m>Back</m>
<i>Info</i>
<o>CodecInfo</o>
<p>ActivateWindow(VisualisationPresetList)</p>
<v>ActivateWindow(VisualisationSettings)</v>
<n>ActivateWindow(MusicPlaylist)</n>
</keyboard>
</MusicOSD>
<OSDVideoSettings>
<keyboard>
<i>Info</i>
<o>CodecInfo</o>
</keyboard>
</OSDVideoSettings>
<OSDAudioSettings>
<keyboard>
<i>Info</i>
<o>CodecInfo</o>
</keyboard>
</OSDAudioSettings>
<AddonInformation>
<keyboard>
<i>Back</i>
</keyboard>
</AddonInformation>
<AddonSettings>
<keyboard>
<delete>Delete</delete>
</keyboard>
</AddonSettings>
</keymap>
数日使ったところで、CECH-ZRC1Jの弱点が、、、電池の減りが早い!赤外線は使えても、Bluetoothが数日で使えなくなるとは。。エネループなんでいいですが、電池交換が面倒くさいなぁ〜
BDRemoteの設定で、電池の残量を確認することが可能ですよ。

SANYO NEW eneloop 単4形4本 HR-4UTGB-4
- 出版社/メーカー: 三洋電機
- メディア: Personal Computers
(後日談)電池の減りが早いと思っていたら、実はそうではなく、電池残量(0)は「電池残量が確認できなかった」ということのよう。動かないのはBluetoothのペアリングがおかしくなったせいみたい。一旦、CECH-ZRC1Jを削除してから追加し直すと、実は電池残量(5)ってなことも。。いずれにしても、電池は早くなくなるので、エネループなどの充電池がおすすめ。
ちなみに、Fiono330にはBluetoothはついていないので、こちらを使用。

Logitec Bluetooth USBアダプタ 超小型 Ver3.0 Class1 ブラック LBT-UAN03C1BK
- 出版社/メーカー: ロジテック
- メディア: Personal Computers