🚀

Dockerで構築!ミニPC + PX-W3U4でお手軽自宅録画サーバー

に公開

はじめに

ミニPCとTVチューナーPX-W3U4を組み合わせれば、コンパクトなシステムでテレビ番組の視聴・録画環境を構築できます。さらに、Dockerを使えばサービスをコンテナで分離し、OS環境を汚さずに保守性の高い構成を実現可能です。本記事ではUbuntuとチューナードライバの導入から、MirakurunやEDCB、KonomiTVによる視聴・録画の手順までを一通り紹介します。

使うもの

Ubuntu 24.04 LTSをインストールする

ミニPCにUbuntu Desktop 24.04 LTSをインストールします。

Ubuntu公式サイトのダウンロードページからOSイメージをダウンロードし、RufusやbalenaEtcherでUSBメモリに書き込んでインストールメディアを作成します。
ミニPCをUSBメモリから起動させ、Ubuntuを立ち上げます。インストーラを使い、指示に従ってインストールすればOKです。

インストーラについては以下の記事が参考になります。

https://pc.watch.impress.co.jp/docs/column/ubuntu/1590461.html

インストール後、ホームディレクトリ直下のディレクトリ名が日本語になっているので、ターミナルに以下を入力して直します。

LANG=C xdg-user-dirs-gtk-update

上記コマンドを実行すると、「Update standard folders to current language?」というダイアログが表示されるので「Update Names」を選択してください。

また、お好みで設定からリモートログインを有効にします。

px4_drvをインストールする

チューナーのドライバとしてpx4_drvをインストールします。

カーネルモジュールとしてロードする際にKey was rejected by serviceと出てエラーになってしまうのでセキュアブートを無効にするか、自己証明書を作って設定します。

セキュアブートを無効にする場合、UEFIから設定する必要があります。
PC起動時にEscキー連打でUEFIに入れるのですが、以下のコマンドでも可能です。再起動後にUEFIに入ります。

sudo systemctl reboot --firmware-setup

UEFIに入ったら、SecurityタブのSecure BootからDisabledに変更します。

つづいて、以下のREADMEの「Debianパッケージを使用してインストール」に従ってpx4_drvをインストールします。

https://github.com/tsukumijima/px4_drv

カーネルモジュールがロードされていることを確認します。

$ lsmod | grep -e ^px4_drv
px4_drv               237568  0

デバイスが認識されることを確認します。

$ ls /dev/px4video*
/dev/px4video0  /dev/px4video1  /dev/px4video2  /dev/px4video3

Dockerをインストールする

PC内でDockerコンテナを立てるため、Docker Engineをインストールします。

以下のドキュメントに従ってインストールします。

https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository

nunawa/docker-dtv-serverを立ち上げる

今回、Mirakurun + EDCB + KonomiTVをDockerコンテナとして立ち上げるためのリポジトリを作ったのでそちらを使います。

https://github.com/nunawa/docker-dtv-server

Mirakurun、EDCB、KonomiTVはそれぞれ以下の役割を持っています。

  • Mirakurun
    • 複数のチューナーデバイスを管理し、放送波を受信・処理するソフトウェアです。他のソフトウェアがTVデータにアクセスするためのAPIを提供し、システム全体の基盤となります。
  • EDCB
    • 番組表(EPG)データの取得や、録画予約・録画実行を担当するソフトウェアです。Mirakurunからのストリームを受け取り、設定した条件に基づいて録画を行います。
  • KonomiTV
    • PCやスマートフォンからテレビ番組を視聴するためのWeb UIを提供するソフトウェアです。ニコニコ実況のコメント表示、Twitter連携、字幕・データ放送の表示、録画視聴などの機能を持っています。Mirakurun、EDCBと連携して動作します。

まずはGitHubからリポジトリをクローンします。

git clone https://github.com/nunawa/docker-dtv-server.git
cd docker-dtv-server

リポジトリのREADMEにあるGetting Startedセクションを参考に、各種コンフィグファイルを環境に合わせて設定します。

設定が完了したら以下のコマンドでDockerイメージをビルドし、コンテナを起動します。

docker compose up -d

EDCBのチャンネルスキャンに3、4分かかるので待ってからEDCBとKonomiTVにアクセスします。ホストPCでは、EDCBはlocalhost:5510、KonomiTVはmy.local.konomi.tv:7000からアクセスできます。

EDCBとKonomiTVを閲覧しているスクリーンショット

注意点

  • 残念ながら2025年3月現在、PX-W3U4の入手性がかなり悪くなっているので注意が必要です。新品だととても高いのでフリマサイトなどで中古品を探したほうがよさそうです。
  • AMD APUのミニPCならRadeon Software for Linuxのインストールを検討してください。ハードウェアエンコーディングやGPU温度・消費電力などの取得をするのに必要になります。
  • Ubuntu 24.04ではカーネルに入っているファームウェアバージョンなどの関係でKonomiTV + VCEEncCが動かないようなので注意が必要です。
  • 再起動後にpx4_drvがロードできていないことがあるので注意が必要です。もう一度再起動するか、sudo modprobe px4_drvでロードできます。
  • チューナープロセスが競合する場合があります。Mirakurunからプロセスを停止して開放を行ってください。

まとめ

本記事では、ミニPCとPX-W3U4を使ったDockerベースの自宅録画サーバー構築方法を紹介しました。

この構成の魅力は、コンパクトなハードウェアながら本格的な録画環境を実現し、Dockerによるコンテナ化で保守性を高められる点です。Mirakurun、EDCB、KonomiTVの組み合わせをDockerで立ち上げることによって、OSを汚さず快適な視聴・録画環境が構築できます。

チューナーの入手性などの課題はありますが、一度構築すれば長く使える実用的な環境になると思います。

Discussion