スポンサードリンク

2014年6月1日日曜日

PT3とChinachuで手軽に録画サーバ

1

PT3を買ったので、録画サーバを作りました。録画サーバですが再生も可能です。


導入環境

CPUCeleron G540
メモリ4GB
録画チューナーPT3
カードリーダーSCR3310-NTTCom
OSUbuntu 14.04 LTS 64bit


必要になるものをインストール

$ sudo apt-get install autoconf build-essential curl dkms git-core libboost-all-dev libccid libpcsclite1 libpcsclite-dev libssl-dev libtool linux-headers-`uname -r` pcsc-tools pcscd pkg-config unzip yasm
ここでは一度にまとめてインストールしていますが、各セクション毎に必要なパッケージをインストールした方がいいと思います。


カードリーダ

動作確認をします。
$ pcsc_scan
# Japanese Chijou Digital B-CAS Card (pay TV)
B-CASが認識されていることが確認できたら[Ctrl]+[C]にて終了。


PT3のドライバ

Gitからクローンしインストールします。
$ git clone https://github.com/m-tsudo/pt3.git
$ cd pt3/
$ make
$ sudo make install
カーネル更新後も使えるようにDKMSを設定しておきます。
$ sudo ${SHELL} ./dkms.install


arib25

arib25は復号化するために用います。
$ wget http://hg.honeyplanet.jp/pt1/archive/c44e16dbb0e2.zip
$ unzip c44e16dbb0e2.zip
$ cd pt1-c44e16dbb0e2/arib25
$ make
$ sudo make install


recpt1

recpt1は録画プログラムです。

Gitからクローンしインストールします。
$ git clone https://github.com/stz2012/recpt1.git
$ cd recpt1/recpt1
$ ./autogen.sh
$ ./configure --enable-b25
$ make
$ sudo make install
動作確認をします。
$ recpt1 --b25 --strip 13 10 /home/yutorm/nhk_edu-test.ts
# 13:物理チャンネル番号 10:10秒間保存
録画機に再生環境がない場合、他機よりストリーミング再生し確認する方法もあります。
$ recpt1 --udp --addr アドレス --port 1234 --b25 --strip 13 - /dev/null
2


Chinachu

ChinachuはEPG録画予約管理システムです。

Chinachuの実行ユーザを作成します。ここでは名前を「chinachu」にしました。
$ sudo adduser chinachu
作成した実行ユーザがsudoを使えるようにします。関係無いですがvisudoでnanoが開いたのには驚きました。
$ sudo visudo
# chinachu ALL=(ALL:ALL) ALL ←追記する
「chinachu」でログインします。
$ sudo -i -u chinachu
Gitからクローンしインストールします。
$ git clone git://github.com/kanreisa/Chinachu.git ~/chinachu
$ cd ~/chinachu/
$ ./chinachu installer
# 1のAuto(full) を選択
起動時に実行されるよう設定します。
$ ./chinachu service operator initscript > /tmp/chinachu-operator
$ ./chinachu service wui initscript > /tmp/chinachu-wui
$ sudo chown root:root /tmp/chinachu-operator /tmp/chinachu-wui
$ sudo chmod +x /tmp/chinachu-operator /tmp/chinachu-wui
$ sudo mv /tmp/chinachu-operator /tmp/chinachu-wui /etc/init.d/
$ sudo ln -s /usr/lib/insserv/insserv /sbin/insserv2
$ sudo insserv chinachu-operator
$ sudo insserv chinachu-wui
チャンネル等の基本設定をします。設定はブラウザからも行えるので、ここでは物理チャンネル番号のみ変更しています。物理チャンネル番号についてはWikipediaのテレビ周波数チャンネルが参考になります。
なお、私の場合はCATV(周波数変換パススルー)を契約しているために参考にならず、UHF13ch~63chならびにC13ch~C63chを総当たりしました。
$ cp config.sample.json config.json ←サンプルをコピー
$ nano config.json

# チャンネル部分のみ抜粋
  "channels": [
    { "type": "GR", "channel": "C32" },
    { "type": "GR", "channel": "13" },
    { "type": "GR", "channel": "C33" },
    { "type": "GR", "channel": "C63" },
    { "type": "GR", "channel": "15" },
    { "type": "GR", "channel": "C43" },
    { "type": "GR", "channel": "C62" },
    { "type": "GR", "channel": "14" }
  ]
サービスを開始します。
$ sudo service chinachu-operator start
$ sudo service chinachu-wui start
ブラウザからアクセスします。初期設定では10772ポートを使用します。
http://サーバのアドレス:10772/
3
ユーザ名とパスワードを求められるので入力します。初期設定では以下のとおりです。
ユーザ名:aka ri
パスワード:baku hatsu
# どちらも空白を除くこと
後はブラウザから自分好みの設定をするだけです。


