【令和6年6月検証版】「Raspberry Pi3で 録画環境を構築(by docker-mirakurun派生版)」ラスパイで録画環境構築

以前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を利用しているので、適用したほうが良いです。

参考にさせていただきました、有用な情報をありがとうございます。

Raspberry Pi 4 と PX-S1UD V2.0、そしてDockerを利用して各種セットアップを単純化(効率化)しながら、地デジ録画サーバーを作った記録です。 目指した完成
" class="blog-card-thumbnail-link" target="_blank">
Raspberry Pi 4 と PX-S1UD V2.0、そしてDockerを利用して各種セットアップを単純化(効率化)しながら、地デジ録画サーバーを作った記録です。 目指した完成
https://blog.ishmz.com/post/rapsberry-pi-4-px-s1ud
Contribute to ykym/docker-mirakurun-epgstation-rpi development by creating an account on GitHub.