Raspberry Pi 4で64ビットMirakurun DVRチューナサーバを動かしてみました

Raspberry Pi地デジ関連記事



このような感じで、Raspberry Pi 4で64ビット(aarch64)OSを動かして、その上でMirakurun DVR Tuner Serverを動かしてみました。

Windows PCでVLCを実行、地デジ番組をストリーミング再生してみましたが、映像・音声・字幕ともに再生することができました。

64ビット環境での安定度は・・・Windows版VLCで再生した場合ですが、すこし不安定な印象もありました。後で別記事でご紹介するEPGStationを経由すると、安定して動作した感じです。

Raspberry Pi 64ビット環境版Mirakurunの構築手順を記録しておこうと思います。

ちなみに、Mirakurunの開発はdockerベースが主体になるそうです。この記事のインストール方法はdockerではありませんので念の為ご注意ください。


Raspberry Pi 4 Aarch64版Ubuntu 20.04.1のMirakurun構築手順

必要な機材

  1. Raspberry Pi 4本体
  2. Raspberry Pi 4用USB Type-C電源(5V 3A)
  3. microSDカードは、UHS-I U3 A2で容量64GBのものを使用しました。
  4. 地デジチューナーは、4番組同時録画可能なものを選択しました。
  5. B-CASカード
  6. B-CASカードリーダー

Mirakurunのみ動かす段階では、ストレージ(HDD)はまだ接続しません。別記事で、接続して録画設定したいと思います。今回はDVRチューナサーバー、基礎部分の構築になります。

Raspberry Pi 4 4GB版をアーマーケースで冷却

Raspberry Pi本体は、メモリー4GBのPi 4を使用しました。Pi 3・Pi 4は発熱量が大きいため、安定動作用にアーマーケースをお勧め致します。

地デジチューナー・B-CASカードリーダー等

ハードウェアは基本的にこちらの記事と同じ構成になりますが、今の所ストレージ(HDD)は取りつけずに、ストリーミングサーバとして構築します。

では具体的に構築に入りたいと思います。


Ubuntu 20.04.1のインストール

OSはUbuntu 20.04.1を使用させて頂きました。ダウンロードリンク・microSDカードへのインストール手順はこちらの記事になります。

USB HDD起動はこちらになります。←お勧め

固定IPアドレス設定

DVRチューナ・サーバとしてアクセスしやすいように、固定IPアドレスを割り当てました。

チューナ用ファームウェアのインストール

zip展開用のunzipをインストール後、/lib/firmwareディレクトリに地デジチューナ用のファームウェアをコピーします。

sudo apt install -y unzip
curl -O 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/

