ChinachuをWindowsで使うテスト

Chinachu、いいですよね。個人的にすべてWebUI上でできるのがとてもいいです。
で、Chinachuはnode.jsで走ってます。だったらWindowsでも動くのでは?
そんな安易な気持ちでWindowsでChinachuを動かそうとした話です。

はじめに

超適当に作ってしまったので、ソース公開とかバイナリ配布とかはありません。動かした方法のみです。あと、ChinachuはWindows上で動くことを想定して作られていません。
Chinachuの作者にWindows上のChinachuの事について質問等しないように

Windows上で動くCLIな録画アプリを作る

Chinachuはrecpt1を使用して録画、EPG取得等を行っています。WindowsでCLI上で動く録画アプリは(初期のものしか)見つからなかったので、勉強を兼ねて自分で書くことにしました。方針としては、Multi2Dec 2.10のBonProjectをベースに、TVTestやEpgDataCap_Bonなんかを参考にCLIで動く録画アプリを作成します。

BonDriverには対応していなかった(はず)ので、IBonDriverを使ってTsSourceTuner.cppを書き換えます。PMTごとに分離するのも対応してなかった(はず)のでTsSplitter等を見ながらProgAnalyzer.cppあたりに実装します。あと、標準出力で出すために、SmartFile.cppに標準出力に対応するように書き換えます。

"ProgAnalyzer"

仕上げにbonrectest等適当な名前をつけてプロジェクトを作成し、デコーダーグラフをつないで出力させるようにすればOKです。WindowsのCLIで(Ctrl+Cならともかく)死ぬ間際に正常に処理するのは難しいので、名前付きパイプに入力があったら死ぬようにする方がいいかも。

epgdumpをビルドする

Chinachuでは、EPG取得はepgdump経由でおこなっています。Windows上で動かすには、自分でビルドするほうが良いと思います。Windows上でMinGWを使用してbuildするなら misodengaku/epgdump が便利です。

その他必要な物を取得する

Chinachuを動かすためにはnode.jsが必要ですので予めインストールしておきます。ffmpegは、Chinachuではサムネイルの作成や配信に使われているので、ビルドしたりバイナリを持ってくるなどして、実行ファイルにパスを通してください。あとは、tail等Unixしかないコマンドもあるため、msys等を取得してbinフォルダにパスを通すといいと思います。

ChinachuをWindows用に修正する

ChinachuはそのままではWindows上で動きません。少しコードを書き換えます。

  • killコマンドを直接使っているところをprocess.kill等で修正する(msysのkillはmsys上のものしか見えないため)
  • pid等の保存先を変える
  • 録画アプリをkillしているところを、上記のような理由で、名前付きパイプに入力するように変更(node.jsではnetモジュールでできます)。

あとはconfig.jsonとrules.jsonを自分の環境に合わせて変更します。

動作

動かすときは

すればいいと思います。
EPG取得は、Wikiにもある通り

です。
本気で使うならnodeのモジュールとバッチファイルで永続化できるようにするのが一番ですが…

"Chinachu on Windows 1"

"Chinachu on Windows 2"

動かしてみて

ちゃんと動くには動きます。ですが、他のWindowsの録画ソフトと比べると、ターゲットとするプラットフォームが違う時点で、Windows上でのChinachuは実用性は低いと思います。

蛇足(または宣伝)

Windowsで動く綺麗なWebUIの夢が諦めきれなかったので、EpgDataCap_Bonをnode.jsで動かすような何かを作ってます。
自分に技量がないので、試行錯誤しながら作ってます。

node-edcb

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です