事象の水平線

個人的ブックマーク代わりなメモ書きブログ。 地球は丸いよ。↓このへん。

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop
ほんとは、Linux+XBMC でHTPC(HomeTheaterPersonalComputer)にしたかったのですが、試行錯誤の挙句、時期尚早(自分の技術力が足りないだけ)のためWindows7でつなぐ試験運用することにしました。
やはりLinuxは今一歩マルチメディア系が弱い・・・・
10年以上前のMacとWinみたい・・・・
という訳で、
Windows7+XBMC(+TVTest+VLC) でHTPCにすることにしました。

で、今回はこのPCをTV以外にもそこらに転がっていた17インチの液晶にもつないで、HTPC兼コタツトップパソコンにすることにしました。
ちなみに、スペック 
   M/B:ベアボーン Shuttle SD32G2
   CPU:Core2Duo E6300
   RAM:2GB*2
   SSD:Silicon Power 64GB SP064GBSS2T10S25
   VGA:ELSA GLADIAC 573 128MB (GeForce 7300 LE)
   電源:PicoPSU160
   リモコン:iMon inside

という何世代前?のシロモノ(SSDとiMoninsideは追加)

   モニタ1:日立 Wooo P50-XP05 (50インチプラズマテレビ)
   モニタ2:Acer AL1721    (17インチSXGA液晶モニタ)

CPUファンは本来の9cmのものを外し、クーラーはそのままにGELID Silent12(120mm)を針金で吊り下げ。
チップセットファンは本来の4cmのものを外し、RDL8025BLを3.5インチベイから針金で吊り下げ、5V駆動。
これで、P50-XP05のそばにおいてもP50-XP05のHDD回転音のほうがうるさい。
ちなみに、これでアイドル50wくらい。HD再生で70~80wくらい。一日数時間だしivyBridgeにしても消費電力差で元取るまではいけないよねぇ~~



まずは、OSのインストールから。
XBMCやリモコンなんかがうまく動くか試験運用する、という理由からWindows7Enterprise評価版を適当にググってダウンロードし、インストールすることにします。
インストールの際に、windows7はシステム予約領域というものをHDD上に確保するらしいので、それを解消しつつやります。
インストール画面で、未割当て領域でドライブオプション > 新規をクリックし、好きなサイズでパーティションを作ります。
すると、システム予約領域ともう一つのパーティションが出来るので、もうひとつのほうを削除で消します。
そして、システム予約領域を拡張で好きなサイズにします。
そして、ここへインストールすればOK。

ちなみにシステム予約領域はBitLockerというHDDとかUSBメモリとかの暗号化に使うものらしいです。
Ultimate と Enterprise だけらしいです。
→『BitLocker ドライブ暗号化

ちなみにちなみに、評価版なので当然いずれは使えなくなるのですけど、
しばらくは評価してみないとわからないわけです。
という訳で、しばらく評価する方法
→『グーグル先生
→『Windows OSのライセンス認証の猶予期間を延長する
  評価が固まるころにはLinuxがいい具合になることを祈りつつ・・・・



次に、
XBMCのインストールと設定
XBMC公式
最新はXBMC11みたいだけど、とあるプラグインが使えない(使い方がわからない後述)ので、XBMC10をダウンロードし、インストールします。

1:日本語化
System > Setting > Appearance > International
Language を English(US) から Japanese へ

文字化けしてところどころ“豆腐”になっているので、フォントを変えます。
Internationalの上のタブ(?)がSkin(多分、豆腐が三丁)なのでそこへ入ります。
で、上から4つ目(たぶん Skin default となっているところ)を
Arial based に変えます。

あとは、文字が読めるようになったのでインターナショナルに戻って、
文字セットを Japanese(Shift-Jis)

Skinはほとんどで日本語表示ができるようになってるみたい。@XBMC11
大概は、スキンを選んだ時点でフォントがDefaultに戻るので、フォントを変えればどれかしらで日本語が表示できる。(だめなのもあるけど。MetropolisとXperienceMoreだけかな?)
AEON NoxはKoreanで日本語になった。なぜ?
ちなみに、日本語がだめなSkinで日本語表示するための方法は
XBMC Windows SKINの日本語化について
XBMC 10.0 言語ファイル(日本語)
あたりに書いてあります。試してませんけど・・・

