Raspberry PiとPX-W3PE4を利用してMirakurunとEPGStationを構築する
- 2021.03.14
- ソフトウェア
- Raspberry Pi, ソフトウェア
PX-W3PE4を外付け化し、ICカードリーダーも手に入れたのでRaspberry Piで録画サーバーを建てます。
用意するもの
Raspberry Pi本体
今回はRaspberry Pi4 4GBを利用します。
メモリは2GBでも足りると思いますが、バックグラウンドで他のものも動作させているので一応4GBです。
チューナー
今回はわざわざPX-W3PE4を外付け化して利用していますが、わざわざ外付け化する必要なんて無いので最初からUSB接続型になっている外付けのチューナーを用意したほうが良いと思います。
ICカードリーダー
PX-W3PE4には一応内蔵カードリーダーが搭載されていますが、不安定ですし、非公式Linuxドライバを利用すると内蔵カードリーダーが利用できなくなるのでICカードリーダーを用意します。
構築
利用できるように構築していきます。
Raspberry Piの設定
OSをインストールして、IPアドレスの固定などを行ってください。
Sambaの構築
録画データはSDカードに保存することも可能ですが、一般的にはHDDなりなんなりの外部ストレージを接続してそちらに保存すると思います。
その録画データに外部からアクセスできるようにSambaを構築します。
非公式ドライバのインストール
非公式ドライバのほうが公式よりも安定していると言われているのでこちらをインストールします。
sudo apt -y install raspberrypi-kernel-headers dkms git mkdir ~/src cd ~/src git clone https://github.com/nns779/px4_drv.git cd px4_drv/fwtool make wget http://plex-net.co.jp/plex/pxw3u4/pxw3u4_BDA_ver1x64.zip -O pxw3u4_BDA_ver1x64.zip unzip -oj pxw3u4_BDA_ver1x64.zip pxw3u4_BDA_ver1x64/PXW3U4.sys ./fwtool PXW3U4.sys it930x-firmware.bin sudo mkdir -p /lib/firmware sudo cp it930x-firmware.bin /lib/firmware/ cd ../ sudo cp -a ./ /usr/src/px4_drv-0.2.1 sudo dkms add px4_drv/0.2.1 sudo dkms install px4_drv/0.2.1 cd
必要なパッケージをインストールし、クローンし、公式ドライバを抽出し、非公式ドライバをインストールします。
ls /dev/px4video*
と実行し、利用しているチューナーの数デバイスが表示されればOKです。
ICカードリーダーのセットアップ
sudo apt-get install pcscd libpcsclite-dev libccid pcsc-tools
ICカードリーダーを利用するためのツールなどをインストールし、
sudo pcsc_scan
と実行してJapanese Chijou Digital B-CAS Card的な物が表示されればOKです。
sudo systemctl stop pcscd.socket sudo systemctl disable pcscd.socket sudo reboot
最終的にはコンテナ内で管理するので、pcscdを停止、再起動しておきます。
Dockerのインストール
MirakurunとEPGStationの構築で楽をするためにDockerを利用するのでインストールします。
curl -sSL https://get.docker.com | sh sudo apt -y install docker-compose sudo reboot
インストール後、再起動しておきます。
MirakurunとEPGStationのインストール
簡単に構築できるようなDockerコンテナが公開されているので利用させていただきます。
なお、コマンドなどは上の記事に書いてある内容をRaspberry Pi向けに微修正したものとなっています。上の記事も参考にしてください。
git clone https://github.com/l3tnun/docker-mirakurun-epgstation -b v2 cd docker-mirakurun-epgstation git clone https://github.com/Chinachu/Mirakurun
これでMirakurunとEPGStationのデータを取得します。
nano Mirakurun/docker/Dockerfile
で開き、
ARG ARCH= FROM ${ARCH}node:14.15.4-buster AS build WORKDIR /app ENV DOCKER=YES ADD . . RUN apt-get update && \ apt-get upgrade -y && \ apt-get install -y --no-install-recommends build-essential && \ npm install && \ npm run build && \ npm install -g --unsafe-perm --production FROM ${ARCH}node:14.15.4-buster-slim WORKDIR /app ENV DEV="build-essential libtool autoconf git automake cmake" RUN apt-get update && \ apt-get upgrade -y && \ apt-get install -y --no-install-recommends \ make gcc g++ pkg-config pcscd libpcsclite-dev libccid pcsc-tools && \ apt-get install -y $DEV && \ \ # recpt1 \ git clone https://github.com/stz2012/recpt1 /tmp/recpt1 && \ cd /tmp/recpt1/recpt1 && \ ./autogen.sh && \ ./configure && \ make && \ make install && \ rm -rf /tmp/recpt1 && \ \ # mirakurun \ apt-get -y remove $DEV && \ apt-get autoremove -y && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* COPY --from=build /usr/local/lib/node_modules/mirakurun /app CMD ["./docker/container-init.sh"] EXPOSE 40772 9229
上の記事にかかれているものをコピペします。
cp docker-compose-sample.yml docker-compose.yml nano docker-compose.yml
で開き、上の記事にかかれているものをコピペします。
devices: - /dev/px4video0:/dev/px4video0 - /dev/px4video1:/dev/px4video1 - /dev/px4video2:/dev/px4video2 - /dev/px4video3:/dev/px4video3 - /dev/bus:/dev/bus
PX-W3PE4などの場合はdevicesの部分を修正してください。
mysql: container_name: mysql-epgstation-v2 image: linuxserver/mariadb
また、Raspberry Piなどを利用していてSQL関連でエラーが発生した場合はmysqlのimageをlinuxserver/mariadbに変更してください。
- /mnt/hdd/Rec:/app/recorded
録画先も環境に合わせて変更してください。
nano Mirakurun/config/tuners.yml
で開き、
- name: PX-W3PE4_S1 types: - BS - CS command: recpt1 --lnb 15 --device /dev/px4video0 <channel> - - decoder: arib-b25-stream-test isDisabled: false - name: PX-W3PE4_S2 types: - BS - CS command: recpt1 --lnb 15 --device /dev/px4video1 <channel> - - decoder: arib-b25-stream-test isDisabled: false - name: PX-W3PE4_T1 types: - GR command: recpt1 --device /dev/px4video2 <channel> - - decoder: arib-b25-stream-test isDisabled: false - name: PX-W3PE4_T2 types: - GR command: recpt1 --device /dev/px4video3 <channel> - - decoder: arib-b25-stream-test isDisabled: false
のように編集します。
なお、BSアンテナに給電する必要がない場合は–lnb 15を消してください。
cp epgstation/config/config.sample.yml epgstation/config/config.yml cp epgstation/config/operatorLogConfig.sample.yml epgstation/config/operatorLogConfig.yml cp epgstation/config/epgUpdaterLogConfig.sample.yml epgstation/config/epgUpdaterLogConfig.yml cp epgstation/config/serviceLogConfig.sample.yml epgstation/config/serviceLogConfig.yml
設定ファイルやログファイルなどをデフォルトで用意します。
nano epgstation/config/config.yml
で開き、
recordedFormat: '%TITLE%-%YEAR%%MONTH%%DAY%%HOUR%%MIN%'
タイトルの命名規則を変更したり、
android: intent://ADDRESS#Intent;package=org.videolan.vlc;type=video;scheme=PROTOCOL;end
AndroidからのストリーミングでVLCを利用するようにします。
起動
sudo docker-compose pull && sudo docker-compose build --no-cache && sudo docker-compose up -d
コンテナを起動します。かなり時間がかかります。待ちましょう。
curl -X PUT "http://localhost:40772/api/config/channels/scan"
起動完了後、チャンネルスキャンしておきましょう。
sudo docker-compose restart mirakurun
完了したらMirakurunを再起動してください。
利用
MirakurunはRaspberry PiのIPアドレス:40772、EPGStationはRaspberry PiのIPアドレス:8888でアクセスできます。
各Configファイルをいじることでより細かい設定などもできます。
Raspberry PiとPX-W3PE4を利用してDockerを利用しないでMirakurunとEPGStationを構築する
どうやってもハードウェアエンコードを利用できなかったのでDockerを利用しない方法でも構築しました。
-
前の記事
Raspberry Piサーバーの各種機器をまとめて固定して扱いやすくする 2021.03.13
-
次の記事
Visa LINE Payプリペイドカードをオンライン加盟店と実店舗で利用すると50%還元 2021年4月23日まで 2021.03.15