今まではメインで使っているデスクトップPCでアニメを録画していた。 特に土日の夜にアニメが集中していてPCを再起動することができずに不便。 録画専用のサーバーを作ることにした。
DockerやAnsibleでのコード化はしていてないので、自分のためにも過程をメモしておく。
ハードウェア
録画サーバーを安く売ってもらった。今はメインのデスクトップPCでテレビの録画をしていてつらいけど、これでいつでもPCの再起動ができる。中身はまっさらなので環境を構築しなければ。 pic.twitter.com/5QedqSvybo
— kusanoさん@がんばらない (@kusano_k) 2017年11月21日
今ではプレミア価格になっているPT3が2枚付き。 ベースはProLiant MicroServer。 音はとても静か。 CPUが非力なので、ブラウザの視聴はカクカクで使い物にならなかった。
ICカードリーダーは、SCR3310-NTTCom。 確定申告の電子申請にも使える。
録画用に4 TBのHDDを増設した。 「Linux HDD増設」とかでググって使えるように。
概要
そもそも、ChinachuとMirakurunの関係が分かっていなかった。 ChinachuはMirakurunに放送の録画を投げる。 Mirakurunは複数のソフトから依頼を受け付けて、録画デバイスを上手いこと使い分ける。 EPG番組表の取得もMirakurunの仕事。 Mirakurunはさらに録画コマンドに処理を投げる。 下のレイヤーから作業を進めると動作確認ができて良い。
OS
ネットの記事を見るとUbuntuの例が多い。 Ubuntuを適当にインストールしてSSHで繋げられるようにする。
ドライバ
カードリーダーは標準ドライバで動く。
aptで何をインストールしたか忘れたけど、pcsc_scan
でJapanese Chijou Digital B-CAS Card (pay TV)
と出てくれば良い。
PT3も標準ドライバで動く。
/dev/dvb/
にadapter?
がPT3の枚数×4個見えれば良い。
偶数が衛星波、奇数が地上波。
使うドライバによって、使う録画コマンドが異なる。
標準ドライバのほうが安心だと思ったけど、PT3専用のドライバのほうが使っている人が多くて楽だったかもしれない。
録画コマンド
recdvb(PX-BCUD対応版)のインストール « » Sat's space
recdvbをインストール。 この記事に載っているコマンドで視聴可能な.tsファイルが生成されれば良い。 ただ、このままだとちょっと問題がある。
recdvb
やrecdvbchksig
でSNRが取得できない。
USB接続で地デジ4チャンネル録画できるチューナーPX-Q1UDを買ったそして試した - Write and Run
この記事のパッチを当てる。
BSプレミアムなどの番組情報が取得できない(録画もできない?)。PT3にTSIDを渡さないといけないチャンネルがあるらしい。TSIDが何で、どこのレイヤーで効いているのか、分からん。
PT3 + recdvb + MirakurunでNHK BSプレミアムのEGPが取得できない問題に対応 - I am a wannabe.
PT3環境でmirakurun と http://www13.plala.or.jp/sat/recdvb/recdvb-1.3.1.tgz の組み合わせでEPGが取得できない問題に対する修正
このパッチを当てて、さらにコメント欄の修正を加える。 この辺りは4月以降のBSチャンネル再編で修正が必要になりそう。
Mirakurun
https://github.com/Chinachu/Mirakurun
npmに登録されている。 が、一部のチャンネルで録画したファイルがTVTestで視聴できなかった。
PATの書き換えでTSパケットの空きを0xffで埋めるようにした by kusano · Pull Request #34 · Chinachu/Mirakurun
この修正を加えたら、TVTestでも見られるようになった。 手元でビルドしてインストール。 手順は、
https://github.com/Chinachu/Mirakurun/blob/master/.github/CONTRIBUTING.md
に載っている。
mirakurun config [server|tuners|channels]
でそれぞれ設定。
serverは初期設定のまま。
tuner。
- name: PT3-S1 types: - BS - CS command: recdvb --dev 0 <channel> - - decoder: arib-b25-stream-test - name: PT3-S2 types: - BS - CS command: recdvb --dev 2 <channel> - - decoder: arib-b25-stream-test - name: PT3-S3 types: - BS - CS command: recdvb --dev 4 <channel> - - decoder: arib-b25-stream-test - name: PT3-S4 types: - BS - CS command: recdvb --dev 6 <channel> - - decoder: arib-b25-stream-test - name: PT3-T1 types: - GR command: recdvb --dev 1 <channel> - - decoder: arib-b25-stream-test isDisabled: false - name: PT3-T2 types: - GR command: recdvb --dev 3 <channel> - - decoder: arib-b25-stream-test - name: PT3-T3 types: "/usr/local/etc/mirakurun/tuners.yml" 60L, 1127C - name: PT3-S1 types: - BS - CS command: recdvb --dev 0 <channel> - - decoder: arib-b25-stream-test - name: PT3-S2 types: - BS - CS command: recdvb --dev 2 <channel> - - decoder: arib-b25-stream-test - name: PT3-S3 types: - BS - CS command: recdvb --dev 4 <channel> - - decoder: arib-b25-stream-test - name: PT3-S4 types: - BS - CS command: recdvb --dev 6 <channel> - - decoder: arib-b25-stream-test - name: PT3-T1 types: - GR command: recdvb --dev 1 <channel> - - decoder: arib-b25-stream-test isDisabled: false - name: PT3-T2 types: - GR command: recdvb --dev 3 <channel> - - decoder: arib-b25-stream-test - name: PT3-T3 types: - GR command: recdvb --dev 5 <channel> - - decoder: arib-b25-stream-test - name: PT3-T4 types: - GR command: recdvb --dev 7 <channel> - - decoder: arib-b25-stream-test - name: TBS6922 types: - SKY command: szap-s2j -c /usr/local/etc/szap-s2j.conf -l <satelite> -S 1 -p -r -M 5 -C 35 <channel> dvbDevicePath: /dev/dvb/adapter0/dvr0 decoder: arib-b1-stream-test isDisabled: true
recpt1
の代わりにrecdvb
を使うように変更。
channels。
うちのマンションはケーブルテレビでテレ玉やチバテレビも入るので、チャンネルスキャンをする。
curl -X PUT "http://localhost:40772/api/config/channels/scan"
このコマンドを実行するとchannelsの設定が上書きされて空行などが消えるので注意。
Chinachu
Wikiのインストール手順の通り。
https://github.com/Chinachu/Chinachu/wiki/Gamma-Installation-V2
録画先を増設したHDDにして、ファイル名を<title> [<channel-name>][<date:yyyymmdd-HHMM>].ts
にした。
http://サーバーのIPアドレス:20223
を開いて、番組表が見られて、録画ができれば良い。
同じLAN内からは繋がる。
nginx
外からも操作できるようにしたい。 DDNSで自宅に繋がるようにはしている。
一応Chinachu単体でも、wuiUsers
、wuiOpenServer
、wuiOpenPort
を設定すれば外からアクセスできるのだが、廃止予定らしい。
nginxでリバースプロキシを立てる。
aptでインストールして、 /etc/nginx/sites-enabled/default を削除。 /etc/nginx/conf.d/に適当なファイル名で、
server { listen 80 default_server; location / { auth_basic "secret"; auth_basic_user_file /etc/nginx/.htpasswd; proxy_pass http://サーバーのIPアドレス:20772; } }
を書き込む。
htpasswd -c /etc/nginx/.htpasswd ログインID
でパスワードファイルを作成。
HTTPS化
録画サーバーに平文で繋ぐのが憚られるような信用できないネットワークを使う機会があるか……?とは思うが、このご時世、webサーバーを立てたらHTTPSにもしておこう。
で、nginxとOSを選択。 出てきたコマンドを入力すると、証明書の取得、nginxの設定の変更、証明書の更新をcronに登録までやってくれる。 すごい。
Samba
メインのWindows PCから録画したファイルを見られるようにする。
sudo apt install samba
でsambaをインストールして、/etc/samba/smb.conf
に次の設定を追加。
[video] path = 録画ディレクトリ browsable = yes guest ok = no read only = no writable = yes
sudo smbpasswd -a ユーザー名
録画予約
この時期にいちいちアニメのタイトルを登録して、表記揺れに悩まされたりするのが面倒。 ジャンルアニメを全部録画したらどうなるのだろうと試してみたところ、1週間で1 TBくらいだった。 4 TBのHDDではちょっと足りない。 また、地上波と衛星波がそれぞれ4 chずつだと、数番組は予約が被って録画ができなかった。 ちまちまと登録するしかない。