0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OECUAdvent Calendar 2024

Day 18

Proxmox VEでdocker-mirakc-konomitvを使ってテレビ視聴サーバーを構築する

Last updated at Posted at 2024-12-18

はじめに

docker-mirakc-konomitv について

docker-mirakc-konomitv は、Docker Compose を使って mirakcKonomiTV を簡単にセットアップできるようにしたものです。
本記事を執筆するにあたり、各プログラムのドキュメント等を参考に作成しました。
また、リポジトリの README.md は l3tnun/docker-mirakurun-epgstation を参考にさせていただきました。

mirakc について

mirakc とは、Rust言語で記述された Mirakurun クローンです。Raspberry Piのようなシングルボードコンピュータ(SBC)をターゲットデバイスとして、masnaga 氏によって開発されています。
詳細については、https://mirakc.github.io/dekiru-mirakc/v3/what.html をご覧ください。

Mirakurun は、地デジ・BS/CSチューナーで受信した信号をネットワーク上に共有することができるソフトウェアです。

KonomiTV について

KonomiTV とは、いろいろな場所とデバイスでテレビを快適に見られる、モダンな Web ベースのソフトウェアです。tsukumijima 氏によって開発されています。
現時点ではテレビをリアルタイムで視聴することしかできませんが、将来的には録画した番組を視聴できる機能も追加されるそうです。

仮想マシンのセットアップ

仮想マシンの作成・OSのインストールについては割愛させていただきます。

チューナー・ICカードリーダーのパススルー

チューナーとICカードリーダーを仮想マシンから使用するために、USBデバイスのパススルーを設定します。

tvq08uad.png

Docker のインストール

これ以降の作業は仮想マシン上で行うものとします。
Proxmox VE に直接 Docker をインストールしないでください!

以下のコマンドを実行することで、Docker と Docker Compose を簡単にインストールすることができます。

curl -fsSL https://get.docker.com | sh

ドライバのインストール

お使いのチューナーによって変わるため、詳細なインストール手順は割愛します。
今回は PX-W3PE5 を使用するため、以下のドライバをインストールしました。
https://github.com/tsukumijima/px4_drv

docker-mirakc-konomitv の導入

今回は、docker-mirakc-konomitv を使って mirakcKonomiTV をインストールします。

インストールスクリプトを実行

以下のコマンドでインストールスクリプトを実行します。

curl -sf https://raw.githubusercontent.com/heisannn/docker-mirakc-konomitv/main/setup.sh | sh -s

カレントディレクトリに docker-mirakc-konomitv フォルダが作成されるため、移動します。

cd docker-mirakc-konomitv

設定の変更など

docker-compose.yaml の編集

お使いのチューナーに合わせて、devices に列挙するデバイスを変更してください。

./docker-compose.yaml
services:
  mirakc:
    image: mirakc/mirakc:alpine
    container_name: mirakc
    init: true
    restart: unless-stopped
    devices:
      # チューナーコマンドで利用するデバイスファイルを列挙
      - /dev/px4video0
      - /dev/px4video1
      - /dev/px4video2
      - /dev/px4video3
    # 以下略

mirakc の設定

チューナーの設定

チューナー設定・できるmirakc を参考に、お使いのチューナーに合わせて設定してください。

ここでは、PX-W3PE5 を使用する際の設定を載せておきます。

./mirakc/config.yml
tuners:
  - name: GR0
    types: [GR]
    command: recpt1 --device /dev/px4video2 {{{channel}}} - -
  - name: GR1
    types: [GR]
    command: recpt1 --device /dev/px4video3 {{{channel}}} - -
  - name: BSCS0
    types: [BS, CS]
    command: recpt1 --device /dev/px4video0 {{{channel}}} - -
  - name: BSCS1
    types: [BS, CS]
    command: recpt1 --device /dev/px4video1 {{{channel}}} - -
チャンネルの設定