2:外部プレーヤーの登録
XBMCの内部プレーヤー(?)はDSPlayerってものらしいです。
そのままでも、結構色々なフォーマットの音楽、ビデオ、写真etcが再生できるのですがmpeg2TSなんかはうまく再生できないようなので、外部プレーヤーを登録します。

試行錯誤の挙句mpeg2TS用に使うプレーヤーはTVtest
試した中では唯一AACパススルーが出来て字幕もそのまま見れる。
(LinuxはどのソフトもAACパススルーが出来ない・・・wine+TVTestもだめだった・・・orz)

その他の動画にはVLCを使います。(ISO見れます。)

C:\Program Files\XBMC\system\playercorefactory.xml	windowsの場合
/usr/share/xbmc/system/playercorefactory.xml Linuxの場合
の記述を以下のように変えました。

<playercorefactory>
<players>
<!-- These are compiled-in as re-ordering them would break scripts
The following aliases may also be used:
audiodefaultplayer, videodefaultplayer, videodefaultdvdplayer
<player name="DVDPlayer" audio="true" video="true" />
<player name="DVDPlayer" /> placeholder for MPlayer
<player name="PAPlayer" audio="true" />
-->
<player name="VLC" type="ExternalPlayer" audio="true" video="true">
<filename>C:\Program Files\VideoLAN\VLC\vlc.exe</filename>
<args>--fullscreen --play-and-exit "{1}"</args>
<hidexbmc>false</hidexbmc>
<hideconsole>false</hideconsole>
<warpcursor>none</warpcursor>
</player>
<player name="TVTestPassThrough" type="ExternalPlayer" audio="true" video="true">
<filename>C:\Program Files\tvtest\TVTest.exe</filename>
<args>/tvtplay /fullscreen /ini TVTest-xbmc-spdifPT.ini "{1}"</args>
<hidexbmc>false</hidexbmc>
<hideconsole>false</hideconsole>
<warpcursor>none</warpcursor>
</player>
<player name="TVTest" type="ExternalPlayer" audio="true" video="true">
<filename>C:\Program Files\tvtest\TVTest.exe</filename>
<args>/tvtplay /fullscreen /ini Video.ini "{1}"</args>
<hidexbmc>false</hidexbmc>
<hideconsole>false</hideconsole>
<warpcursor>none</warpcursor>
</player>
</players>
<rules name="system rules">
<rule name="vlc" filetypes="mpeg|mpg|iso|mp4|mkv|avi" filename="*" player="VLC" />
<rule name="tvtestPassThrough" filetypes="ts" filename=".*SS.*|.*5_1.*" player="TVTestPassThrough" />
<rule name="tvtest" filetypes="ts" filename="*" player="TVTest" />
</rules>
</playercorefactory>

playerタグのargsコマンドラインオプション
VLCは全画面表示でスタート。再生終了でアプリも終了
TVTestは全画面でスタート。tvtplayを有効化。
更に、iniをSPDIFパススルーしたいものとそうでないもので分け、ファイルネームで選別しそれを読み込む。
拡張子及びファイルネームでの選別はruleタグで行える。
ruleタグのfiletypesは拡張子の指定(正規表現可)。
filenameでファイルネームを正規表現で指定している。
上の例の場合、ファイルネームに『SS』と『5_1』と入っているときはパススルー用。
SPDIFパススルーするとtvtplayで倍速再生が出来なくなるので、5.1chだけパススルーするようにした。
(ステレオはパススルーだろうがPCMだろうがどうせ同じ。よね。)
で、5.1chの放送は番組タイトルに【SS】【5.1】が入るのでこれで選別する。
ただし、Recpt1(EPGrec?)で録画するとピリオド(.)がアンダーバー(_)に変換されるので、【5.1】の文字列はファイルネームでは【5_1】になる。更に、XBMCの正規表現が【】を含んでいると判断できないようなので、こうなった。
そして、絞り込んだruleを先に書くとそちら優先で再生されるようなので、下側のruleではfilename="*"で一応選別できるようになった。文字列を否定する正規表現て大変よね・・・)
当然EPGrec等での命名規則に激しく依存するので注意。
ちなみにplayerのnameとかにハイフン(-)など使うとそれだけでうまく動かないので記号は避けたほうがいいかも。どうせこのxmlだけでのことだし。

参考:『XBMCで外部プレーヤーを指定する方法