念の為Raspberry Piを再起動しました。(チューナのUSB端子抜き差しが面倒d

sudo reboot

B-CASカードリーダのインストール

B-CASカードが読み取れるようにpcsc-toolsをインストールします。pcsc_scanでB-CASカードが認識されているか確認します。

sudo apt install -y pcscd pcsc-tools libpcsclite-dev
sudo pcsc_scan

コマンド実行後、青い文字で「Japanese Chijou Digital B-CAS Card」と表示されれば正しく認識されています。

node.js Ver.14・pm2インストール

Mirakurunのこちら公式ページの手順に従ってインストールさせて頂きました。

最新のnode.jsに対応されているのですね。ふむふむ。

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo npm install pm2 -g

node.js、pm2ともに特に問題なくインストールできました。

dvbv5インストール

Mirakurunで使用するDVBツールをインストールしておきます。

sudo apt install -y 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をインストールしました。gcc等のビルドツールが必要なため、build-essentialをインストールしておきます。

sudo apt install -y build-essential
sudo npm install arib-b25-stream-test -g --unsafe

Mirakurunインストール

MirakurunのAdvancedインストールを行いました。

sudo npm install mirakurun -g --production
sudo mirakurun init # to install as service

チューナ設定

sudo mirakurun config tuners

4チャンネル同時録画可能なチューナを使用しましたので、4つ分の設定を追加しました。

- name: PX-S1UD_0
  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

- name: PX-S1UD_1
  types:
    - GR
  command: /usr/bin/dvbv5-zap -a 1 -c /usr/local/conf/dvbv5_channels_isdbt.conf -r -P <channel>
  dvbDevicePath: /dev/dvb/adapter1/dvr0
  decoder: arib-b25-stream-test
  isDisabled: false

- name: PX-S1UD_2
  types:
    - GR
  command: /usr/bin/dvbv5-zap -a 2 -c /usr/local/conf/dvbv5_channels_isdbt.conf -r -P <channel>
  dvbDevicePath: /dev/dvb/adapter2/dvr0
  decoder: arib-b25-stream-test
  isDisabled: false

- name: PX-S1UD_3
  types:
    - GR
  command: /usr/bin/dvbv5-zap -a 3 -c /usr/local/conf/dvbv5_channels_isdbt.conf -r -P <channel>
  dvbDevicePath: /dev/dvb/adapter3/dvr0
  decoder: arib-b25-stream-test
  isDisabled: false

チューナ設定後、Mirakurunを再起動しました。

sudo mirakurun restart

チャンネル設定

sudo curl -X PUT "http://localhost:40772/api/config/channels/scan"

APIでチャンネルのオートスキャンを行ってみましたが、問題なく設定できました。

オートスキャン後

再起動が必要、という表示が出ましたので、Mirakurunを再起動しました。

sudo mirakurun restart

Mirakurun設定確認

以上で、Mirakurunの基本的な設定が完了しました。

Webブラウザから、Raspberry Piの下記のURLへアクセスします。

http://<Raspberry PiのIPアドレス>:40772/

このような感じで、Mirakurunの設定ページが表示されました。

画面上部のStatus/Tuners, Events,Logs, Configメニューをクリックすると、イベントやログ、チューナやチャンネルの設定を確認することができます。

Config→チャンネルページを開くと、視聴可能なチャンネルを確認できます。この画面=餃子のまちの例ですが、TBSのチャンネルは15、テレビ朝日のチャンネルは17になります。次の動作確認で、このチャンネルの番号を使用します。

Mirakurun動作確認

WindowsやLinux PCでVLCを起動→メディア→ネットワークストリームを開くを選択します。URLを入力します。

http://<Raspberry PiのIPアドレス>:40772/api/channels/GR/<チャンネル番号>/stream/

<チャンネル番号>は、先程確認した番号を入力します。

Windows PCでこのような感じで映像が表示されてMirakurunの設定画面は、確かに該当のチャンネルをストリーミングしている表示がされています。

VLCプレイリスト

Mirakurunでストリーミング再生しやすいように、xspfプレイリストを作ってみました。

mirakurun.xspfというファイル名で保存して、vlcで開くとチャンネルを選択することができます。

餃子のまち向けですので、<Raspberry PiのIPアドレス>の部分とtrackタグ、titleタグとチャンネルの数字部分を変更して、お住いの地域向けにカスタマイズしてご利用ください。

<?xml version="1.0" encoding="UTF-8"?>
<playlist xmlns="http://xspf.org/ns/0/" xmlns:vlc="http://www.videolan.org/vlc/playlist/ns/0/" version="1">
  <title>プレイリスト</title>
  <trackList>
    <track>
      <title>テレビ東京</title>
      <location>http://<Raspberry PiのIPアドレス>:40772/api/channels/GR/18/stream/</location>
      <image>attachment://onid[7fe6]_channel_logo_id[1]q[5]</image>
      <extension application="http://www.videolan.org/vlc/playlist/0">
        <vlc:id>0</vlc:id>
      </extension>
    </track>
    <track>
      <title>TBS</title>
      <location>http://<Raspberry PiのIPアドレス>:40772/api/channels/GR/15/stream/</location>
      <image>attachment://onid[7fe6]_channel_logo_id[1]q[5]</image>
      <extension application="http://www.videolan.org/vlc/playlist/0">
        <vlc:id>0</vlc:id>
      </extension>
    </track>
    <track>
      <title>テレビ朝日</title>
      <location>http://<Raspberry PiのIPアドレス>:40772/api/channels/GR/17/stream/</location>
      <image>attachment://onid[7fe6]_channel_logo_id[1]q[5]</image>
      <extension application="http://www.videolan.org/vlc/playlist/0">
        <vlc:id>0</vlc:id>
      </extension>
    </track>
    <track>
      <title>とちぎテレビ</title>
      <location>http://<Raspberry PiのIPアドレス>:40772/api/channels/GR/29/stream/</location>
      <image>attachment://onid[7e37]_channel_logo_id[2]q[5]</image>
      <extension application="http://www.videolan.org/vlc/playlist/0">
        <vlc:id>1</vlc:id>
      </extension>
    </track>
    <track>
      <title>日テレ</title>
      <location>http://<Raspberry PiのIPアドレス>:40772/api/channels/GR/34/stream/</location>
      <image>attachment://onid[7fe2]_channel_logo_id[0]q[5]</image>
      <extension application="http://www.videolan.org/vlc/playlist/0">
        <vlc:id>2</vlc:id>
      </extension>
    </track>
    <track>
      <title>NHK総合</title>
      <location>http://<Raspberry PiのIPアドレス>:40772/api/channels/GR/47/stream/</location>
      <image>attachment://onid[7e30]_channel_logo_id[0]q[5]</image>
      <extension application="http://www.videolan.org/vlc/playlist/0">
        <vlc:id>3</vlc:id>
      </extension>
    </track>
    <track>
      <title>NHKEテレ</title>
      <location>http://<Raspberry PiのIPアドレス>:40772/api/channels/GR/39/stream/</location>
      <image>attachment://onid[7fe1]_channel_logo_id[8]q[5]</image>
      <extension application="http://www.videolan.org/vlc/playlist/0">
        <vlc:id>4</vlc:id>
      </extension>
    </track>
    <track>
      <title>フジテレビ</title>
      <location>http://<Raspberry PiのIPアドレス>:40772/api/channels/GR/35/stream/</location>
      <image>attachment://onid[7fe1]_channel_logo_id[8]q[5]</image>
      <extension application="http://www.videolan.org/vlc/playlist/0">
        <vlc:id>4</vlc:id>
      </extension>
    </track>
  </trackList>
  <extension application="http://www.videolan.org/vlc/playlist/0">
    <vlc:item tid="0"/>
    <vlc:item tid="1"/>
    <vlc:item tid="2"/>
    <vlc:item tid="3"/>
    <vlc:item tid="4"/>
    <vlc:item tid="5"/>
    <vlc:item tid="6"/>
    <vlc:item tid="7"/>
    <vlc:item tid="8"/>
  </extension>
</playlist>

ちなみに、4番組同時視聴が可能なチューナを使用ましたが、1番組のみ視聴している状態のRaspberry Piの負荷は?

このような感じで。0.24でした。

64ビット環境の影響でしょうか。かなり余裕な感じです。

VLCによる再生に限ってですが。残念ながら、20.9.3現在、私のおうちの環境では、動作が安定しているとは言えない状況です。番組を見ていると、たまにVLCが異常終了する場合があります。

64ビット環境でEPGStationを動かす記事を別途作成しようと思いますが、EPGStation経由で再生すると、安定している印象でした。続いてEPGStationをインストールしましょう。


Raspberry Pi地デジ関連記事

スポンサーリンク

フォローする

スポンサーリンク