LXCで録画鯖 [2]Mirakurun,EPGStation【PX-W3PE5/px4_drv】

記事内に広告が含まれています。

Proxmox上のLXCに録画鯖を構築するメモ

今回はLXCにMirakurun,EPGStationを入れて視聴&録画ができるようにしてみます

←前 [1]Proxmoxホストマシンの設定

スポンサーリンク

参考リンク

ゼロから始める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/doc/Platforms.md at master · Chinachu/Mirakurun
A Modern DVR Tuner Server for Japanese TV. Contribute to Chinachu/Mirakurun development by creating an account on GitHub...

MirakurunのドキュメントにNode.jsのインストール方法も書かれています

libarib25インストール

GitHub - tsukumijima/libaribb25: Windows・Linux 共用の ARIB STD-B1 / ARIB STD-B25 ライブラリ
Windows・Linux 共用の ARIB STD-B1 / ARIB STD-B25 ライブラリ - tsukumijima/libaribb25

recpt1インストール

録画用コマンドのrecpt1を入れます

GitHub - stz2012/recpt1: PT1/PT2/PT3をLinuxで使う為の録画ツール(STZ版)
PT1/PT2/PT3をLinuxで使う為の録画ツール(STZ版). Contribute to stz2012/recpt1 development by creating an account on GitHub.
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
Web GUI(http://LXCのIP:40772/)の場合はこんなかんじになる。地上波はGR

チューナー設定が終わったら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の作者さんが公開してくださっていたのでありがたく使わさせてもらいます

GitHub - l3tnun/docker-mirakurun-epgstation: Mirakurun + EPGStation on Docker
Mirakurun + EPGStation on Docker. Contribute to l3tnun/docker-mirakurun-epgstation development by creating an account on...

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を読めるようにすると多分解決する

コメント

タイトルとURLをコピーしました