チューナー設定
チャンネル設定と同様に,チューナー設定もMirakurunと一定の互換性があります.
Mirakurunのtuners.yml
の例:
- name: gr1
types: [GR]
command: recpt1 --device /dev/px4video2 <channel> - -
decoder: /usr/local/bin/decoder
mirakcのconfig.yml
の例:
tuners:
- name: gr1
types: [GR]
command: recpt1 --device /dev/px4video2 {{{channel}}} - -
ここで,tuners[].command
にはテンプレート文字列が指定されており,{{{
と}}}
(Triple Mustache)または{{
と}}
(Double Mustache)で囲われた識別子(上記の例ではchannel
)は,テンプレートパラメーターと呼ばれる特別な変数です.mirakcは,テンプレート言語としてMustacheを採用しており,リスト型のテンプレートパラメーターの展開もサポートしています.tuners[].command
以外にもいくつかの設定項目でテンプレート文字列が指定可能で,設定項目毎に使用可能なテンプレートパラメーターは異なります.
Double MustacheとTriple Mustacheでは動作が異なる点に注意してください. 詳細はこちらに書かれています.
mirakcのチューナー設定にはdecoder
プロパティは存在しません.その代わりに,後述するフィルター設定を使用します.
Dockerを使用している場合,以下のようにdocker-compose.yml
に使用するデバイスファイルを記述する必要があります.
services:
mirakc:
image: mirakc/mirakc:alpine
container_name: mirakc
init: true
restart: unless-stopped
# `devices`を追加
devices:
# チューナーコマンドで利用するデバイスファイルを列挙
- /dev/px4video2
ports:
- 40772:40772
volumes:
- ./config.yml:/etc/mirakc/config.yml:ro
environment:
TZ: Asia/Tokyo
RUST_LOG: info
ここまで設定すると,EPGデータの取得が可能になります.動くか試してみましょう.
# mirakcコンテナーの起動(Ctrl+Cで停止)
$ sudo docker compose up
...
... scan-services: performing...
...
... scan-services: Done successfully, 13s 714ms 157us 639ns elapsed
...
^CGracefully stopping... (press Ctrl+C again to force)
Stopping mirakc ... done
ここで,各行の始めの...
は実際に表示されるテキストではなく,ログの省略を意味します.
たくさんのログが表示されますが,正しく動作していれば,上記のようなログを見つけることができます.
既に稼働しているMirakurun/mirakcをチューナーとして利用する
ちょっとした動作確認のために,わざわざチューナーのデバイスドライバーをインストールするのは面倒な作業です.このような場合には,以下のような設定を行い,既に稼働しているMirakurunまたはmirakcをチューナーとして利用することをお勧めします(同様のことはMirakurunでも可能です).
tuners:
- name: upstream
types: [GR, BS]
command: >-
curl -s http://upstream:40772/api/channels/{{{channel_type}}}/{{{channel}}}/stream?decode=0
上記のhttp://upstream:40772
の部分は接続先のMirakurunまたはmirakcサーバーのURL
に置き換えてください.
Mirakurunとは異なり,mirakcの/api/channels/{{{channel_type}}}/{{{channel}}}/stream?decode=0
APIは,チューナーからの出力をそのまま送出します.NULLパケットすらドロップしません.そのため,TSパケットを処理するツールのテストなどにも使えて便利です.
curl -s http://mirakc:40772/api/channels/GR/27/stream?decode=0 | \
MIRAKC_ARIB_LOG=debug mirakc-arib scan-services
設定例
一般的に利用されているチューナーコマンドに対する設定例を以下に記載します.
# typesプロパティ及びデバイスファイルのパスなどは,自分の環境に合わせて書き換え
# る必要があります
tuners:
- name: recpt1
types: [GR]
command: >-
recpt1 --device /path/to/dev {{{channel}}} - -
- name: recdvb
types: [GR]
command: >-
recdvb --dev 1 {{{channel}}} - -
- name: dvbv5-zap
types: [GR]
command: >-
dvbv5-zap -a 0 -c /path/to/conf -r -P {{{channel}}} -o -