Ubuntu server 16.04.1にchinachu(γ)をインストールしたので、メモ。
参考にさせていただいたサイトの方々には大変感謝しています。
ファイアーウォールの設定などについては記載していませんので、設定をお願いします。
IDとパスワードも必ず変更をお願いします。
環境
- Ubuntu server 16.04.1
- kernel: 4.4.0-57-generic
- PT3
- SCR3310-NTTCom
事前準備
$ sudo apt-get install -y vim samba ntp wget curl git make cmake zip
$ sudo apt-get install -y pcscd libpcsclite1 libpcsclite-dev libccid pcsc-tools
$ sudo apt-get install -y autoconf build-essential git-core libssl-dev libtool libboost-all-dev pkg-config yasm pkg-config
カードリーダーの設定
$ pcsc_scan | grep "Japanese Chijou Digital"
(略)
Japanese Chijou Digital B-CAS Card (pay TV)
PT3のドライバのインストール
$ sudo su -
# echo "blacklist earth-pt3" >> /etc/modprobe.d/blacklist.conf
# git clone https://github.com/m-tsudo/pt3.git
# cd pt3/
# make clean && make
# make install
# modprobe pt3_drv
# reboot
再起動後、以下で確認。
$ ls -la /dev/pt3*
crw-rw-rw- 1 root video 243, 0 1月 4 17:35 /dev/pt3video0
crw-rw-rw- 1 root video 243, 1 1月 4 17:35 /dev/pt3video1
crw-rw-rw- 1 root video 243, 2 1月 4 17:35 /dev/pt3video2
crw-rw-rw- 1 root video 243, 3 1月 4 17:35 /dev/pt3video3
arib25のインストール
$ sudo su -
# sudo apt-get install pkg-config
# mkdir ~/tmp
# cd ~/tmp
# wget http://hg.honeyplanet.jp/pt1/archive/c44e16dbb0e2.zip
# unzip c44e16dbb0e2.zip
# cd pt1-c44e16dbb0e2/arib25
# make clean && make
# make install
recpt1(通常版)インストール
# mkdir ~/src
# cd ~/src
# wget http://hg.honeyplanet.jp/pt1/archive/tip.tar.bz2
# tar xvjf tip.tar.bz2
# cd pt1-c8688d7d6382/recpt1/
# sed -i".org" 's/pt1video/pt3video/g' pt1_dev.h
# ./autogen.sh
# ./configure --enable-b25
# make
# make install
以下で録画確認。vlcプレーヤーなどで再生できればOK。
23は地上デジタル放送のチャンネル。自分の環境に合わせてチャンネルを変更してください。
# recpt1 --b25 --strip 23 10 ~/test.ts
nodejsのインストール
# apt-get install -y nodejs npm
# npm cache clean
# npm install n -g
# n stable
# apt-get purge -y nodejs npm
# apt-get -y autoremove
# su -
# node -v
v7.2.1
Mirakurun, Rivarunのインストールと設定
インストール
# npm install pm2 -g
# npm install mirakurun -g --unsafe --production
# npm install rivarun -g
# npm install arib-b25-stream-test -g --unsafe
# ps ax | grep Mirakurun # 動作確認
12111 ? S<sl 10:42 Mirakurun: Server
設定
サーバー設定を変えたいときは下記。本記事ではデフォルトとした。
# mirakurun config server
チューナー設定を変えたいときは下記。私の環境ではBS,CSが来ていないため、地上デジタル放送のみ有効とした。
# mirakurun config tuners
以下通りisDisabled: true ⇒ 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
チャンネル設定を変えたいときは下記。私の環境(名古屋市内)での設定例は下記。
# mirakurun config channels
- name: CAT111
type: GR
channel: '17'
- name: CBC
type: GR
channel: '18'
- name: CHUKYO
type: GR
channel: '19'
- name: NHK G
type: GR
channel: '20'
- name: TOKAI
type: GR
channel: '21'
- name: NAGOYA
type: GR
channel: '22'
- name: AICHI
type: GR
channel: '23'
- name: CAT121
type: GR
channel: '24'
- name: MIE
type: GR
channel: '27'
設定完了後、Mirakurunを再起動する。
# mirakurun restart
EPG情報の更新待ち(1,2分)。serviceIdが空欄の箇所は電波を受信できていないと思われるので、そのchannelをchannels設定から、削除する。
# rivarun --list | sed 's/},/},\n/g'
status: 200
headers: {"server":"Mirakurun/2.0.0-rc.8","content-type":"application/json; charset=utf-8","date":"Thu, 05 Jan 2017 02:03:06 GMT","connection":"close","content-length":"3036"}
[{"type":"GR","channel":"17","name":"CAT111","services":[{"id":3223733896,"serviceId":33896,"networkId":32237,"name":"キャットch111"},
{"id":3223733897,"serviceId":33897,"networkId":32237,"name":"キャットch112"}]},
{"type":"GR","channel":"18","name":"CBC","services":[{"id":3270703096,"serviceId":3096,"networkId":32707,"name":"CBCテレビ"},
{"id":3270703097,"serviceId":3097,"networkId":32707,"name":"CBCテレビ"},
{"id":3270703098,"serviceId":3098,"networkId":32707,"name":"CBCテレビ"},
{"id":3270703480,"serviceId":3480,"networkId":32707,"name":"CBCワンセグ"},
{"id":3270703231,"serviceId":3231,"networkId":32707,"name":"Gガイド"}]},
{"type":"GR","channel":"19","name":"CHUKYO","services":[{"id":3270903112,"serviceId":3112,"networkId":32709,"name":"中京テレビ1"},
{"id":3270903113,"serviceId":3113,"networkId":32709,"name":"中京テレビ2"},
{"id":3270903496,"serviceId":3496,"networkId":32709,"name":"中京テレビ4"}]},
{"type":"GR","channel":"20","name":"NHK G","services":[{"id":3222433792,"serviceId":33792,"networkId":32224,"name":"NHK総合1・名古屋"},
{"id":3222433793,"serviceId":33793,"networkId":32224,"name":"NHK総合2・名古屋"},
{"id":3222434176,"serviceId":34176,"networkId":32224,"name":"NHK携帯G・名古屋"}]},
{"type":"GR","channel":"21","name":"TOKAI","services":[{"id":3270603088,"serviceId":3088,"networkId":32706,"name":"東海テレビ011"},
{"id":3270603089,"serviceId":3089,"networkId":32706,"name":"東海テレビ012"},
{"id":3270603090,"serviceId":3090,"networkId":32706,"name":"東海テレビ013"},
{"id":3270603472,"serviceId":3472,"networkId":32706,"name":"東海テレビワンセグ"}]},
{"type":"GR","channel":"22","name":"NAGOYA","services":[{"id":3270803104,"serviceId":3104,"networkId":32708,"name":"メ~テレ"},
{"id":3270803105,"serviceId":3105,"networkId":32708,"name":"メ~テレ"},
{"id":3270803106,"serviceId":3106,"networkId":32708,"name":"メ~テレ"},
{"id":3270803488,"serviceId":3488,"networkId":32708,"name":"メ~テレ"}]},
{"type":"GR","channel":"23","name":"AICHI","services":[{"id":3223033840,"serviceId":33840,"networkId":32230,"name":"テレビ愛知1"},
{"id":3223033841,"serviceId":33841,"networkId":32230,"name":"テレビ愛知2"},
{"id":3223033842,"serviceId":33842,"networkId":32230,"name":"テレビ愛知3"},
{"id":3223034224,"serviceId":34224,"networkId":32230,"name":"テレビ愛知携帯"}]},
{"type":"GR","channel":"24","name":"CAT121","services":[{"id":3223933912,"serviceId":33912,"networkId":32239,"name":"キャットch121"},
{"id":3223933913,"serviceId":33913,"networkId":32239,"name":"キャットch122"}]},
{"type":"GR","channel":"27","name":"MIE","services":[{"id":3215038960,"serviceId":38960,"networkId":32150,"name":"三重テレビ1"},
{"id":3215038961,"serviceId":38961,"networkId":32150,"name":"三重テレビ2"},
{"id":3215039344,"serviceId":39344,"networkId":32150,"name":"三重テレビ携帯"}]}]
中京テレビ1で15秒間録画してみる。--sidは上記のserviceIdを指定。--ch GR/のは上記のchannelを指定。
# rivarun --b25 --mirakurun localhost:40772 --sid 3112 --ch GR/19 15 CHUKYO.ts
Chinachuのインストールと設定
インストール
# adduser chinachu
# su - chinachu
$ git clone git://github.com/kanreisa/Chinachu.git ~/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
設定
$ echo "[]" > rules.json # ルールファイル作成
$ cp config.sample.json config.json
$ vim config.json
config.jsonの設定例は下記。
recordedCommandは録画後に実行するコマンド。詳細については後述。
wuiPortはWeb UIのポート番号。任意のポート番号に設定。
recordedFormatは録画ファイル名。任意に設定。
私の環境では、recordedは/mnt/sdb/video/chinachuにリンクが張られている。(ln -s /mnt/sdb/video/chinachu /home/chinachu/chinachu/recorded)
{
"mirakurunPath": "http+unix://%2Fvar%2Frun%2Fmirakurun.sock/",
"recordedDir" : "./recorded/",
"recordedCommand":"./recCheck.sh",
"wuiUsers": [
"akari:bakuhatsu"
],
"wuiAllowCountries": ["JP"],
"wuiPort": 10772,
"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:mmdd>]<title>#<episode>(<channel-name>).ts",
"storageLowSpaceThresholdMB": 3000,
"storageLowSpaceAction": "remove",
"storageLowSpaceNotifyTo": null,
"storageLowSpaceCommand": ""
}
サービス設定
$ ./chinachu service operator initscript > /tmp/chinachu-operator
$ ./chinachu service wui initscript > /tmp/chinachu-wui
$ sudo su -
# cd /tmp
# chown root:root chinachu-*
# chmod 755 chinachu-*
# mv chinachu-* /etc/init.d/
# update-rc.d chinachu-operator defaults
# update-rc.d chinachu-wui defaults
起動
# service chinachu-operator start
# service chinachu-wui start
# ps ax | grep chinachu # 動作確認
15664 ? S 0:00 /bin/bash /home/chinachu/chinachu/chinachu service operator execute
15776 ? S 0:00 /bin/bash /home/chinachu/chinachu/chinachu service wui execute
エンコード
エンコードで使用するffmpegはchinachuインストール時にインストールしたものを使用する。
$ ./chinachu installer
(略)
1) Auto (full) 3) Node.js Environment 5) ffmpeg ← これ。(上記ではfullを指定しているのでここではインストール済み)
# su - chinachu
$ cd /home/chinachu/chinachu/
$ wget http://sonic-labo.xsrv.jp/gosogoso/wp-content/uploads/2015/11/recCheck.zip
$ unzip recCheck.zip
$ vim recCheck.sh # ファイル内のコメントを参考に設定を変更。
$ #最低限user, passwdを変更すること。
$ #例)user=akari, passwd=bakuhatsu
$ vim recCheck.js
私の環境でのrecCheck.jsの変更箇所は下記。ffmpegの引数などは任意に変更すること。
/mnt/sdb/video/chinachu/は/home/chinachu/chinachu/recordedのリンク先。
var encodedDir = "/mnt/sdb/video/chinachu/";
var recOpt = " -fpre /home/chinachu/chinachu/libx264-hq-ts.ffpreset -r 30000/1001 -aspect 16:9 -s 1280x720 -bufsize 2000k -maxrate 25000k -acodec libmp3lame -ac 2 -ar 48000 -ab 128k -async 100";
var codecOpt = " -vcodec libx264";
/home/chinachu/chinachu/libx264-hq-ts.ffpresetの中身は下記のとおり。
level=41
crf=25
coder=1
flags=+loop
partitions=+parti8x8+parti4x4+partp8x8+partb8x8
me_method=umh
subq=7
me_range=16
g=250
keyint_min=25
sc_threshold=40
i_qfactor=0.71
b_strategy=1
qmin=10
rc_eq='blurCplx^(1-qComp)'
bf=16
bidir_refine=1
refs=6
chinachuを再起動する。
# sudo service chinachu-operator restart
# sudo service chinachu-wui restart
ブラウザで動作確認。
http://(サーバーのホスト名またはIPアドレス):10772/