Raspberry Pi 4で地デジを視聴するには ③ストリーミング編

Raspberry Pi地デジ関連記事


地デジチューナーを取り付けた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をインストールしました。

  1. node.js、PM2インストール
  2. Mirakurunインストール
  3. dvbv5インストール
  4. 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地デジ関連記事

スポンサーリンク

フォローする

スポンサーリンク

コメント

  1. takesi より:

    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 をしたらこのようなエラーが出てうまく設定できませんどうすればいいんですかね?

    • hide より:

      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