Home

Awesome

web-bml

Webブラウザで動作するデータ放送ブラウザ(BMLブラウザ)

デモ https://otya128.github.io/web-bml

screenshot

動作環境

使い方

git clone --recursiveするかサブモジュールを初期化

git submodule init
git submodule update

Mirakurunからの放送、EPGStationからの録画または引数に与えたファイルを再生できます。

実行方法

yarn workspace @chinachu/aribts build
yarn build
yarn start [input.ts]

localhost:23234

実行方法(コンテナ)

docker build -t web-bml .
docker run --rm --name web-bml -e MIRAK_URL=http://localhost:40772 -e EPG_URL=http://localhost:8888 -p 23234:23234 web-bml

ファイルを試す場合:

docker run --rm --name web-bml --mount "type=bind,source=PATH-TO-TS.ts,target=/app/input.ts,readonly" -e INPUT_FILE=input.ts -p 23234:23234 web-bml

MirakurunとEPGStationが既にコンテナで動いている場合:

docker run --rm --name web-bml --net=host -e MIRAK_URL=http://localhost:40772 -e EPG_URL=http://localhost:8888 web-bml
docker run --rm --name web-bml --net=xxxx -e MIRAK_URL=http://mirakurun:40772 -e EPG_URL=http://epgstation:8888 -p 23234:23234 web-bml

動画形式

null以外はffmpegが必須

?format=...&demultiplexServiceId=...&seek=bytes

設定

環境変数か.envファイルに以下のように記述

MIRAK_URL=http://localhost:30772/

MIRAK_URL

MirakurunのURL

デフォルト値 http://localhost:40772/

EPG_URL

EPGStationのURL

デフォルト値 http://localhost:8888/

FFMPEG

ffmpegの実行ファイル

デフォルト値 ffmpeg

FFMPEG_OUTPUT

1であればffmpegの標準エラー出力をリダイレクト

デフォルト値 0

HLS_DIR

HLSを使う場合の一時出力先

デフォルト値 ./hls

PORT

待ち受けるポート番号

デフォルト値 23234

HOST

待ち受けるホスト

デフォルト値 localhost

INPUT_FILE

入力ファイル

フォント

丸ゴシック用にKosugiMaru(モトヤLマルベリ3等幅)、ゴシック用にKosugi(モトヤLシーダ3等幅)がGitHubからダウンロードされ使われます。

制約が厳しいBMLではスペースによるレイアウトがよく使われるためフォントは仕様で規定されている通り等幅であることが必須です。 (UnicodeではなくJISコード基準なので記号なども全角幅であるべき)

外字はOpenTypeに変換されて文字として表示されますがgrayscale-color-indexは無視されます。 Chromium系のブラウザであれば定義通りフォントの大きさに合わせた外字が表示されます。 Firefoxであれば一番大きいサイズが縮小されて表示されます。

実装

STD-B24, TR-B14, TR-B15の仕様を部分的に実装しています。

一部のイベント(CCStatusChanged、MediaStopped)やAPIなどは現状未実装です。