さらに、Windows7エアロを有効にしてる場合、HD再生でカクカクになるので
vlc.exeとTVTest.exeを右クリック>プロパティ>互換性>デスクトップコンポジションを無効 にチェック をいれる。
XBMC自体もデスクトップコンポジションを切っておいた方が、外部プレーヤーに切り替えるとき瞬かなくていいかも。元からエアロは使わないとかね。

<<追記メモ>>
HTPCがc000021a(レジストリの不整合らしい)のBSoDが出るようになったので、クリーンインストールしたら、なぜかXBMCからTVtestを開くと重くてまともに見れなくなった。
で、<player>タグの<hidexbmc>要素をfalseからtrueにしたらまともになった。
原因、理由は不明。とりあえず様子見。
参考:『External players XBMC wiki


ちなみに、フィルタ(デコーダー?)を使えるようにしてあげることでDSPlayerでもmpeg2TSもヌルヌル見れるらしいです。
参考:『XBMC for Windows TIPS – 池デジを録画した MPEG-2 TS をヌルヌル再生する方法
ただ、ffdshowとかなんで、Linuxだとうまくいかない予感。

3:XBMCからFirefoxを使えるようにする。
まず、Firefoxはコマンドラインオプションで全画面表示が出来ないらしい。
ウィンドウのサイズと位置は前回終了時の設定が残るので、頭で書いたようにHTPC兼コタツトップにすると、前回コタツトップでつぎにXBMCで使ったときに、全画面にならなかったりするとちょっといやなので、それぞれをプロファイルで分けることにします。

前準備として、スタート(>すべてのプログラム>アクセサリ)>ファイル名を指定して実行 にfirefox -P としてfirefoxのプロファイルマネージャを起動。参考:『Command Line Options
新しいプロファイルを作成からXBMC用のプロファイルを作成し、一度起動し適当にいじって、ひとまずFirefoxを終了。

Firefoxのプロファイルは firefox.exe -P "profilename" とすればそのプロファイルで起動できるので、どこか適当なところ(Firefoxのフォルダの中とか)に以下の内容のバッチファイル(ex.firefox_xbmc.bat)を作る。
@echo off
"C:\Program Files (x86)\Mozilla Firefox\firefox.exe" -P "xbmc"

※コマンドプロンプトが出るのがいやな場合→『バッチファイル プロンプト画面を表示しない
※XBMCのLauncherでコマンドラインオプションを指定する方法、ショートカットにコマンドラインオプションを指定する方法は、何故かうまくいかないのでバッチファイルでやることにしました。


XBMCを起動し、プログラム > GetMore... > Launcher > Install
※XBMC11だとこのLauncherがなく、代わりにAdvancedLauncherというのがあったけど、どうも使い方がわからないので、XBMC10を使うことにした。 orz

プログラム > Launcher を起動し、
Launcher Type はStandalone (normal PC executable)
Select the launcher application で先ほどのバッチファイルを選択
Application arguments は
Set title of the launcher は Firefox あたりで
ちなみに、後から追加で登録する場合、既に作った設定を削除する場合などは項目を選んだ状態でキーボードの『C』を押すとコンテキストが出てくるのでそこから行えます。

参考:『ワイヤレスキーボードと xbmc の組み合わせで快適インターネット!

ここまでで、プログラム>LauncherでFirefoxを起動することは出来たものの階層が深いので、ホーム画面上のプログラムの隣(下)にインターネットという項目を作ってそこで一発でFirefoxを起動できるようにします。
まず、XBMCを一度Exitし、
C:\Program Files (x86)\XBMC\addons\skin.confluence\720p\Home.xmlを開き

~~略~~
<item id="1">
<label>0</label>
<onclick>ActivateWindow(Programs,Addons,return)</onclick>
<icon>special://skin/backgrounds/programs.jpg</icon>
<thumb>$INFO[Skin.String(Home_Custom_Back_Programs_Folder)]</thumb>
<visible>!Skin.HasSetting(HomeMenuNoProgramsButton)</visible>
</item>

