Ubuntu Server 22.04とPT3を用いて録画サーバ構築の際の備忘録③~Docker-mirakurun-EPGStationの導入

この記事については現在も設定などを試行錯誤中ですので加筆修正される可能性があります。

Docker-mirakurun-EPGStationの導入は検索をすると非常に多くの記事がヒットします。
省電力・省スペースのメリットがあるRaspberry Piを用いて導入されているケースも多くまた、書かれた時期から年数が経っている場合など読み進めると設定の仕方が微妙に違うぞ、となることもありました。

自分の環境の場合に参考になったのは以下のリンクの記事でした。

【初心者向け】Ubuntu20.04とPT3環境にDocker-MirakurunでTVサーバーを構築する

私が導入した環境についてはこのシリーズの①

https://desertrose17.blogspot.com/2023/01/ubuntu-server-2204pt3.html

に記載しています。LenovoのThinkCentre M710e Smallをベースに用い、チューナーボードにはPT3を使用する環境です。

Mirakurunの導入にあたっては以下の前提条件があります。

  1. チューナーのドライバーがインストールされている
  2. Docker, docker-composeの導入
  3. ホスト上のpcscd(バックグラウンドで動くPCカードリーダーを読み取るソフトウェア)を停止する

「ホスト上のpcscd」という単語が出てきますが、Dockerというのが仮想環境を作成する基盤のようなもののようです。かなり前にVMwareは使っていたことがありますがホストOS(ここではUbuntu22.04)の中にMirakurunとEPGStationが動作する仮想サーバを作ると理解しておいて先に進めることにします。

確認作業など

PT3のドライバは現行のUbuntuではOSに組み込まれているようなので確認します。

$ ls /dev/dvb/

のコマンドの出力で

adapter0 adapter1 adapter2 adapter3

と出ていれば認識されています。

/dev/dvb/adapter0/ ・・・衛星放送用
/dev/dvb/adapter1/ ・・・地上デジタル用
/dev/dvb/adapter2/ ・・・衛星放送用
/dev/dvb/adapter3/ ・・・地上デジタル用


必要と思われるソフトをインストールしておきます。

sudo apt install -y dkms git dvb-tools curl

カードリーダーのインストール

sudo apt install -y libpcsclite-dev pcscd pcsc-tools libccid

インストール後

$ pcsc_scan

のコマンドで

ずら~っと出力された最後の方に

 Japanese Chijou Digital B-CAS Card (pay TV)

と出ていればB-CASカードもきちんと認識されています。

Docker環境でmirakurun EPGStationを動作させる場合はホスト側ではなくDockerのコンテナ(仮想サーバ)側でカードリーダーを動作させるためホスト側のカードリーダーデーモンpcscdは停止しておきます。

$ sudo systemctl stop pcscd.socket
$ sudo systemctl disable pcscd.socket
$ sudo systemctl status pcscd.socket

Dockerのインストール

Dockerとdocker-composeのインストール

sudo apt -y install docker.io docker-compose

現在のユーザーをdockerグループに入れておきます。

sudo usermod -aG docker ユーザー名

一旦再起動させます。
sudo reboot

docker-mirakurun-epgstationのインストール

インストールは下記のコマンドのみで出来ました。

curl -sf https://raw.githubusercontent.com/l3tnun/docker-mirakurun-epgstation/v2/setup.sh | sh -s
cd docker-mirakurun-epgstation
docker-compose pull
docker-compose run --rm -e SETUP=true mirakurun
docker-compose up -d

最後のコマンドがdocker-mirakurun-epgstationの起動コマンドですので、サーバのIPアドレスの末尾に「:40772」(192.168.0.XXX:40772のような感じになると思います)にブラウザからアクセスすればMirakurunの起動が確認できるかと思います。

設定変更とハマった事

他のシリーズ記事で書いていますが、システム領域にはM.2 SSDを使用し、録画領域には大きめの容量のHDDを使う運用をしたいと考えていましたがデフォルトでは録画データは
docker-mirakurun-epgstation/recorded/ のディレクトリに保管されます。この設定はまず変更したい所なのですが、調べているとDockerを使っていない方の記事も混在していたりしてなかなかうまく録画領域が認識されませんでした。結局のところ録画領域の指定で変更するのは
docker-mirakurun-epgstation/docker-compose.ymlのファイルの中の54行目の方だけで良くて赤い点の行の「:/app/recorded」の前にフルパスで録画データを起きたい場所に書き換えれば良いです。
docker-mirakurun-epgstation/epgstation/config/config.ymlの方は書き換えなくても良いです。


決め手になったのは多々あるブログの記事ではなくてこの方のTweet…




























それとこのdocker-mirakurun-epgstationにはffmpegも含まれているようなので自分で別途エンコードしたりする必要が無ければ、ホスト側に別途ffmpegはインストールする必要はありません。
docker-mirakurun-epgstation/epgstation/config/config.yml の中にffmpegの場所を指定する行がありますが、そこも書き替える必要は無いようです。
ホスト側にもffmpegは入れてしまいましたが、別途エンコードしなさそうなら削除するつもりでいます。雑な理解ではありますが、
docker-mirakurun-epgstation/docker-compose.yml
はホストOSから見たコンテナ(仮想サーバ)の動作に関する設定
docker-mirakurun-epgstation/epgstation/config/config.yml
の方はコンテナ(仮想サーバ)内部でのepgstationの動作に関する設定が記載されていると考えています。
docker-mirakurun-epgstation/epgstation/config/config.yml 側の録画領域指定の部分のみ変更すると/var/lib/docker/overlay2/(指定したディレクトリ名)/録画ファイル.m2tsの様になってしまいます。コンテナ側のルート以下に指定したディレクトリを作り録画ファイルをそこに保存する動作となるようです。


コメント

このブログの人気の投稿

オルテガの 「大衆の反逆」

Ultr@VNCの設定でハマる

DREMEL ルータービットのちょっとした改造