はじめに
docker-mirakc-konomitv について
docker-mirakc-konomitv は、Docker Compose を使って mirakc と KonomiTV を簡単にセットアップできるようにしたものです。
本記事を執筆するにあたり、各プログラムのドキュメント等を参考に作成しました。
また、リポジトリの 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デバイスのパススルーを設定します。
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 を使って mirakc と KonomiTV をインストールします。
インストールスクリプトを実行
以下のコマンドでインストールスクリプトを実行します。
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
に列挙するデバイスを変更してください。
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 を使用する際の設定を載せておきます。
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 の編集
# ================================== 全般の設定 ==================================
general:
# 利用するバックエンド
# EDCB・Mirakurun のいずれかを選択してください。
# バックエンドに Mirakurun が選択されているときは、録画予約機能は利用できません。
- backend: 'EDCB'
+ backend: 'Mirakurun'
docker-compose.yaml の編集
今回はGPUをパススルーしていないため、以下の項目をコメントアウトします。
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 について をご覧ください。
アクセスしてみると、こんな感じの画面になります。
視聴可能なチャンネルがありません。
と表示されていますが、これは現在 mirakc が EPGデータ を取得している途中だからです。
取得が終わるまで気長に待ちましょう。
最後に
B25 デコードについて
mirakc には、B25 デコードを行う機能がありません。そのため、フィルター設定にて外部サーバーでTSストリームを処理するようにし、その結果を mirakc に返却してもらって出力しています。
docker-mirakc-konomitv では、tsdサーバーの詳しい話・できるmirakc を参考に、b25
コンテナと bcas
コンテナを使って B25 デコードを実現しています。
b25
コンテナでは、tsukumijima/libaribb25 が動いています。
詳細については、フィルター設定・できるmirakc などをご覧ください。