Skip to content

Latest commit

 

History

638 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

EMWUI 3

EDCB用のWeb UIです。
EDCBの基本的な操作に加え、リモート視聴などの機能を提供します。


主な特徴

  • SPA (Single Page Application)
    • ページ遷移を最小限に抑え、ネイティブアプリのようなスムーズな操作感を提供。
  • SSE (Server-Sent Events) によるリアルタイム更新
    • 番組情報の更新や録画ステータスの変化をリアルタイムに反映。
  • PWA (Progressive Web App)
    • インストールしてオフラインでもキャッシュにより一部機能が使用可能。
  • Material 3 デザイン
    • 最新の M3 デザインシステムを採用。

導入

Note

PWAやTS-Live!にSSL/TLSによる通信が必須なため、HTTPSでの運用を前提として記述しています。

1. EDCBのReadme_Mod.txtのCivetwebの組み込みについてをよく読む

2. HTTPSに必要な自己署名証明書を作成、インストール

3. HttpPublicSettingのフォルダをEDCBフォルダに入れる

Tip

配置例 (E3、legacyは任意にリネーム等可)

 EDCB/
   ├─ HttpPublic/
   │   ├─ api/
   │   ├─ E3/
   │   ├─ legacy/
   │   ├─ video/
   │   ├─ index.html
   │   :
   │
   ├─ Tools/
   │   ├─ ffmpeg/
   │   │   ├─ ffmpeg.exe
   │   │   ├─ ffprobe.exe
   │   │   :
   │   ├─ NVEncC/
   │   │   :
   │   ├─ QSVEncC/
   │   │   :
   │   ├─ asyncbuf.exe
   │   ├─ edcbnosuspend.exe
   │   ├─ psisiarc.exe
   │   ├─ psisimux.exe
   │   ├─ tsmemseg.exe
   │   ├─ tsreadex.exe
   │   ├─ tspgtxt.exe
   │   :
   │
   ├─ Setting/
   │   ├─ XCODE_OPTIONS.lua
   │   ├─ HttpPublic.ini
   │   :
   │
   ├─ EpgDataCap_Bon.exe
   ├─ EpgTimerSrv.exe
   ├─ EpgTimer.exe
   ├─ lua52.dll
   ├─ SendTSTCP.dll
   ├─ libssl-3(-x64).dll
   ├─ libcrypto-3(-x64).dll
   ├─ ssl_cert.pem
   ├─ ssl_peer.pem
   :

Note

最低限の動作に必要なファイルは、EDCBのreleasesEDCB-work-plus-s-bin.zipで入手可能です。
リモート視聴を行う場合は、別途使用するトランスコーダが必要です。

4. EDCBのHTTPサーバ機能を有効化、アクセス制御を設定

  • EnableHttpSrv=1
  • HttpAccessControlList=+127.0.0.1,+192.168.0.0/16
  • HttpPort=5510,5520,5511s,5521s
  • HttpNumThreads=50

Tip

SSEの仕様により、表示ごとにCivetWebのスレッドを1つ常に消費します。
HttpNumThreadsがデフォルトの5の場合、複数のタブで開いた場合などで応答なしとなる事があります。
デバイスの性能や同時アクセス数に合わせてHttpNumThreadsを適切な値に調整してください。

5. http://localhost:5510/https://localhost:5511/ にアクセスし、サーバー機能とHTTPSが有効か確認

Tip

うまく行かない場合はEDCBの設定を見直してください

6. SSE専用ポートの使用を有効に

  • ポート:5521 でのアクセスが可能か確認し、問題なければ設定ページSSE専用ポートを使用するを有効に
  • 他の項目は必要に応じて設定

Note

初期設定では、設定ページでの変更は、ローカルホストでのアクセス時のみ有効になります。
他のデバイスからの場合は、HttpPublic.iniを直接編集して設定してください。
また、ALLOW_SETTING_LISTにアクセス元のIPアドレスを追加することで設定ページからの変更が可能になります。

Tip

SSEの仕様により、ブラウザの同一オリジンに対する同時接続数制限(通常6~8接続)の1つを消費します。
レスポンスに影響が出る場合があるため、回避策としてSSE接続を専用ポートで実施します。
設定が有効の場合、SSE接続はメインのポートに設定されたポート番号に+10したポート番号で確立されます。
例: メインポートが5510の場合、SSEは5520で接続を試みます

7. リモート視聴する場合

  • EpgDataCap_Bonなどのネットワーク設定でTCP送信先にSrvPipeを追加
  • XCODE_OPTIONS.luaでトランスコード用プリセットを設定

Important

更新の際はHttpPublicのフォルダのみを上書きしてください

注意事項

キャッシュ

下記の表の通り、オフライン機能やデータセーバー機能のために、LocalStorageにデータを保存します。

カテゴリ 保存量 自動更新
EPGデータ 2時間前から36時間分
予約 全件
チューナ別予約 全件
自動予約 全件
プログラム予約 全件
録画結果 200件
サービス一覧 全件
録画プリセット 全件

上記以外にも、アセットや局ロゴなどはサービスワーカーによりCacheStorageに保存されます。

Note

自動更新非対象のサービス一覧・録画プリセットに変更があった場合、右上アイコンの設定から「基礎データ」で再取得を実行してください。
※ただし録画プリセットは設定ページで変更した場合、変更時に再取得されます。

Tip

全録環境の場合、予約情報が膨大になるため注意してください。

データセーバー

セルラー回線でのアクセス時、SSEによるキャッシュデータの自動更新を停止し、キャッシュデータを使用して通信量を節約します。
更新ボタンでのみとなるため、必要に応じて手動で更新してください。
キャッシュ範囲外のデータは必要に応じて取得します。

Note

予約などを変更した場合でも、自動更新されません。

Warning

FirefoxSafariでは回線による切り替えができません。
判定に必要なnavigator.connectionが利用できないため、有効時は回線に関係なく自動更新がOFFになります。

使用フレームワーク及びライセンス

本プロジェクトでは以下のオープンソースライブラリを利用しています。

SpecialThanks

Legacy WebUIから、多くの部分を流用させていただきました。
EDCBという素晴らしいソフトを作成していただいたxtne6f氏に感謝します
また、データ放送や実況などのライブラリ作者様にも感謝します。

支援

プロジェクトを応援いただける方は、以下のリストからご支援いただけると励みになります。

About

No description, website, or topics provided.

Resources

Stars

91 stars

Watchers

20 watching

Forks

Used by

Contributors

Languages