Proxmox上のLXCに録画鯖を構築するメモ
今回はLXCにMirakurun,EPGStationを入れて視聴&録画ができるようにしてみます
参考リンク
ゼロから始めるlinux録画鯖の書 | Till0196のぼーびろく
Raspberry PiにEPGStationをインストール | にゃののん日記
確認作業
設定したファイルがLXC側からちゃんと見えてるか・カードリーダーが使えるか
$ ls /dev/px4*
/dev/px4video0 /dev/px4video1 /dev/px4video2 /dev/px4video3
// MirakurunをDocker上で動かしたい場合は、確認したらpcscdを消しとく
$ sudo apt install pcscd pcsc-tools
$ pcsc_scan
...
Japanese Chijou Digital B-CAS Card (pay TV)
ちゃんと見えてますね。もしLXC側で見えているのにpcsc_scan
で失敗ならlibpcsclite-dev
やACR39U用のドライバ入れたりするといいかもしれません
Dockerインストール
Docker上で実行するのがメジャーみたいなので公式のインストール方法で入れます
sudo apt update
sudo apt install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Mirakurunインストール
MirakurunをDocker上で動かせなかったのでLXC直で動かします
やっぱコンテナ環境だとたまにうまくいかないことがありますね..
MirakurunのドキュメントにNode.jsのインストール方法も書かれています
libarib25インストール
recpt1インストール
録画用コマンドのrecpt1を入れます
cd ~
sudo apt install autoconf automake
git clone https://github.com/stz2012/recpt1.git
cd recpt1/recpt1
./autogen.sh
./configure --enable-b25
make
sudo make install
readmeにあるコマンドを実行していくだけで大丈夫です
チューナー設定
チューナーの設定をしないことには受信できないのでとりあえずします
px4video*はBS/CS用・地デジ用が2つずつ交互にきているので、そんな感じで設定します
$ sudo mirakurun config tuners
- name: px4video0
types:
- BS
- CS
decoder: arib-b25-stream-test
isDisabled: false
command: recpt1 --device /dev/px4video0 <channel> - -
- name: px4video1
types:
- BS
- CS
command: recpt1 --device /dev/px4video1 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
- name: px4video2
types:
- GR
command: recpt1 --device /dev/px4video2 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
- name: px4video3
types:
- GR
command: recpt1 --device /dev/px4video3 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
チューナー設定が終わったらMirakurunを再起動し、チャンネルスキャンをかける(地デジ)
curl -X PUT "http://localhost:40772/api/config/channels/scan?type=GR&setDisabledOnAdd=false&refresh=true"
sudo mirakurun restart
パラメーター説明
type:GR/BS/CS
setDisabledOnAdd=true:見つかった局を無効状態で追加(あとでconfigから有効化)
refresh=true:スキャン前のチャンネル設定を削除する
EPGStationインストール
必要なものはEPGStationの作者さんが公開してくださっていたのでありがたく使わさせてもらいます
Mirakurunは直に動かしてるので、docker-compose.yml
からMirakurun関連のものを削除します。
version: '3.7'
services:
# mirakurunのところ削除
mysql:
...
epgstation:
...
depends_on:
# - mirakurun←も削除
- mysql
...
あと、mirakurunのURLもかきかえておく
$ vim ./epgstation/config/config.yml
#mirakurunPath: http://mirakurun:40772/
mirakurunPath: http://[LXCのIP]:40772/
127.0.0.1だとなぜかうまく動かなかった
あとはDockerコンテナを立ち上げて、http://[LXCのIP]:8888/でアクセス
sudo docker compose up
視聴時にMirakurunでTSDecoder#0 unexpected dead
が出てたら、pcscd
を入れてB-CASを読めるようにすると多分解決する
コメント