這些指南將產業的概念對應到平台目前具備的物件(頻道包、線路、方案、合作夥伴帳號、節點、API)。這些是概念上的對應,並非產業專屬功能,而且合作夥伴帳號是委派帳號,不是隔離的租戶。
概念對應
面板中沒有任何東西叫做課程或學生。此表說明哪個物件扮演哪個角色;以下各章依此順序進行設定。
| 在您的產業中 | 在平台上 | 在面板中的位置 |
|---|---|---|
| 培訓中心或通路合作夥伴 | 合作夥伴帳號(經銷商):具備點數、權限與自己線路的委派 dashboard | Users → 新增經銷商;其權限在 Groups 設定 |
| 課程集 | 頻道包(bouquet):由方案授予的一組具名頻道、電影或影集 | Bouquets,由 Streams 與 Movies / Series 建立 |
| 錄製課程 | VOD 內容目錄:電影與含季和集的影集、分類與中繼資料 | Movies 與 Series,或 VOD 匯入工作 |
| 直播課堂 | 直播頻道:含來源、EPG 與輸出格式的串流 | Streams → 新增直播串流(來源 URL 或 RTMP 推流) |
| 學生存取權 | 線路:一份存取權,含其方案、頻道包、到期日、連線數上限與輸出 | Lines → 新增,或使用啟用碼,或 Reseller API |
| 課程存取期間 | 線路的到期日,可由方案、點數或 API 續期 | 線路的到期日與方案的期限 |
| 同時連線數上限 | 線路的最大連線數:可同時觀看的裝置數量 | 線路的最大連線數 |
| LMS 或商務整合 | Reseller API 與 webhook:從您自己的系統執行面板的各項操作 | 經銷商 dashboard 中的 Reseller API 金鑰與 webhook |
前置條件
安裝前需要準備的項目。
- 校園網路上的一台 Linux 伺服器(Ubuntu 22.04 或 24.04),由安裝程式安裝 Postgres、Redis 與 ffmpeg,並準備好面板與播放器使用的網域或內部位址。
- 要發布的錄影(檔案,或可推送 RTMP 的錄影系統),以及直播課堂時,每間要串流的教室需有一台編碼器。
- 授權金鑰:免費方案不需要;符合資格的機構可從學術網域以電子郵件申請免費的 Professional 金鑰。
基礎架構部署
先安裝管理伺服器,再為每棟建築安裝一個節點。
- 在管理伺服器上執行安裝程式;它會把面板、API、worker 與來源伺服器安裝為 systemd 單元,並建立第一位管理員。
- 設定 API 的公開 URL(API_PUBLIC_URL)與播放基底網址,讓播放器連結指向校園位址。
- 對每棟有廳舍要觀看的建築,從 Servers → 新增節點登錄一個節點;面板會依節點套件透過 SSH 安裝它。
- 檢查 Servers 頁面:節點會回報心跳與流量,該建築的觀眾會被導向它。
內容整理
課程作為影集,學程作為頻道包與方案。
- 在 Movies / Series 下,為每個學院或科目建立一個分類。
- 將每門課程新增為一部影集:每個單元一季、每堂課一集,並以錄影作為來源(上傳或使用 VOD 匯入工作)。
- 從您新增的影集中,為每個課程集建立一個頻道包(例如某學程在一個學期的課程)。
- 為每個學程建立一個方案:它授予的頻道包、作為期限的存取期間,以及同時連線數上限。
合作夥伴(經銷商)設定
將培訓中心或學院作為委派帳號。
- 在 Groups 下建立一個群組,授予該中心所需的權限(可管理自己的線路,不能變更內容目錄)。
- 在 Users 下將該中心新增為經銷商,指定該群組、點數餘額,以及它可發放的方案。
- 將 dashboard 位址提供給它;它從那裡管理自己的學生,而面板會保留稽核記錄。
學生存取權設定
每位學生一條線路,於註冊時建立。
- 人數較少的班級,可從 Lines → 新增,指定該學程的方案來新增線路;到期日隨方案期限。
- 註冊日當天,為方案產生啟用碼;學生在播放器中兌換啟用碼即可取得一條線路。
- 對於學生系統或 LMS,建立一把 Reseller API 金鑰,讓系統以 action=create_line 建立線路,並為每位學生附上一個請求 ID。
- 將最大連線數設為學生可同時使用的裝置數;超出的下一個連線會被播放器拒絕。
VOD 設定
隨選的錄製課程。
- 將每份錄影上傳為某一集的來源,或讓 VOD 匯入工作指向該檔案,由 worker 下載並編碼到媒體根目錄。
- 手動填寫中繼資料(標題、說明、海報),公開素材也可從 TMDB 取得;課程通常只需要標題與說明。
- 使用測試線路在網頁播放器中檢查播放;連結已簽章,並在設定的時間後過期。
教室直播串流
將一堂講課作為直播頻道。
- 在 Streams 下新增一個直播串流,以教室的編碼器作為來源(RTMP 推流位址或拉取 URL)。
- 將該串流放進課程的頻道包,讓只有已註冊的學生能看到;若您有課表,請把它加入 EPG。
- 若學生可事後觀看課堂,請在該串流上啟用回看或時移;錄影也可以上傳為一集。
訂閱與存取到期
隨課程結束而終止的存取權。
- 將存取期間設為方案的期限;由它建立的線路會在該期間結束時到期。
- 新學期時,可從面板使用該中心的點數為線路續期,或透過 API 以 action=renew_line 續期。
- 讓您的系統訂閱 webhook:當線路即將到期、已到期或被停用時,系統會收到通知。
與外部 LMS 整合
由 LMS 控制存取權;由播放器負責播放。
- 為 LMS 建立一把 Reseller API 金鑰;請儲存在 LMS 的機密資料中,絕不要放在網頁裡。
- 學生註冊時,LMS 以該學程的方案與一個請求 ID 呼叫 action=create_line;退課時呼叫 action=disable_line。
- 從 LMS 的課程頁面連結到網頁播放器,或把播放器憑證交給學生;兩者之間沒有單一登入。
安全考量
讓服務留在機構內部。
- 為每個面板帳號啟用雙重驗證登入,並只給職員可行的最小權限群組。
- 將學生個人資料儲存在學生系統中;線路只需要名稱與到期日。
- 將最大連線數維持在低水準,並考慮將播放綁定到觀眾的位址以防止分享。
- 開啟加密的資料庫備份;若有 S3 相容儲存,也開啟異地副本。
疑難排解
常見的初步檢查。
- 學生無法登入:先檢查線路的到期日與是否已啟用,再檢查方案與該課程的頻道包。
- 錄影無法播放:先在 Jobs 頁面檢查匯入工作的結果,再檢查媒體根目錄中的檔案與簽章連結的到期時間。
- 某棟建築的觀眾連到了來源伺服器:檢查節點的心跳,以及觀眾的位址是否落在該節點的路由範圍內。
- API 拒絕了呼叫:檢查金鑰、該動作的方法(寫入操作為 POST),以及重試呼叫的請求 ID。