EPGStation
EPGStation copied to clipboard
iOSにてストリーミング(無変換)を実行したときにVLCで再生できない。
環境
- 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を立ててしまい、申し訳ございません。
借りた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
調査ありがとうございました。 こちらVLCだけの問題かつ、修正が面倒なため config.yml.template の修正のみにとどめたいと思います。 version 2.7.0で反映させます。
対処方法はご推察のとおりです。