再生する

Chinachuは録画しなくともブラウザ上からリアルタイムで再生することができます。
1.番組表の[局名]を右クリックし、[ライブ視聴]をクリックする
4
2.ストリーミングの設定を調整し、右下の[再生]をクリックする
5
3.再生される
6
私の非力なマシンでは再生が安定するまでかなりの時間を要しました。

また録画ファイル、ライブ視聴ともにM2TSをXSPF再生することができ、こちらは非常にヌルヌルと再生されました。


*********12/1追記*********

NTP

連続稼働を続けていると、システムの時刻が狂ってしまい、録画開始がずれ込んでしまう事象が発生しました。正しい時刻を維持するため、NTPサーバに接続し、時刻を同期します。なお、今回は特定のサーバは指定していません。
$ sudo apt-get install ntp

$ sudo nano /etc/ntp.conf

次のような初期設定をコメントアウト
#server 0.ubuntu.pool.ntp.org
#server ntp.ubuntu.com

以下を追記
server 0.jp.pool.ntp.org
server 1.jp.pool.ntp.org
server 2.jp.pool.ntp.org
server 3.jp.pool.ntp.org

$ sudo /etc/init.d/ntp restart ←サービスの再起動

$ ntpq -p ←ステータスの確認
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
-219x123x70x91.a 192.168.7.123    2 u   13   64   77   14.920   44.696   8.536
+laika.paina.jp  61.114.187.55    2 u    6   64   77   11.714   37.990   5.484
*v157-7-152-213. 10.84.87.146     2 u   12   64   77   12.426   40.070   4.562
+y.ns.gin.ntt.ne 95.222.122.210   2 u    8   64   77   13.203   32.488   8.377


Chinachuをアップデートする

Chinachuは開発が盛んであるため、頻繁に更新があります。ありがたいことです。
$ cd /home/chinachu/chinachu ←カレントディレクトリに移動
$ ./chinachu update
#対話形式でアップデートが実行される


所感

様々な方が各種ツールや導入方法を公開されているので、初心者の自分にも簡単に構築することが出来ました。テストがてらWindows環境で構築した時よりもLinux環境のが手軽でかつわかりやすかったです。


参考

m-tsudo/pt3 · GitHub
Installation · kanreisa/Chinachu Wiki · GitHub
Ubuntu 13.10 で Chinachu を使う その3|ムラサキノオト
transitive.info - Ubuntu 12.04 の PT3 関係をアップデートする
ubuntu13.10+pt3+epgrecの環境構築 - UbuntuによるEco Linuxサーバ構築記
pool.ntp.org: NTP Servers in Japan, jp.pool.ntp.org


関連記事

Debian Wheezy用に加筆修正しました。
中古パソコンで作る格安な録画サーバ - Aglona(アグロナ)

5 件のコメント:

  1. chinachuにsudo権限を与える必要はあるのだろうか・・・?

    返信削除
    返信
    1. chinachu自体がカーネルベースで管理者権限で実行しますので不必要ですが念のためですね。
      当方環境ではSU指定していませんが作動しています。

      削除
  2. こんにちはubuntu初心者です。保存先に新たにマウントしたアクセス権の所有者をchinachuにした4THDDを設定したのですが保存できず、以下のようにoperatorのシステムログが出ました。

    25 Apr 22:59:55 - RECORD: 2015-04-25T23:00:00+0900 [BS11]
    /bin/sh: 1: kill: No such process
    25 Apr 22:59:55 - LOCK: PT3-S1 (n=0)
    25 Apr 22:59:55 - MKDIR: /media/XXXX/video1
    util.error: Use console.error instead
    uncaughtException: Error: EACCES, permission denied '/media/XXXX/video1'
    at Error (native)
    at Object.fs.mkdirSync (fs.js:751:18)
    at Function.sync (/home/chinachu/chinachu/node_modules/mkdirp/index.js:55:12)
    at doRecord (/home/chinachu/chinachu/app-operator.js:261:10)
    at null._onTimeout (/home/chinachu/chinachu/app-operator.js:381:3)
    at Timer.listOnTimeout (timers.js:110:15)

    どうしたら録画できますか?よろしければご教授ください。

    返信削除
  3. ↑のものですが、/home/user/以下をマウントポイントにすることで解決いたしました。ありがとうございました。

    返信削除
  4. 「Chinachuをアップデートする」のところのコマンドは「./chinachu updater」ではないでしょうか

    返信削除