Sign inSign up

workdatahub/test-simple-mirakc

By workdatahub

•Updated over 6 years ago

Image
0

212

workdatahub/test-simple-mirakc repository overview

⁠MirakcをDockerで使ってみた

Mirakcをdocker上に構築中。 未完成docker

現在出来るもの

  • EPGStationから番組表の取得
  • VLC等からのhttpストリームによる視聴
  • BonDriver_mirackを使ったWindows TVTestからの視聴

現在出来ないもの

  • EPGStationからの録画
  • EPGStationからのライブ視聴
    何かフィルターとか追加と設定しないといけないような気がする。 mirakcのドキュメントを見ながらやっているが、まだ動きそうにない。

⁠使い方

ホスト側でチューナーのドライバとカードリーダー(pcscd)は用意されているものとする。ここではチューナーにPX-W3U4を使い、カードリーダーは外付けを使ってシステムを構築したやり方を説明。

 

⁠Dockerボリュームの準備

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

 

⁠mirakc起動

下記の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ファイルに設定したデバイスファイルの名称]

 

⁠mirakc 停止

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=''
⁠VLC等からの視聴テスト

地上波放送

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

Tag summary

Content type

Image

Digest

Size

9.7 MB

Last updated

over 6 years ago

docker pull workdatahub/test-simple-mirakc