EPGStation icon indicating copy to clipboard operation
EPGStation copied to clipboard

iOSにてストリーミング(無変換)を実行したときにVLCで再生できない。

Open Ry0 opened this issue 1 year ago • 1 comments

環境

  • Version of EPGStation: v2.6.20
  • Version of Mirakurun: 3.9.0-rc.2
  • Version of Node: v16.15.1
  • Version of NPM: 8.5.1
  • OS: Ubuntu 22.04
  • Architecture: arm (Raspberry PI 4)

Issue

ストリーミングで、 「M2TS」、「無変換」で視聴しようとしたとき、VLCが起動しますが、一瞬で再生画面が閉じてしまう現象が起きています。 (閉じたあとは、待っても何も起きない。)

そのときのConfigはテンプレートのままです。

https://github.com/l3tnun/EPGStation/blob/c0e201b83231dfed73e5bea1b2ec54866fcfbbba/config/config.yml.template#L49-L56

そこで、以下のように、://の部分を%3A%2F%2Fに変更して対応しています。 憶測なのですが、該当部分をエンコードがうまくできていないのではと考えています。

    m2ts:
+        ios: vlc-x-callback://x-callback-url/stream?url=PROTOCOL%3A%2F%2FADDRESS
-        ios: vlc-x-callback://x-callback-url/stream?url=PROTOCOL://ADDRESS

もし恒久対策が実施できそうであれば、対応していただきたいです。 該当部分の実装を追えておらず、具体的な提案ないままIssueを立ててしまい、申し訳ございません。

Ry0 avatar Jul 11 '22 14:07 Ry0

借りたiPhoneで試したところ、VLCが起動するけれどもVLCのライブラリ画面になり、再生が始まりませんでした。 他の録画ソフトウェアでは動いているので、どうなっているか調べたところ「PROTOCOL://ADDRESS」部分を実際のURIに置換した後でencodeURIComponent()でURIエンコードしているようです。

ということは、PROTOCOL・ADDRESS部分に何かURIエンコードが必要な文字が入ってこない限り、Ry0さんの対応で大丈夫そうです。

根本的に対処するにはこの辺でしょうか。(ver 2.6.20の例) client/src/model/state/onair/OnAirSelectStreamState.ts public getM2TSURL(): string | null

client/src/model/state/recorded/detail/RecordedDetailState.ts public getVideoURL(video: apid.VideoFile): string | null

client/src/model/state/recorded/detail/RecordedDetailState.ts public getVideoDownloadURL(video: apid.VideoFile): string | null

hts-ozeki avatar Sep 17 '22 14:09 hts-ozeki

調査ありがとうございました。 こちらVLCだけの問題かつ、修正が面倒なため config.yml.template の修正のみにとどめたいと思います。 version 2.7.0で反映させます。

対処方法はご推察のとおりです。

l3tnun avatar Jul 29 '23 07:07 l3tnun