l3tnun / EPGStation

Mirakurun を使用した録画管理ソフト
https://twitter.com/l3tnun
MIT License
553 stars 149 forks source link

ライブ視聴時に録画優先度が考慮されない #363

Closed tkmsst closed 3 years ago

tkmsst commented 3 years ago

環境

Issue

... (チューナーが1つだと仮定して)ライブ視聴を行っている状態で、違うチャンネルの番組の予約時間が来たときには、自動的にライブ視聴を終了して録画を開始するべきですが、そのまま視聴が継続し、予約が取り消されてしまいます。

(再現方法 - PT2で地デジの場合)

  1. 同じ時間帯(例 18:00 - 19:30)で地デジの異なるチャンネルの番組を2つ(例:日テレとTBS)予約する。
  2. 予約時間の数分前(例 17:55)に予約したチャンネルとは別のチャンネル(例:テレ朝)を視聴し、18:00を数分経過する。
  3. 予約がキャンセルされており、録画(日テレ、TBSのどちらか)されていない。

configで優先度を変えてみたりしましたが、うまくいきませんでした。

l3tnun commented 3 years ago

epgstation は mirakurun に対して優先度を指定してストリームの取得を要求しているだけなので、 mirakurunに対して指定した優先度でストリームの取得が行われているか確認してください。 (優先度の判定をしてストリームの停止を行うのは mirakurun の仕事)

確認方法ですが mirakc の /api/tuners をライブ視聴中と録画中に取得して、 priority が config で設定したものになっているかどうかで判別できます。

/api/tunersは以下のようなjsonを返します。

[
  {
    "index": 0,
    "name": "string",
    "types": [
      "GR"
    ],
    "command": "string",
    "pid": 0,
    "users": [
      {
        "id": "string",
        "priority": 0,
        "agent": "string"
      }
    ],
    "isAvailable": true,
    "isRemote": true,
    "isFree": true,
    "isUsing": true,
    "isFault": true
  }
]

もし priority が config で設定したものになっていない場合は epgstation のバグの可能性があります。 ライブ視聴時の priority が録画中のものより高い場合は config を修正してライブ視聴時の優先度を下げてください。

masnagam commented 3 years ago

@l3tnun @epgdatacapbon mirakcの不具合のようなので,こちらで引き取ります

masnagam commented 3 years ago

登録しました mirakc/mirakc#120

masnagam commented 3 years ago

@epgdatacapbon masterに修正をマージしました( mirakc/mirakc@0e900d429159e72341a1a45148ef573465630c0f ).他にも問題があって機能しない可能性も考えられるため,@epgdatacapbon さんの検証が終わるまでmirakcにタグは付けないようにします.

新たな不具合が見つかったらmirakcの方に登録してください.EPGStation側には問題はなさそうであれば(多分ないと思いますが),このissueは閉じてしまってよいだろうと思います.

l3tnun commented 3 years ago

@masnagam 了解です。こちらでも一応不具合がないか確認してみます。

tkmsst commented 3 years ago

原因の切り分けをせずにissueを出してしまい申し訳ありません。 またご修正ありがとうございます。しかし、うまく行かないようです。

下記は、日テレをライブ視聴しながら、NHKGとtvkを録画しようとしたときのjsonです。

{
  "index": 2,
  "name": "PT-T1",
  "types": ["GR"],
  "command": "recdvb --b25 --strip --dev 1 25 - -",
  "pid": 9536,
  "users": [{
    "id": "",
    "agent": "EPGStation/1.7.6 MirakurunClient/3.3.1 Node/v14.15.2 (linux)",
    "priority": 0
  }],
  "isAvailable": true,
  "isRemote": false,
  "isFree": false,
  "isUsing": true,
  "isFault": false
}, {
  "index": 3,
  "name": "PT-T2",
  "types": ["GR"],
  "command": "recdvb --b25 --strip --dev 3 27 - -",
  "pid": 9619,
  "users": [{
    "id": "",
    "agent": "EPGStation/1.7.6 MirakurunClient/3.3.1 Node/v14.15.2 (linux)",
    "priority": 2
  }, {
    "id": "Tracker(tuner#3.93.1)",
    "priority": -1
  }],
  "isAvailable": true,
  "isRemote": false,
  "isFree": false,
  "isUsing": true,
  "isFault": false
}]

ライブ視聴のPriorityは0、録画のPriorityは2なので、設定は問題ないようです。 しかし、本来はindex:2の日テレのライブ視聴を停止して、tvk(18チャンネル)に 移行すべきところ、ライブ視聴を継続し、tvkの録画予約が削除されました。

l3tnun commented 3 years ago

念の為、epgstation + mirakurun 環境で動作確認しましたが、priority は正しく設定されていて録画が優先されることが確認できました。 mirakc に該当 issue が建ったのでこちらは閉じます。