誰でもできる!LinuxとPX-W3U4で録画サーバを構築する方法~Dockerで録画サーバを構築しよう(Ubuntu18.04LTS)~

自宅サーバー

★(2020.08.30 追記):現行のEPGStation&Mirakurunの構築手順を以下の記事にまとめました。

これから録画サーバを構築される方はぜひ以下の記事も参考にしてください。

自宅サーバの環境(ubuntu18.04LTS+px-w3u4)にDockerを使って録画システム構築しましたので、その手順を紹介します。「PX-W3U4」「Dockerを使って」というところがこの記事のミソなので、サーバ環境を汚さずにPX-W3U4 で録画システムを構築したい場合にぜひ参考にしてください。
もちろん、これから録画サーバを構築する方にも参考になると思います。

Dockerではなく、Linux(ホスト)上に直接構築したい方は以下の記事をご参考にしてみてください

録画番組を快適に視聴する方法について、以下の記事で紹介しています。よろしければ参考にしてみてください。

サーバ環境

説明の前提として、自宅サーバの環境(HW/SW)を記します。外付けHDD等は省略していますが、録画システムの構築に関する条件としては下記のとおりです。

ハードウェア

  • Linuxサーバ
    • ECS LIVA Z(n4200)
      • CPU n4200 (QSV/vaapiに対応)
      • eMMC 64GB
      • 拡張ストレージ SSD 120GB(録画領域。外付けHDDでも可)
      • メモリ 16GB(4GBあれば十分録画可能です。)
  • 地デジ・BS/CSチューナー
    • PLEX px-w3u4
      • 4番組同時録画(地デジ×2、BS/CS×2)が可能です(8番組同時録画可能なプレクス社のpx-w3q4でもOKです)
  • B-cas対応 ICカードリーダー
    • NTTコミュニケーションズ SCR3310-NTTCom
      • Linuxだとpx-w3u4内臓のカードリーダーが使えないので別途カードリーダを準備します。

上記の不足するものがあれば、事前に購入してください。チューナーはプレックス社製のチューナーならどれでもOKです。

以下の製品に対応しています。

<Plexチューナー>
・PX-Q3PE
・PX-W3PE4
・PX-Q3U4
・PX-W3U4


<e-Better>
・DTV02-1T1S-U (実験的)

株式会社プレクス パソコン・パソコン周辺機器メーカー PLEX

本手順は、px-w3u4(USB接続タイプ)を前提としています。

また、基本的に最近のLinuxサーバであれば問題ないです。ただ、Raspberry pi 3B+だと性能的に動作が安定しませんでした(rpi4は未検証)。また、以前Tinker board Sで録画サーバを構築しようとしましたが2番組以上の同時録画でノイズが出てしまいました。常時起動の録画サーバにする場合は、性能的に余裕を持たせたサーバを使うことをオススメします。

未検証ですがRaspberry pi 4で構築できるという報告も多数あがっています。

Raspberry Pi 4 Model B /ラズベリーパイ4B(8GB RAM)技適マーク付/MicroSDHCカード128GB 一式セット

以前、録画サーバとして使っていたECS LIVE STATION LS-4-64は録画サーバとして非常に安定して動作していました。

私と同じ環境で構築される場合、構築で躓いた際にサポートできると思います。メモリ8GB以上を選択すればエンコード等しても性能的に問題はないと思います。Windows10マシンですが、私はUbuntuを上書きインストールして自宅サーバを構築しています。

ECS Windows 10 Home Sモードを搭載した小型デスクトップパソコン LIVAZ-16/120-W10S(N4200)TS メモリ16GB ストレージ120GB+64GB

PLEX USB接続 地上デジタル・BS・CS対応TVチューナー PX-W3U4

NTTコミュニケーションズ 接触型ICカードリーダー・ライター e-Tax Win&Mac対応 SCR3310-NTTCom

ソフトウェア

  • OS
    • ubuntu 18.04 LTS
      • raspbian等、Debian系のOSなら同じ手順で実施できると思います。
      • CentOS等、Redhat系でもドライバ以外のdocker構築手順は同じです。
  • ミドルウェア
    • Docker
    • docker-compose
    • git
    • samba
      • 必須ではないですが、あった方が便利です。

参考記事

Dockerとdocker-composeとgitをインストールしていない場合は、以下の記事を参考にして事前にインストールしておいてください。

sambaは録画システム構築に必須ではありませんが、Windowsのエクスプローラから参照できた方が便利かと思いますので、事前に入れておいた方が良いです。dockerを使ったsambaの構築方法は以下の記事を参考にしてください。

外出中にスマホから録画予約をしたい場合は以下の記事が参考になるかもしれません。

構築手順

Dockerを使ってのシステム構築ですがドライバ関連はホスト側にインストールする必要があります。まずは以下を順番に実施してください。

なお、Ubuntuの場合はSELinuxの無効化は不要です。

★これから構築を考えている方は、現行のMirakurun/EPGStationを使った構築手順を解説している以下の記事も参考にしてください。

aptアップデート

