Raspberry Pi地デジ関連記事
- 2020年最終版
- 32ビット検証
- ①機材編
- ②コマンドライン録画編
- ③ストリーミング編
- Raspberry Pi 4で地デジ4チャンネル同時録画するには
- Ubuntu 20.04.1添付のffpmegは使ってはダメよ検証
- DLNA配信
地デジチューナーを取り付けたRaspberry Pi 4に、EPGStationをインストールしてみました。
Webブラウザから番組表にアクセスして、VLCでリアルタイムに番組を見ることができるのですね。ふむふむ。
構築手順を記録しておこうと思います。
目次
他のストリーミングサーバについて
EPGStationを使用させて頂く前に。他のストリーミングサービスを2つ試してみました。その顛末も少し記録しておこうと思います。
recdvb
前回
インストールしましたrecdvbコマンドはストリーミング機能を持っていて、たとえば次のコマンドでストリーミングサーバの起動が可能のようです。
recdvb --b25 --http 8080 --strip
確かにフルセグのストリーミングが可能で、vlcで閲覧が可能のようです。vlcに次のパラメータを入力すると、任意のチャンネルを見ることができました。
vlc http://<Raspberry PiのIPアドレス>:8080/<チャンネル番号>
まあ、番組を見られなくもないのですが。毎回コマンドラインでVLCを起動する必要がありますし、試しに34チャンネルを指定しましたが、これがいったいどこのテレビ局なのか?が分かりづらい感じです。
もう少し便利なUIが欲しい気がします。
tvheadend
tvheadendというストリーミングサーバを試してみました。
インストールを進めますと、ISDB-T方式の場合、ブラジルまたはアルゼンチンで設定が可能のようです。アルゼンチンで設定を進めたところ、チャンネルスキャンの後、受信可能なチャンネルのリストが表示されました。文字化けはまあ置いておいて。左端の▶再生マークをクリックすると、確かに一部のチャンネルの地デジが見られますが、画面が小さいような?
これはどうやらワンセグで、フルセグではありません。tvheadendは、B-CASカードに対応していないようです。
どうせならフルセグで番組を見たい!ということで、EPGStationを使わせて頂くに至る感じです。
EPGStationをインストールする全体的な流れ
次のような流れで、EPGStationをインストールしました。
- node.js、PM2インストール
- Mirakurunインストール
- dvbv5インストール
- EPGStationインストール
node.js、PM2インストール
最初にMirakurunのドキュメントを拝見して、バージョンが適合するnode.jsをインストールしました。
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo npm install pm2 -g
2020年3月現在、バージョンは12.xになるようです。PM2はバージョン4.2.3のようです。
Mirakurunインストール
公式サイトを拝見すると、Quickインストールと、Advancedインストールの2種類があるようです。Advancedでインストールしてみました。
sudo npm install mirakurun -g --production
sudo mirakurun init # to install as service
sudo mirakurun restart # when updated
これでmirakurunがサービスとしてインストールされます。 2020年3月現在、mirakurunのバージョン2.14.0がインストールされたようです。
dvbv5インストール
最初、Mirakurunからrecdvbを使用する設定をしてみたのですが、どうも動作が不安定な印象を受けました。dvbv5をインストールして、そちらに切り替えてみました。
sudo apt install dvb-tools
チャンネルの設定ファイルをダウンロードしておきます。
cd /usr/local
sudo mkdir conf
cd conf
sudo curl -O https://raw.githubusercontent.com/Chinachu/dvbconf-for-isdb/master/conf/dvbv5_channels_isdbt.conf
それとデコーダーとしてarib-b25-stream-testをインストールしました。
sudo npm install arib-b25-stream-test -g --unsafe
mirakurun設定
サーバ設定
各種設定は、mirakurunコマンドで行うようです。サーバ設定を確認します。
sudo mirakurun config server
TCPポート番号40772で動作しているのですね。ふむふむ。
チューナー設定
今回使用するチューナーは、PX-S1UDとして認識されるようです。こちらをMirakurunに登録します。
sudo mirakurun config tuners
7行追加しました。
- name: PX-S1UD
types:
- GR
command: /usr/bin/dvbv5-zap -a 0 -c /usr/local/conf/dvbv5_channels_isdbt.conf -r -P <channel>
dvbDevicePath: /dev/dvb/adapter0/dvr0
decoder: arib-b25-stream-test
isDisabled: false
チャンネル設定
最初、次のコマンドで手動で設定しましたが、自動設定の方法があるようです。
sudo mirakurun config channels
チャンネルスキャンすれば、自動で設定されるのですね。ふむふむ。
curl -X PUT "http://localhost:40772/api/config/channels/scan"
スキャン終了後、日本語の名称で設定が作成されていました。ありがたいです。
EPGStationインストール
こちらの公式サイトの手順に従ってインストール致しました。
Raspbian(2020年2月5日版)を使用しましたが、Node.js、FFmpeg/FFprobe、Python2.7、GCCはインストール済みでした。
公式サイトの情報に従い、EPGStationをダウンロード・ビルドしました。
git clone https://github.com/l3tnun/EPGStation.git
cd EPGStation
npm install
npm run build
cp config/config.sample.json config/config.json
cp config/operatorLogConfig.sample.json config/operatorLogConfig.json
cp config/serviceLogConfig.sample.json config/serviceLogConfig.json
config.jsonは既定値で使用しました。
vi config/config.json
使用するTCPポート番号は8888のようです。
あれ?この記事を書いていて気づいたのですが、ffmpeg等のパスは調整したほうが良さそうですね。→/usr/binに直しました。
mirakurun/EPGStationの起動
次のコマンドで、mirakurunとEPGStationを起動(再起動)しました。
sudo mirakurun restart
cd EPGStation
pm2 start dist/server/index.js --name "epgstation"
自動起動するようにsudo付きで設定を保存しました。
cd EPGStation
sudo pm2 start dist/server/index.js --name "epgstation"
sudo pm2 save
以上のような感じで、RaspbianでEPGStationを動かしてみました。Raspberry PiのデスクトップでChromiumを起動、http://localhost:8888にアクセスすると、放送中の番組のリストが表示されます。番組をクリックすると、VLCで番組を見ることができました。
他のPCやスマートフォンから、Raspberry Piへアクセスしてストリーミングも可能のようです。MP4に変換すれば、ブラウザのみで見られるようですが、Raspberry Piへの負荷が大きそうです。閲覧用のPCやiPhoneにVLCをインストールして、無変換で視聴したほうが負荷は少ない感じでした。
録画機能についても試そうと思いますが、ストレージをどうするか考える必要がありそうです。
それと、使用したOSがRaspbianということで、32ビットのOS環境かと思います。Raspberry Pi 4は64ビットに対応していますので、まあ、本気の環境ではない感じです。
次は、録画と64ビットの地デジ環境について、なにか形にしてみようと思います。
外付けHDDを接続して、大容量・4番組同時録画のシステムを作ってみました。
Raspberry Pi地デジ関連記事
- 2020年最終版
- 32ビット検証
- ①機材編
- ②コマンドライン録画編
- ③ストリーミング編
- Raspberry Pi 4で地デジ4チャンネル同時録画するには
- Ubuntu 20.04.1添付のffpmegは使ってはダメよ検証
- DLNA配信
コメント
npm WARN tar ENOENT: no such file or directory, open ‘/home/pi/EPGStation/node_modules/.staging/mithril-60a9efff/.eslintignore’
npm ERR! Response timeout while trying to fetch https://registry.npmjs.org/load-json-file (over 30000ms)
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-04-25T01_16_37_392Z-debug.log
EPGのnpm install をしたらこのようなエラーが出てうまく設定できませんどうすればいいんですかね?
takesiさんはじめまして。
コメント頂きありがとうございます。
ふむふむ。ログを拝見すると、どうやら
‘/home/pi/EPGStation/node_modules/.staging/mithril-60a9efff/.eslintignore’
ファイルが無いエラーのようです。
「https://registry.npmjs.org/load-json-file」からファイルを取得しようとして、30000ms=30秒でタイムアウトしたようです。
何か通信障害の感じが致します。
いちど、EPGStationフォルダを削除して
rm -fr /home/pi/EPGStation
もう一度、git clonからやり直してみてはいかがでしょうか?
git clone https://github.com/l3tnun/EPGStation.git
cd EPGStation/
npm install