だまんです。

プログラミングや写真や本や読書会のことや、日常のこと。

Mirakurun+recdvbではまる

[広告]

Raspberry Pi 3 Model B、Raspbian、Chinachu Airで動いていたシステムのSDカードが死んだ。 スワップか、ソケットか、一時ファイルの類いか知らないが、何かまずいことが起きるほど書き換えが発生していたのだろう。 あるいはここのところ毎日エアコンのないところですごい高温にさらされたせいかもしれない。

どうももう、修復は不可能だろうということで、同じRaspberry Pi 3 Model Bに別のSDを差し、Raspbianごと入れ直した。録画システムも、Mirakurun+Chinachu γを入れ直した。

この作業だけで丸4日くらいかかった。

まず、うっかり、npmをユーザー権限で入れてChinachuを動かしてしまった。あれ途中でsudoが……。それに、Mirakurunは最初からsudoなの? それじゃ動かないじゃない!

……はい、最初から。

さらに、やっとChinachuとMirakurunが動いたと思ったら、連携できない。

recdvbのみでテストするときちんと録画されるし、rivarunからmirakurunを操作しても録画できるのに、mirakurunのを通したときに、 地上波のチャンネルスキャンができない。:

$ curl -X PUT "http://localhost:40772/api/config/channels/scan"
channel scanning... (type: "GR")

channel: "13" ...
-> no signal. [Error: stream has closed before get network] 

channel: "14" ...
-> no signal. [Error: stream has closed before get network] 

……

channel: "52" ...
-> no signal. [Error: stream has closed before get network] 

-> total 0 channels found and 23 channels stored.

channel scan has completed and saved successfully.
**RESTART REQUIRED** to apply changes.

それに、手動でmirakurunのチャンネルを設定しておいても、chinachuが番組表を読み込まない。

全チャンネルについて、

$ sudo pm2 logs mirakurun-server

6|mirakuru | 2017-07-11T15:48:14.969+09:00 warn: ChannelItem#'TBS' service scan has failed [Error: stream has closed before get network]

みたいになる。

という感じでなんかMirakurunの挙動がおかしいなあ、と思ってたら、次のようにsidを固定していたのがいけなかったらしい。

$ sudo mirakurun config tuners
- name: PX-S1UD-1
  types:
  - GR
  command: recdvb --sid hd <channel> - -
  isDisabled: false

※–b25など他のオプションは適宜つけてください

従来のChinachu(gamma以前)では、Chinachu側にrecdvbコマンドの設定があって、そこでは「–sid 」という書き方になっていたので、移転先のMirakurunの設定でも何か指定しなきゃいけないのかと思っていたが、不要みたい。

むしろ指定すると動かない。

地デジの電波には、同じ周波数に、ワンセグ、フルセグ、番組表など、時分割でいろんな情報をまぜて載っけているそうだ。「–sid hd」というオプションは、放送された情報から、一般のテレビで見るフルセグ動画の部分のみを抽出し、その際、EPG番組表などの情報は捨てられてしまう。

それで、録画ができるのにEPGが取れないという、上記のような挙動になるのだろう。Mirakurunはどの信号を受信するときも同一のコマンド(recdvb --sid hd <channel> - -)を使用するからだ。チャンネルスキャンのしくみはよく知らないが、これも動画以外の信号を見ているのだろう。

ともかく、

$ sudo mirakurun config tuners
- name: PX-S1UD-1
  types:
  - GR
  command: recdvb <channel> - -
  isDisabled: false

※–b25など他のオプションは適宜つけてください

としたら動いた。sid指定とは……。

Creative Commons License ©2007-2016 IIDA Munenori.