<item id="12">
<label>443</label>
<onclick>RunPlugin(plugin://plugin.program.launcher/?Firefox)</onclick>
<icon>special://skin/backgrounds/firefox.jpg</icon>
<!--thumb>$INFO[Skin.String(Home_Custom_Back_Programs_Folder)]</thumb-->
</item>


<item id="5">
<label>13000</label>
<onclick>ActivateWindow(Settings)</onclick>
<icon>special://skin/backgrounds/settings.jpg</icon>
<thumb>$INFO[Skin.String(Home_Custom_Back_Settings_Folder)]</thumb>
</item>
~~略~~

のようにします。
!Skin.HasSetting(HomeMenuNoProgramsButton)』で検索をかけて(1度しか出てこない)、その塊の下に赤文字の部分を入れればOKだと思います。
ちなみに、C:\Program Files (x86)\XBMC\addons\skin.confluence\backgroundsにfirefox.jpgというJpegの壁紙を入れると、インターネットを選んだ画面の壁紙がfirefox.jpgになります。

参考:『xbmc のホーム画面をいじってみる



起動からすべてをリモコンだけで操作する
HTPCが目的なので家電ライクに使えないと意味がないわけで、となるとリモコンが必須。
という訳で、当初からACPIのS5(電源断)から起動できる、知る限り唯一の赤外線リモコンであるiMonを内蔵済み。
iMon inside
韓国(中国?)の通販会社から\3,500で届きました。微妙な値段・・・
リモコンの受光部はUSBでつなぐので、つなぎさえすればキーボードのように何かのキーが帰ってくるのかと思ったら、専用のアプリ(ドライバー)を入れないとだめなのね。なんだやっぱり・・・。ということ(専用ドライバによる)は、そこらに転がってるリモコンの信号は受取れないってことね。ちょっとがっかり・・・。よく考えれば(考えなくても)、当然か・・・
そして、LinuxだとLircってのでリモコン受光部さえあれば、いらなくなったリモコンを使えるようだけどWindowsにはないっぽい。
(正確にはUSB対応のがない。Lirc派生のWinLircはシリアル接続のみ)
EventGhostでimonをHIDヒューマンインターフェースデバイスとか何とかで割り当てても、imonの専用アプリで割り当てたもの以上のキーは出てこない。ぽい。


リモコンはRM100という小さいもの。
ボタン電池はCR2025。 より一般的な2032にしてくれればいいものを・・・・
附属のボタン電池を入れて、反応がすごく鈍くて、何を間違っているのかとアプリのリインストールを繰り返していたら3日後には電池が切れた・・・orz
リモコンのボタンと専用アプリでのボタンの名前の対応表のようなものがなく、微妙にわからなかったのでメモ。
 専用アプリでの名前仮想キーコード
/AutoHotKeyでの名前
rm100.png
1App.Exit自由に割当可
2Power自由に割当可
3BackVK_BACK
/ BS
4Up自由に割当可
5MenuVK_APPS
/ AppsKey
6Left自由に割当可
7EnterVK_RETURN
/ Return
8Right自由に割当可
9VOL+自由に割当可
10Down自由に割当可
11CH+自由に割当可
12VOL-自由に割当可
13Mute自由に割当可
14CH-自由に割当可
15Previous自由に割当可
16Play自由に割当可
17Next自由に割当可
18Quick Launch自由に割当可

ボタンに対して帰ってくるキーコードを専用アプリでカスタマイズできる。
赤字の3つだけは固定されていて変えられない。

ということで、これらのボタンに好きなキーを割り当てて(一部マルチメディアキーも可)アプリ側もホットキーをそれにあわせれば、好きなように動かせる。
さらにAutoHotKeyも活用すれば、完璧。

ちなみにimon以外で、PCの起動を本体のボタンを押さずリモコンライクに起動するアイデアとして、
・スマホとかのWifi端末からマジックパケットを送りWOLでPCを起こす。
・ワイヤレスキーボードetcで『電源の管理』タブ(デバイスマネージャー>キーボード>プロパティ)でサスペンド解除が出来る場合、それを使う。
等がある。
特に下の方法は、M/Bとキーボードが対応さえしていれば一般的なUSBドングル付きのワイヤレスキーボードがPCリモコンになる。(無駄にでかいけど・・・)
さらに、Buffalo(メルコ?)のDT-OP-RCがこの電源の管理に対応してるらしく、S3サスペンドからならこのリモコンだけで復帰できるらしい。(多分Linuxでもいけるよね)
アマゾンで\2,500円位で買える(2012/11/17現在)ので、悪くないと思う。一個確保しとこうか・・・



番外編1:音声のデジタルとアナログ同時出力
AACのSPDIFパススルーにこだわりTVTestにした(ひいてはWindowsにした)訳だけど、デジタル接続のマルチチャンネルアンプで聞きたいとき(映画とか音楽ものとか)と、テレビのスピーカーでもいいときがあるわけで、そうなると出来ればデジタル、アナログ同時出力されていることが望ましい。
で、結論から言うと5.1chの場合は不可(SPDIFパススルー優先)。
ステレオ2chの場合は同時出力可ということになった。
※TVTestがパススルーをする際に音声デバイスがデジタルになっていないとだめ。
音声フィルタはなしになっていないと色々とだめ。とおもう。
設定項目は 設定 > 再生 のあたり


で、ステレオ2chの場合は以下の方法で実現できる。
概要としては、アナログで出力し、PC内部でアナログをデジタルに送る(?)様な感じ
※TVTestは・パススルーをしない・音声デバイスをデフォルトとか(アナログ)にする。

コンパネ(表示方法:アイコン) > サウンド > 録音
リスト表示されている部分で右クリック > 無効なデバイスの表示


ここまでで、ステレオミキサーが出てきたら ステレオミキサーを有効

そして、
再生 で スピーカー (アナログ)が 既定のデバイス になってることを確認

録音 に戻り
ダブルクリックでステレオミキサーのプロパティを開き
聴く > このデバイスを使用して再生する を デジタルアウト系
このデバイスを聴く に チェック

で、アナログとデジタル両方に出力される

デジタルが若干遅れる(DSP通るしね)けど1フレ2フレ位のレベルなので映像に対しては遅れて感じない。無意識の脳内補完てすごいよね・・・・

※デジタルアウトを再生の既定にして、サウンドミキサーでアナログへ聴く はできなかった。
おそらくサウンドミキサーは入力がアナログ固定なんだろう・・・よく分からないけど・・


ちなみに、ステレオミキサー がない場合
ドライバを入れることでステレオミキサーが出てくることもある。

うちの場合、Realtekからドライバ(High Definition Audio Codecs)をダウンロード → インストール で出てきた。

マシンの再起動後にステレオミキサーが出てこなければ あきらめるしかない。たぶん。

参考:『S/PDIFとアナログを同時出力(Windows7)

番外編2:2つの画面をうまいこと切り替える
先にも書いたとおりHTPC兼コタツトップなのでディスプレイが2枚つながっている訳ですが、一方はFullHD(1920*1080)、もう一方はSXGA(1280*1024)になるので、解像度がまるきり違うためミラーリング(画面のコピー)にすると片方が制限を受けることになってしまう。
かといって、2画面を同時に使うことはないので通常のデュアルディスプレイの使い方ではとても不便。
ということで、ディスプレイ1、ディスプレイ2を完全に切り替えて使うことにします。
が、当然毎回コンパネから~なんてやってられないので、バッチで出来ないかと探したら『Display Changer』が完璧。
グラフィックボードが古くて(かな?)nvidiaの最新のドライバーがうまいこと入らないようなので、2枚とも汎用Pnpモニタとかになってしまうけど、\\.\DISPLAY1\\.\DISPLAY2で判別が付くようで切り替えもうまくいく。

バッチファイルはこんな感じ
"C:\Program Files\12noon Display Changer\dc.exe" -monitor="\\.\DISPLAY1" -primary -width=1280 -height=1024 -force

timeout /T 3

"C:\Program Files\12noon Display Changer\dc.exe" -monitor="\\.\DISPLAY2" -detach


やってることは、
ディスプレイ1(17インチSXGA)をメイン画面として有効にする。
3秒待つ。   (深い意味はないけど切り替えの猶予)
ディスプレイ2(テレビ)を切り離す。

これでテレビから17インチへ、切り替えが出来た。
逆も適当に作って、あとはリモコンから来るキーアクションをAutoHotKeyでこのバッチを実行するようにしてあげればOK。
(バッチ使わず、AutoHotKeyから直接でもいいのだろうけど、構築したのがこの順番だったので・・・)

Display Changer』はリンク先に詳しく事例も書いてあるのでそちら参照(英語だけど)
AutoHotKeyは『AutoHotkeyを流行らせるページ』『AutoHotKeyの初手』『AutoHotkeyのチュートリアルを読んだ』『使用例』この辺が役に立った。
スポンサーサイト

PageTop

コメント

 ※
 ※
管理者にだけ表示を許可する
  ※ 必須項目です

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。