mirakc には、利用可能なチャンネルをスキャンする機能は備わっていません。

地上デジタル放送 チャンネル表 などを参考に手動で設定することもできますが、今回は uru2/scan_ch_mirakc_docker.sh を使って、チャンネルスキャンをしてみます。

スクリプトをダウンロードします。

wget https://gist.githubusercontent.com/uru2/7f738d864c2789b35c35e6bb7be9d0cb/raw/a113304cd4d30eacc154f88aa61704e5078521eb/scan_ch_mirakc_docker.sh

お使いのチューナーによってはスクリプトを編集する必要があります。必要に応じて作者さんのコメントを参考に編集してください。

また、スクリプトには jq が使われているため、インストールします。

sudo apt install -y jq

今回は PLEX の PX-W3PE5 を使用するため、編集は不要です。そのまま実行します。

chmod +x ./scan_ch_mirakc_docker.sh
./scan_ch_mirakc_docker.sh

実行には30分程度かかるため、気長に待ちましょう。

チャンネルスキャンが終わると mirakc_channels.yml が生成されるので、その内容を mirakc/config.yml に追記します。

cat mirakc_channels.yml >> mirakc/config.yml

KonomiTV の設定

必要な個所のみを抜粋して掲載します。

config.yaml の編集
./KonomiTV/config.yaml
# ================================== 全般の設定 ==================================
general:

    # 利用するバックエンド
    # EDCB・Mirakurun のいずれかを選択してください。
    # バックエンドに Mirakurun が選択されているときは、録画予約機能は利用できません。
-   backend: 'EDCB'
+   backend: 'Mirakurun'
docker-compose.yaml の編集

今回はGPUをパススルーしていないため、以下の項目をコメントアウトします。

./KonomiTV/docker-compose.yaml
services:
  konomitv:
    # ==================== ↓↓↓↓↓ ここからユーザー設定 ↓↓↓↓↓ ====================

    # QSVEncC / VCEEncC を利用する (Intel Graphics / AMD GPU にアクセスする) ために必要な設定
    # VCEEncC (AMD GPU) を利用するには、別途 AMDGPU-PRO Driver のインストールが必要です。
    # GPU が1個も搭載されていない (/dev/dri/ 以下のデバイスファイルが存在しない) 特殊な環境では、
    # コメントアウトしてこの設定を無効にしないと、KonomiTV サーバーを起動できなくなります。
-   devices:
-     - '/dev/dri/:/dev/dri/'
+   # devices:
+     # - '/dev/dri/:/dev/dri/'

起動する

以下のコマンドを実行してコンテナ群を立ち上げます。
初回起動時に各コンテナのビルドが走るため、気長に待ちます。

sudo docker compose up -d

起動ができたら、KonomiTVにアクセスしてみます。

私の環境だと、URLは https://192-168-3-170.local.konomi.tv:7000/ となります。

KonomiTVでは、自己署名証明書のインストールなしで HTTPS でのアクセスを実現するために特殊な仕組みを使っています。詳しくは、https://aa-bb-cc-dd.local.konomi.tv:7000/ の URL について をご覧ください。

アクセスしてみると、こんな感じの画面になります。

cXtxrbc4.png

視聴可能なチャンネルがありません。 と表示されていますが、これは現在 mirakc が EPGデータ を取得している途中だからです。
取得が終わるまで気長に待ちましょう。

最後に

B25 デコードについて

mirakc には、B25 デコードを行う機能がありません。そのため、フィルター設定にて外部サーバーでTSストリームを処理するようにし、その結果を mirakc に返却してもらって出力しています。

docker-mirakc-konomitv では、tsdサーバーの詳しい話・できるmirakc を参考に、b25 コンテナと bcas コンテナを使って B25 デコードを実現しています。
b25 コンテナでは、tsukumijima/libaribb25 が動いています。

詳細については、フィルター設定・できるmirakc などをご覧ください。

参考資料

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?