敵のいない勉強部屋

日々学んだことや感じたことを書きます

TVサーバー構築(Mirakurun×UbuntuServer_22.04)

RaspberryPiにインストールしたUbuntusServerの上にTVサーバーを構築しました。
お手軽とうわさのDockerを使いました。

Dockerはほんとにお手軽でした!
ミスのしようが無いくらいに。

MirakurunサーバーのクライアントにはEPG-Stationを選びました。
こっちのほうがインストールが大変でした。

ICカードリーダー
www.amazon.co.jp

■TVチューナー
www.amazon.co.jp

■やったこと
・Dockerのインストール
docs.docker.com

・Mirakurunのインストール (Dockerで)
github.com

※docker-compose コマンドは docker compose に読み替えました。

EPG-Stationのインストール
github.com

■つまづきポイント (Mirakurun関連)
・Mirakurunは起動できたが、番組表データが取得できない

2022-07-23T16:29:12.204+09:00 warn: ChannelItem#'テレビ朝日' service scan has failed [Error: stream has closed before get network
    at TSFilter.<anonymous> (/app/src/Mirakurun/Tuner.ts:198:28)
    at TSFilter.emit (/app/node_modules/eventemitter3/index.js:201:33)
    at TSFilter._close (/app/src/Mirakurun/TSFilter.ts:1098:14)
    at TSFilter.close (/app/src/Mirakurun/TSFilter.ts:303:14)
    at Timeout._onTimeout (/app/src/Mirakurun/Tuner.ts:175:39)
    at listOnTimeout (node:internal/timers:559:17)
    at processTimers (node:internal/timers:502:7)]

原因: PX-S1UDのドライバーを入れていなかった
対処: ドライバーのインストール

sudo install -y unzip
mkdir PX-S1UD_v2
cd PX-S1UD_v2
wget http://plex-net.co.jp/plex/px-s1ud/PX-S1UD_driver_Ver.1.0.1.zip
unzip PX-S1UD_driver_Ver.1.0.1.zip 
sudo cp PX-S1UD_driver_Ver.1.0.1/x64/amd64/isdbt_rio.inp /lib/firmware/
sudo reboot

■つまづきポイント (EPG-Station関連)
・$ npm run all-install に失敗する

npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'mirakurun@3.9.0-beta.26',
npm WARN EBADENGINE   required: { node: '^14.17.0 || ^16' },
npm WARN EBADENGINE   current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }

原因: aptでインストールできるnpmのバージョンが古い
対処: nを使ってv14 or v16 のnpmを入れる

$ sudo npm install n -g
$ sudo n 16
$ sudo apt purge nodejs npm
$ exit

・$ npm run all-install に失敗する (その2)

1517 error /bin/sh: 1: python: not found

原因: UbuntuServerにはデフォルトでpythonコマンドはない(python3コマンドしかない)
対処: npmにpython3のパスを教えてあげる

$ npm config set python "$(which python3)"

・番組のライブ視聴ができない

2022-07-23T17:34:46.316+09:00 info: TSDecoder#4 process has spawned by command `arib-b25-stream-test` (pid=120)
error - failed on B_CAS_CARD::init() : code=-4
2022-07-23T17:34:46.414+09:00 info: TSDecoder#4 process has closed with exit code=0 by signal `null` (pid=120)
2022-07-23T17:34:46.415+09:00 error: TSDecoder#4 unexpected dead

原因: B-CASカードをうまく読み込めていない
対処: B-CASカードの表裏が逆だった(青い面が下に来るように差すのが正解)


とりあえず動くようになってよかったけど、パフォーマンスに難ありなので、
何か対策を考えなくては。
監視も導入したい。夢が広がる。