aptアップデートを実施します。

タイムゾーンの変更

タイムゾーンの変更。時刻を日本時間にします。

b-casカードリーダーの設定

ICカードリーダーのドライバをインスト-ル

チューナードライバの設定

nns779さんが開発されたpx4_drv(PLEX PX-W3U4/Q3U4/W3PE4/Q3PE4 用の非公式版Linuxドライバ)をインストールします。

GitHub - nns779/px4_drv: Unofficial Linux driver for PLEX PX4/PX5/PX-MLT series ISDB-T/S receivers (not V4L-DVB)
Unofficial Linux driver for PLEX PX4/PX5/PX-MLT series ISDB-T/S receivers (not V4L-DVB) - GitHub - nns779/px4_drv: Unofficial Linux driver for PLEX PX4/PX5/PX-M...

インストールに必要なファイルは~/srcに作成します。

ドライバ再インストール時

再インストールの場合は以下も実施します。

DKMSのインストール

DKMSによるドライバのインストール

ドライバアンインストール

参考ですが、px4_drvとDKMSのアンインストール方法は以下を実施します。

ドライバのインストールは以上です。

gitリポジトリのダウンロード

録画管理ソフトはChinachuやEPGStationやTvRock等いくつかありますが、今回はLinuxフレンドリーかつ安定していて、かつ現在でも開発が活発なMirakurunとEPGStationをdockerで構築します。Dockerfile、docker-compose.yml等ファイルの一式は、MirakurunとEPGStation開発者のl3tnunさんと kanreisaさんがgitにdocker-mirakurun-epgstationをアップロードしてくださっていますので、ありがたく使わせていただきます。

GitHub - l3tnun/docker-mirakurun-epgstation: Mirakurun + EPGStation on Docker
Mirakurun + EPGStation on Docker. Contribute to l3tnun/docker-mirakurun-epgstation development by creating an account on GitHub.

B-CAS 用に利用するスマートカードリーダーはMirakurunコンテナ内で管理しますのでホストマシン上のpcscdは停止してください

gitレポジトリをDLします。dockerプロジェクト名はそのままdocker-mirakurun-epgstationとなります。

docker-compose.yml

オフィシャルなdocker-composeファイルの一式は、 PT3用となっているため、そのままでは使えません。なので、docker-compose.ymlを修正します。

オリジナルからの変更点は以下の部分です。一部サーバ環境に合わせて修正してください。

  • 20~23行目:px-w3u4を利用するためデバイスを共有します。
  • 24行目:カードリーダが刺さっているUSBポートの場所を指定してください。
    以下のコマンドでカードリーダーの場所を探します。

上記のBusとDeviceのIDを/dev/bus/usb/00x/00xの形式で記述します(00xの部分を修正)。

  • 25、39、63行目:ホスト再起動時に自動で起動させるため、restart:alwaysにしておきます。
  • 53行目:録画ファイルの出力先ディレクトリ(./path/to/storage)を指定します。 環境に合わせて保存先を修正してください。

★現行のMirakurun/EPGStationで構築する場合は以下の記事を参考にしてください。

tuners.yml

mirakurunがpx-w3u4を使うように、設定ファイル(tuners.yml)を作成しておきます。px-w3u4のチューナ数は地上波×2、BS/CS×2となります。

tuners.ymlは修正箇所は特にないので、そのまま上記の内容をコピペでOKです。

channels.yml

以下は関東一円で地デジ番組を視聴する場合のチャンネル情報です。 mirakurunが番組情報を取得する際に使う、チャンネル情報を設定します。地上波は地域に合わせて記述してください。 地上波に関しては、mirakurunにチャンネルスキャン機能があるので、記述しなくても後で設定可能です(後述)。

BS/CSチャンネル情報は、自身が視聴できる番組だけ残して保存します(視聴できないチャンネルを残すと、番組表が見づらくなります)。

config.json

EpgStationのコンフィグファイルを作成します。

コンフィグは適宜修正してください。

https://github.com/l3tnun/EPGStation/blob/master/doc/conf-manual.md

デフォルトのコンフィグとして、用意されているサンプルを使います。

録画ファイルの保存先は事前に修正しておいた方がいいかもしれません。

コンテナ起動

いよいよEPGStationを起動させます。

以下のコマンドでコンテナを起動します。

buildに時間がかかる(~1h)ので、上記コマンドをワンライナーで実行して、コーヒーでも淹れて一息着きましょう。

プロンプトが返ってきても、MirakurunとEPGStationが番組表を読み込むまでは利用できないので、やっぱりコーヒー淹れてしばらく待ちます。

MirakurunのEPGデータ取得状況は以下のURLから参照できます。

URL:http://<IPaddress>:40772/api/channels

— 1時間後・・・ —

以下のURLからEPGStationを開いてみます。

URL: http://<IPaddress>:8888

メニューから「番組表(GR)」を開いて、以下のように番組表が見えれば成功です。

EPGStationは非常にUIが使いやすいので、慣れて覚えましょう。ルールを作成しておけばあとは勝手に録画やエンコードしてくれます。同じネットワーク内であればスマホからでもアクセスできるので、録画予約や視聴も簡単にできます。

