Mirakcをdocker上に構築中。 未完成docker
現在出来るもの
現在出来ないもの
ホスト側でチューナーのドライバとカードリーダー(pcscd)は用意されているものとする。ここではチューナーにPX-W3U4を使い、カードリーダーは外付けを使ってシステムを構築したやり方を説明。
dockerのコンテナを起動後終了してもEPGデータが残るように、Dockerボリュームを作成する
docker volume create mirakc_epg
Dockerボリュームが必要なくなった時には、下記コマンドで削除する。
docker volume rm mirakc_epg
コンテナ実行前に次の3つのファイルを同じディレクトリ上に用意する。
config.yml
mirakurun.openapi.json
start
config.ymlとmirakurun.openapi.jsonはmirakcの説明を探して読んで作成する。 mirakcが起動する前に実行する"start"というファイル名でスクリプトを作成する。内容は通常「空」で良いが内部のライブラリを置き換えたい場合等に下記のような内容でスクリプトを作成する。作成したstartスクリプトには "chmod +x start" で実行権限を付けておく。下記のスクリプトの場合に必要なライブラリファイルは上記3つのファイルと同じディレクトリに配置する。
#!/bin/sh
if [ -e /etc/mirakc/libpcsclite.so.1.0.0 ]; then
cp /etc/mirakc/libpcsclite.so.1.0.0 /usr/lib/
fi
下記のdocker runで起動するとホスト側の指定ディレクトリ(ここではホストの/etc/mirakc)がコンテナ内に/etc/mirakcとしてマウントされ、最初に/etc/mirakc/startスクリプトが実行される。 次にコンテナ内でmirakcが起動してコンテナ内の/etc/mirakc/config.ymlファイルとコンテナ内の/etc/mirakc/mirakurun.openapi.jsonが利用される。
docker run --rm --init \
--name mirackc \
-v /var/run:/var/run \
-p 40772:40772 \
-v /etc/mirakc:/etc/mirakc \
-v mirakc_epg:/var/lib/mirakc/epg \
--device=/dev/px4video0:/dev/video0 \
--device=/dev/px4video1:/dev/video1 \
--device=/dev/px4video2:/dev/video2 \
--device=/dev/px4video3:/dev/video3 \
workdatahub/test-simple-mirakc
-v /var/run:/var/run
スマートカードリーダー(B-CASカード)のサーバーpcscdとの通信の為と、
EPGStationとの通信の為のソケットファイルに必要
-p 40772:40772
mirakcにアクセスするポート番号
-v /etc/mirakc:/etc/mirakc
ホストのディレクトリをコンテナ内の/etc/mirakcディレクトリにマウントする。
-v [指定ディレクトリ]:/etc/mirakc
--device=/dev/px4video0:/dev/video0
チューナーのデバイスファイルをコンテナからアクセス可能にする。
--device=[ホスト上のデバイスファイルの名称]:[config.ymlファイルに設定したデバイスファイルの名称]
docker container stop [CONTAINER ID]
-it,-eオプションと/bin/shを付けて起動する。この起動を行う場合/etc/mirakc/startスクリプトは実行されない。
docker run -it --rm --init \
--name mirackc \
-v /var/run:/var/run \
-p 40772:40772 \
-v /etc/mirakc:/etc/mirakc \
-v mirakc_epg:/var/lib/mirakc/epg \
--device=/dev/px4video0:/dev/video0 \
--device=/dev/px4video1:/dev/video1 \
--device=/dev/px4video2:/dev/video2 \
--device=/dev/px4video3:/dev/video3 \
-e RUST_LOG=info,mirakc=debug \
workdatahub/test-simple-mirakc /bin/sh
シェルで起動した際にコンテナ内でmirakcを起動する場合
/etc/mirakc/start
mirakc
EPG関連ファイルの確認
ls -l /var/lib/mirakc/epg
録画コマンドのテスト
recpt1 --b25 --strip 22 10 /root/test.ts --device /dev/video2
フィルター等の外部プログラムが stderr に出力するログを確認したい場合は、環境変数 MIRAKC_DEBUG_CHILD_PROCESS を変更
export MIRAKC_DEBUG_CHILD_PROCESS=''
地上波放送
http://[PCのIPアドレス]:40772/api/channels/GR/[チャンネル]/stream
http://192.168.11.7:40772/api/channels/GR/31/stream
BS放送
http://[PCのIPアドレス]:40772/api/channels/BS/[config,ymlのchannel名]/services/[service ID]/stream
NHK BSプレミアムの場合
http://192.168.11.7:40772/api/channels/BS/BS03_1/services/103/stream
CS放送
http://[PCのIPアドレス]:40772/api/channels/CS/[config,ymlのchannel名]/services/[service ID]/stream
ファミリー劇場の場合
http://192.168.11.7:40772/api/channels/CS/CS14/services/293/stream
Content type
Image
Digest
Size
9.7 MB
Last updated
over 6 years ago
docker pull workdatahub/test-simple-mirakc