以前セットアップした録画鯖のHDDの調子がイマイチだったので、それを機にOS起動をHDDからSSDに変えて、OSをUbuntu 18.04.1にしました。
今回の記事は以前の記事をリライトしたものになります。
Mirakurun 3.0からはDockerでの導入が推奨環境となりました。この記事の内容は2019年時点でのものであるため、新規インストールの場合、参考にならない点が多いです。特に、Step3〜Step7のチューナーからMirakurun導入に関しては、この記事の方法では公式の現バージョンと大きく違うため、正常に動きません。新規導入の際は、必ず公式マニュアルを参照して最新の動向をご確認ください。
2019/01/02時点では、正常に動作するルートになっているので、「今から録画サーバーを作るよ」という方に参考になればと思っています。
自分はLinuxのテキストエディタはnano派なので、この記事でテキストエディタのコマンドが出る場合は全てnanoで開くように書いています。
vimやviユーザーの方はお手数ですがnanoのところを打ち直してください。スイマセン
それぞれのツールが更新されて挙動が変わるかもしれませんがあしからず。
- Ubuntu 18.04.1とPT3で作る録画サーバー
- 手順
Ubuntu 18.04.1とPT3で作る録画サーバー
参考にしたサイト
必要なもの
- PT3などのlinuxドライバのあるチューナー(今はPT3が生産終了で値上がりしているので新しく買う人はヤフオク等で)
※地上波だけなら別のチューナーだけど4,000円くらいで買えます。↓
最近では、さんぱくんっていうPCチューナー(これもなかなか手に入りませんが、在庫があれば7,000円)なら有志のドライバとツールでBS/地上波が使えます(別記事で紹介)。
- カードリーダー(↓我が家はLinux系での稼働実績の高いこれです)
- B-CASカード(レコーダー等から流用でOK)
- そこそこ容量の大きいHDD(当方はOS用のHDDとは別に4TBのHDD使用)
※別のHDDを設定する方法は各自調べてください。 - Corei3以上の性能のあるCPUをもったPC(以前core2duoでやってて結構順調でしたが、突然安定しなくなったりするのでこのぐらいのCPUは必要かと)
- (任意)OS起動用のHDDやSSD 「うっかり保存用領域を超えてしまった」「OSが不安定になった」などの際にすぐに移行できるのでOS起動は別にすることをオススメします。
このSSDを買ってみました。前がHDDだったりので、改装後は再起動やChinachuとのレスポンスが早くなりました。
手順
Step1 OS導入
Ubuntu18.04.1のServerを公式サイトからダウンロードしてUSBかDVDに焼いてインストールするだけです。
他のサイト等でも紹介されているのでインストール方法は割愛します。
タイムゾーン変更
$ sudo dpkg-reconfigure tzdata
Asia → Tokyoにするだけです。
(任意)ここでSSHを入れておきましょう
$ sudo apt install ssh
これでインストールされます。
(任意)日本語環境にする
必要パッケージのインストール
$ sudo apt install language-pack-ja-base language-pack-ja
システム文字セットの変更
$ sudo localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"
再起動かログインし直しで反映されます。
SSHではこれだけでいいのですが、サーバー内のコンソールでは日本語部分が豆腐になってしまうようです。
サーバーのコンソールを変えるとかで対処できるらしいですが、特別困っていないのでここでは省略。
(任意)レポジトリを国内サーバーにする
自分は北陸先端科学技術大学院大学のミラーサーバーがよく使われるので、ここのサーバーにしました。
/etc/apt/sources.listの中の「archive.ubuntu.com/ubuntu」を「ftp.jaist.ac.jp/pub/Linux/ubuntu」に変更するだけです。
sed使ってもいいのですが、どのくらい書き換えるのかを見たかったので、nanoで一つずつ変えました。
変更が終わったら
$ sudo apt update
をしましょう。
Step2 必要パッケージのインストール
Chinachu+Mirakurun+他関連ツールならこのくらいで足りると思います。
もしエラーが出たら、それに対応してaptでインストールって感じで対応してください。
$ sudo apt -y install autoconf build-essential cmake curl git-core libssl-dev libtool libboost-all-dev pkg-config yasm
Mirakurun 3.0からはDockerでの導入が推奨環境となりました。この記事の内容は2019年時点でのものであるため、新規インストールの場合、参考にならない点が多いです。特に、Step3〜Step7のチューナーからMirakurun導入に関しては、この記事の方法では公式の現バージョンと大きく違うため、正常に動きません。新規導入の際は、必ず公式マニュアルを参照して最新の動向をご確認ください。
Step3 カードリーダー用ドライバをインストール(Mirakurun 3.0からは導入しては✕)
$ sudo apt -y install pcscd pcsc-tools libpcsclite-dev $ pcsc_scan
ここでJapanese Chijou Digital B-CAS Card (pay TV)
と出ればOKです。
このコマンドは自動で終了しないのでCtrl+C
で抜けます。
Step4 PT3ドライバ(チューナードライバ)をインストール(Mirakurun 3.0からは導入しては✕)
一応カーネル標準ドライバも試したのですが、何故かBSプレミアムが受信できないってのがあったので、PT3に関しては別途インストールした方が信頼性が高いと思います。
$ mkdir chinachu $ cd chinachu $ git clone https://github.com/m-tsudo/pt3.git $ cd pt3 $ make $ sudo make install $ sudo apt install dkms $ sudo bash ./dkms.install
カーネル標準ドライバと競合するので標準ドライバをブラックリストにする
$ sudo nano /etc/modprobe.d/blacklist.conf
一番下の行にblacklist earth-pt3
と追記
最後に録画サーバを再起動して終了。
$ sudo reboot
再起動後、ドライバモジュールがロードされているかを確認。
$ lsmod | grep pt3
pt3_drv
のような表示があればOK
Step5 暗号化解除用arib25ライブラリのインストール
cmakeの時の「.」はタイポではなく、そういうコマンドです。
$ cd chinachu
$ git clone https://github.com/stz2012/libarib25.git
$ cd libarib25
$ cmake .
$ make
$ sudo make install
Step6 録画コマンドソフトrecpt1のインストール
今まではSTZ版のオリジナル版を使ってきましたが、epgdatacapbonさんのフォークがしたものが色々と改良されているようなので、今回はそちらを利用します。
$ git clone https://github.com/epgdatacapbon/recpt1.git
$ cd recpt1/recpt1
$ ./autogen.sh
$ ./configure --enable-b25
$ make
$ sudo make install
Step7 Mirakurunのインストール
Node.jsの奇数バージョンは不安定らしいので、最新が奇数バージョンの時は一つ前のバージョンを入れたほうがいいようです。ChinachuのWikiによると、通常環境における偶数バージョンの利用は Node.js 公式でも推奨されているようです。
$ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
$ sudo apt install -y nodejs
$ sudo npm install pm2 -g
$ sudo pm2 startup
$ sudo npm install mirakurun -g --unsafe --production
$ sudo npm install arib-b25-stream-test -g --unsafe
設定
$ sudo EDITOR=nano mirakurun config {server|tuners|channels}
server設定はデフォルトでいいと思いますが、tuners、channelsはチューナー、地域に合わせて変更する必要があります。
PT3の時は下記のような感じです。具体的にはPT3の設定は最初から書いてあるのでisDisabled: true
をisDisabled: false
とすれば使うことができます。
※最初に紹介したさんぱくんの設定は別記事で紹介します。
$ sudo EDITOR=nano mirakurun config tuners
- name: PT3-S1
types:
- BS
- CS
command: recpt1 --device /dev/pt3video0 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
- name: PT3-S2
types:
- BS
- CS
command: recpt1 --device /dev/pt3video1 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
- name: PT3-T1
types:
- GR
command: recpt1 --device /dev/pt3video2 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
- name: PT3-T2
types:
- GR
command: recpt1 --device /dev/pt3video3 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
チューナーの設定が終わったら
$ sudo mirakurun restart
でmirakurunを再起動します。
続いてチャンネル設定ですが、Mirakurunでは地上波のみ自動チャンネル設定に対応しているので、こちらを利用します。
下記コマンドを入力すればチャンネル設定のファイルに自動で書き込まれます。
※夜中の時間帯で実行すると一部チャンネルが放送休止している場合があり、正しく設定できない可能性があります。
$ curl -X PUT "http://localhost:40772/api/config/channels/scan"
BS・CSのチャンネル設定は手動ですが設定は全国どこでも同じなので、自負ラボさんのサンプルデータを利用して設定すると楽だと思います。
チャンネル設定は
$ sudo EDITOR=nano mirakurun config channels
で設定できます。
設定が終わったら
$ sudo mirakurun restart
でmirakurunを再起動します。
(任意)ログローテーション設定
自負ラボさんの方で、紹介されていたことなのですがMirakurunは24時間動いていることもあり、ログが大量に履かれます。
”pm2-logrotate”でログの世代管理が可能とのことなので、導入しておきます。
$ sudo pm2 install pm2-logrotate
設定は下記の通り設定すれば1日ごとに圧縮して、一週間保存されるようです。
$ sudo nano /etc/logrotate.d/mirakurun
/usr/local/var/log/mirakurun.stdout.log
/usr/local/var/log/mirakurun.stderr.log
/{
daily
compress
rotate 7
missingok
notifempty
}
Step8 録画予約管理のChinachuの導入
ようやくメインとなるChinachuのインストールです。chinachuはインストーラーが非常によく出来ているのでインストールも対話的にできるので、かなり楽です。
$ sudo apt install build-essential curl git-core vainfo
$ cd ../
$ git clone git://github.com/Chinachu/Chinachu.git
$ cd Chinachu/
$ ./chinachu installer
Chinachu Installer Menu:
[!] These are installed under all /home/chinachu/chinachu/...
[!] Recommend the Auto installation.
1) Auto (full) 3) Node.js Environment 5) ffmpeg
2) submodule 4) Node.js Modules
what do you install? > 1
初回は1
“Auto (full)”を選択します。
コンフィグファイルやルールファイルの作成
$ cp config.sample.json config.json
空のルール設定ファイルを作成
$ echo [] > rules.json
動作確認
$ ./chinachu service wui execute
ここで、SSHや、プロンプトを開いたままブラウザでhttp://[サーバーIP]:20772
でアクセス可能なことを確認してください。
問題なく起動できたらCtrl+\
で終了
続いてEPG取得テスト
$ ./chinachu update
ここでうまくいかない場合は恐らく Mirakurun に接続できていないようです。
うまくいかない場合はmirakurunのログシステムsudo mirakurun log server
等でエラーを確認してください。
サービス開始・スタートアップ登録
せっかくやり変えたので、以前のサービス追加方式をやめて、pm2での管理にすることにします。
pm2とサービスでの多重設定をするとChinachuが不具合を起こすので、気をつけてください。
$ sudo pm2 start processes.json
$ sudo pm2 save
各種ツールの再起動やアップデート方法
ChinachuやMirakurunなど再起動やアップデート方法をまとめてみました。
Chinachu
Chinachuはwui(Web UI)とoperaterが2つで一つみたいな感じです。
operaterだけでも録画はできますが、wuiないと管理できないですしね。
- 再起動、起動、停止
起動 $ sudo pm2 start chinachu-wui $ sudo pm2 start chinachu-operator # 停止 $ sudo pm2 stop chinachu-wui $ sudo pm2 stop chinachu-operator # 再起動 $ sudo pm2 restart chinachu-wui $ sudo pm2 restart chinachu-operator
- アップデート
$ cd chinachu/Chinachu $ ./chinachu updater 1(auto)を選ぶ
Mirakurun
- 再起動、起動、停止
起動 $ sudo mirakurun start # 停止 $ sudo mirakurun stop # 再起動 $ sudo mirakurun restart
- アップデート
$ sudo npm i mirakurun -g --unsafe --production
おまけ(設定ファイル)
起動が完了したらブラウザからChinachuトップの右上にある設定で設定をしましょう。JSONフォーマットのケツカンマは何度も悩みました。
このサイトで文法チェックをしてくれるようなので、文法チェックしながら設定しましょう。
ちなみに自分の設定は下記の通りです。
[wpex more=”クリックで展開” less=”▼ クリックで閉じる”] {
"uid": "[Ubuntuのユーザー名]",
"gid": "video",
"mirakurunPath": "http+unix://%2Fvar%2Frun%2Fmirakurun.sock/",
"recordedDir" : "./recorded/",
"vaapiEnabled": false,
"vaapiDevice": "/dev/dri/renderD128",
"wuiUsers": [
"chinachu:yoshikawa"
],
"wuiAllowCountries": ["JP"],
"wuiPort": null,
"wuiHost": "0.0.0.0",
"wuiTlsKeyPath": null,
"wuiTlsCertPath": null,
"wuiTlsRequestCert": false,
"wuiTlsRejectUnauthorized": true,
"wuiTlsCaPath": null,
"wuiOpenServer": true,
"wuiOpenPort": 20772,
"wuiXFF": false,
"wuiDLNAServerEnabled": false,
"wuiMdnsAdvertisement": true, "recordedFormat": "<date:yymmddHHMM>_<title>_<channel-name>.ts",
"storageLowSpaceThresholdMB": 3000,
"storageLowSpaceAction": "remove",
"storageLowSpaceNotifyTo": null,
"storageLowSpaceCommand": ""
}
[/wpex]あとがき
Chinachuの最近の更新から結構日が経ち、Chinachuプロジェクトはあまり活発的ではなくなっています。最近だと後釜のEPGStaionの方が活発的ですね。
Mirakurunの方はバグや致命的な問題は対応してくれているので、ありがたく使わせて頂いています。
いつか当初予定されていたChinachu Airが配信されないかなーとか思ってたりしています。
<<2019/01/03追記>>
Chinachuプロジェクトが息を巻き返すかも…?
あけましておめでとうございます🎍
昨年は会社のバイアウトもあり、ずっと多忙でした💦
まだ特に新年の抱負は決まっていないのですが…
抱負候補としては例のやつをリリースしたいなとは思っています…
録画のやつ…
インストールには Docker の知識が必要になりそうです… pic.twitter.com/2vPbksgLtz— `kanreisa` (@kanreisa) January 2, 2019
Chinachuプロジェクトのリーダーとも言える”れいさ”さんが年明けそうそうに”録画のやつ”に関する意味深なツイートをしていました。
そして…
長らく更新の止まっていたChinachu γにアップデートが来ました!
【アップデート情報】 Chinachu γ
・[email protected] に更新しました
・ストリーミング再生でエラーが発生する問題を修正しました
・その他さまざま— 録画研究会 (@Chinachu_REC) January 2, 2019
目立った新機能があるわけではありませんが、バグ修正が入ったこともありより使いやすくなりました。
個人的にはChinachuはアメリカのAmazonで先日発売されたFire TV Reacastが”れいささん”の思い描くChinachu Airの目指している姿なのかなとか思いました。
日本ではアメリカのように全てが有料放送ではない関係で利権問題だとか、大変だとは思いますが「物理的なChinachu Airもいつかは実現したらいいな」とか思ってます。(クラウドファンディングとかあれば普通にお金落としたい)
Chinachuの開発者さんがYouTubeの生放送で言ってた、設置だけで何処でも録画が見れるスタンドアロンのChinachuっていうのは、こんな感じなのかなhttps://t.co/NxtaUgVmHJ
— Till0196 (@Till0196) December 19, 2018
今後とも当サイト並びにTill0196はChinachuプロジェクトを応援しています。
コメント