関東圏以外にお住いの方は、必要に応じてチャンネルスキャンを実施してください(地上波のみ)。

外出先からの録画予約

ここまでできれば、外出時にも録画予約とか録画視聴したいですよね。間違っても8888番ポートをインターネット向けに開放するのはやめましょう。VPNの利用をオススメします。

まとめ

LinuxとPX-W3U4でDocker環境に録画サーバを構築する方法を紹介しました。
今回、PT3ではなくPX-W3U4を使って録画システムを構築できました。また、 dockerで構築することで自宅サーバ環境を汚さずに録画システムを構築できます。この方法なら、途中で失敗しても簡単にやり直しすることができますし、再現性が高いのでサーバ環境が変わっても簡単に導入することができます。

★現行のMirakurun/EPGStationで構築する場合は以下の記事を参考にしてください。。

これでまた便利になりましたね!

録画番組を快適に視聴する方法について、以下の記事で紹介しています。よろしければ参考にしてみてください。

Dockerを使わずに録画サーバを構築したい方は以下の記事を参考にしてください。

他にもいろいろなサービス導入方法をご紹介しています。よかったら参考にしてください。

ECS Windows 10 Home Sモードを搭載した小型デスクトップパソコン LIVAZ-16/120-W10S(N4200)TS メモリ16GB ストレージ120GB+64GB

PLEX USB接続 地上デジタル・BS・CS対応TVチューナー PX-W3U4

NTTコミュニケーションズ 接触型ICカードリーダー・ライター e-Tax Win&Mac対応 SCR3310-NTTCom

コメント

  1. TH より:

    はじめまして。
    現在、こちらのページを参考に録画環境を構築中のTHと申します。

    ハードウェアはECS LIVA Z(n4200)、PX-W3U4、SCR3310v2.0環境で、当方CentOS7.8にて構築を進めております。
    Linux初級者であまり難しいことは分からず恐縮ですが、
    gitレポジトリのDLのところまでは特に問題なく進められたと思っております。

    ただ、現在gitファイル等のバージョンが上がっているためか、docker-compose.ymlやtuners.ymlファイル等、ページに公開されている内容と異なる箇所が多数あり、当方のチューナー設定がうまく行えていないようでローカルPCのブラウザからはアクセス可能なもののEPGStationの番組表が全く表示されない状況です。

    少し調べたところ、録画コマンドがrecpt1→dvbv5-zapに変更になっているようで、また、こちらのページを参考にtuners.ymlファイルの中身をそのままコピーして試してみても、コンテナがrecpt1コマンドを認識していないため正常に番組情報が受信できてないように見えます。

    こちら、どのような設定を行えば解決するものかお分かりになりますでしょうか。
    お手数ですがよろしくお願いいたします。

    • こもね より:

      >THさん
      この記事を参考にしていただいてありがとうございます。

      EPGStationをどのDockerfileで構築されたか分からないのですが、
      この記事を参考にして、コンテナがrecpt1コマンドを認識していないことが原因であれば
      mirakurunのコンテナ内でrecpt1を(再)インストールしてみてください。

      あるいは、mirakurunのチューナー設定(tuners.yml)のcommand部分を
      recpt1ではなくdvbv5-zapに修正してみると動くと思います。
      (dvbv5-zapのコマンド引数も併せて修正してください)
      ただし、この場合はDVBドライバがチューナを認識している必要がありますので、
      ホスト側でデバイスを確認しdocker-composeのdevice部分を修正してください。

      EPGStationもMirakurunもリポジトリが更新されていますね。
      https://medium.com/chinachu/mirakurun-3-1-0-8d51a73475de
      時間があれば最新のバージョンで録画環境を構築する手順を記事にしてみたいと思います(需要があればですが・・・)。

      • TH より:

        >こもね様
        ご確認ありがとうございました。

        mirakurunのコンテナ内に入り、recpt1のインストールを行ったところ無事解決いたしました。番組表も正常に表示、録画できるようになりました。
        PX-W3U4利用時のdvbv5-zapコマンドの設定方法(設定ファイルの具体的な記述)が良くわからなかったため、今回はrecpt1にて進めました。

        丁寧で分かりやすい記事となってますので、非常に参考になりました。
        ありがとうございました、引き続きよろしくお願いいたします。

  2. こもね より:

    >THさん
    うまく行って何よりです。

    >今回はrecpt1にて進めました。

    その対応で正解かと思います。

    EPGStationのgitリポジトリが更新されたことを受けて、
    gitでクローンするブランチを指定するよう記事を修正しました。

    >> git clone https://github.com/l3tnun/docker-mirakurun-epgstation -b vaapi

    ご指摘ありがとうございました:)

    ちなみに、LIVAZ n4200を使っているなら上記のブランチ(vaapi)で構築したほうがいいかもしれません。
    この記事の手順通りに構築できるはずです。
    エンコードも速いですよ~

タイトルとURLをコピーしました