以前ubuntu server22.04にてdocker-mirakurun-epgstationの録画環境を構築したのですが、気がつくと数十秒に1回程度、データが途切れる現象が発生しました。
アンテナケーブルや、USBチューナ、ICカードリーダを変えても状況は変わりません。
検証のために Raspberry Pi3にて録画環境を構築しました。
着手から起動確認まで50分で完了しました。
以下に手順を記載します。
初心者でもわかりやすいよう、最小の記載・修正にしています。
viで編集していますが、初心者の方は標準のエディタ「nano」でもOKです。
今回はラスパイ向けの亜流版「http://github.com/ykym/docker-mirakurun-epgstation-rpi.git」を利用しましたが、「https://github.com/uyorum/rpi-docker-mirakurun-epgstation」でも動作を確認しています。
使用した機材
Raspberry Pi3(Pi4 / Pi5でも同じ動作をすると思います)
定番USBチューナー: プレクス PLEX USB接続ドングル型地上デジタルTVチューナー PX-S1UD
定番ICカードリーダー: SCM ICカードリーダー/ライター B-CAS・住基カード対応 usb対応 SCR3310
以下に導入した手順を記載しました。
microSDカードを用意し、Raspberry Pi OSを新規インストールし、初期設定が済んでいる前提です。
設定手順1:ドライバ導入
wget http://plex-net.co.jp/plex/px-s1ud/PX-S1UD_driver_Ver.1.0.1.zip
unzip PX-S1UD_driver_Ver.1.0.1.zip
sudo cp PX-S1UD_driver_Ver.1.0.1/x64/amd64/isdbt_rio.inp /lib/firmware/
# PX-S1UDを挿してデバイス認識確認
sudo dmesg | grep PX-S1UD
例)
[ 4.502989] usb 1-1.4: Product: PX-S1UD Digital TV Tuner
# 個人的に必要なプログラム導入(mirakurunの動作には関係ありません)
sudo apt -y install xrdp vim nmap htop lv git
設定手順2:docker/docker-composeの導入
# dockerの導入
cd
curl -sSL https://get.docker.com | sh
# docker-composeを導入する
sudo apt -y install docker-compose
設定手順3a:docke-mirakurun-epgstation導入
git clone http://github.com/ykym/docker-mirakurun-epgstation-rpi.git
設定手順3b:各種config設定&ビルド&起動
# ----- 各種設定ファイルコピー(自分の環境の場合で、必ずしも行う必要はありません) -----
# 以前利用していた設定は ~/conf/フォルダにある前提です
# Epgstation関連
sudo cp ~/conf/config.yml ~/docker-mirakurun-epgstation-rpi/epgstation/config/
# 自作エンコード定義ファイル(ffmpegの変換設定定義ファイル) → 無くても動作します
sudo cp ~/conf/enc*.* ~/docker-mirakurun-epgstation-rpi/epgstation/config/
# チャンネル情報
sudo cp ~/conf/channels.yml ~/docker-mirakurun-epgstation-rpi/mirakurun/conf/
# チューナー情報(PX-S1UD)
sudo cp ~/conf/tuners.yml ~/docker-mirakurun-epgstation-rpi/mirakurun/conf/
# ----- 各種設定ファイルコピー(自分の環境の場合で、必ずしも行う必要はありません) -----
# --- docker-compose.yml 編集 ---
sudo vi ~/docker-mirakurun-epgstation-rpi/docker-compose.yml
## deviceを以下に指定(PX-S1UDの場合)
- /dev/bus:/dev/bus
- /dev/dvb:/dev/dvb
## 録画ファイルの保存場所を以下に指定(/tmp/videoに保存する場合)
- /tmp/video:/app/recorded
# --- docker-compose.yml 編集 ---
# ----- この設定でビルド(30分程度かかりました) -----
cd ~/docker-mirakurun-epgstation-rpi
sudo docker-compose build --no-cache
# ビルドが終わったら起動
cd ~/docker-mirakurun-epgstation-rpi
sudo docker-compose up -d
# 参考:docker停止
sudo docker-compose down
動作確認URL(ブラウザで以下のアドレスを開く)
# ブラウザから以下を確認
# Mirakurun(コントローラー)
http://server-ip:40772
# Epgstation(番組表)
http://server-ip:8888
この状態でepgstationからTSにて録画できることを確認しました。
CPUが非力だからか、mp4のファイルは正常にエンコードできませんでした。
補足:FFmpegにてH.264のハードウェアエンコードをする場合
echo 'SUBSYSTEM=="vchiq",GROUP="video",MODE="0666"' | sudo tee /etc/udev/rules.d/10-vchiq-permissions.rules
必須ではありませんが、せっかくRaspberry Piを利用しているので、適用したほうが良いです。
参考にさせていただきました、有用な情報をありがとうございます。