1. 開始之前
- 兩台以上的電腦,接在同一個校園區網。一台當來源(講桌、投影電腦),其他當接收(各教室)。任何一台都可以同時是來源與接收。
- 接收與控制主機(總機/Hub)不需要另外準備:第一台打開 CelerCast 的電腦就會自動擔任。要長期穩定使用,建議固定由同一台常開的電腦當總機,並給它固定 IP 或 DHCP 保留位址。
- 瀏覽器:中控台與接收畫面都在瀏覽器裡。Chrome、Edge、Safari 皆可。
- 不需要網際網路。所有影音與控制都留在區網內。
- FFmpeg 已內建在安裝包裡,不必另外安裝。
2. 安裝
macOS
- 從下載區取得
CelerCast-macOS-arm64-0.4.4.dmg,雙擊打開。 - 把 CelerCast 拖進 Applications(應用程式)資料夾。
- 到「應用程式」雙擊 CelerCast。本版已用 Apple Developer ID 簽章,但尚未完成 Apple 公證,所以第一次開啟可能出現「無法驗證開發者」的警告,請照下方方法開啟。
Windows
- 從下載區取得
CelerCast-Windows-x86_64-0.4.4.msi,雙擊執行。 - 看到 SmartScreen 藍色視窗時,按 其他資訊 → 仍要執行。Windows 版目前尚未程式碼簽章,這個提示是預期的。
- 安裝完成後 CelerCast 會自動啟動:瀏覽器開出中控台,右下角系統匣(可能收在「^」裡)出現 CelerCast 圖示;之後也可從桌面或開始功能表的 CelerCast 捷徑再開。
- 安裝到
C:\Program Files\CelerCast\,裡面有CelerCast.exe(桌面程式)、celercast-hub.exe、celercast-node.exe與ffmpeg.exe。 - 第一次啟動時 Windows 防火牆會詢問是否允許 CelerCast 與 celercast-hub 使用網路,請勾選私人網路並允許。0.4.4 的安裝程式會自動新增只限私人網路的防火牆規則;若仍被擋,需要的埠見第 11 節。
3. 第一次啟動:誰是總機
雙擊 CelerCast 之後不需要任何設定,程式會依序做三件事:
- 在區網裡尋找已經在跑的總機(用 UDP 39101 與 mDNS 廣播找)。
- 找不到,就把這台電腦當總機,自己啟動接收與控制服務;找到了,就加入那一台的中控台。
- 啟動本機的分享程式(Node),然後自動打開瀏覽器到中控台,網址是
http://<總機 IP>:39100/。
所以順序很簡單:先在要當總機的電腦打開 CelerCast,再去各教室的電腦打開。同一區網內後來打開的 Mac 或 Windows 會自動出現在同一個中控台的「裝置」頁。
4. 跨網段:手動指定總機
自動尋找只在同一個網段有效;很多校園交換器也會擋掉多播。症狀是:兩台電腦各自打開了中控台,互相看不到對方。這時候在教室那一端明確指定總機的 IP,指定之後程式會記住,以後雙擊就好。
macOS:用終端機帶一次參數
open -a CelerCast --args -hub 192.168.1.10
Windows:用命令提示字元帶一次參數
"C:\Program Files\CelerCast\CelerCast.exe" -hub 192.168.1.10
只打 IP 即可,程式會自動補上 :39100。你也可以改成設定 CELERCAST_HUB 環境變數,或直接編輯資料夾裡的 desktop.json:
{ "hub": "192.168.1.10" }
| 平台 | CelerCast 資料夾(設定與紀錄) |
|---|---|
| macOS | ~/Library/Application Support/CelerCast/ |
| Windows | %AppData%\CelerCast\(通常是 C:\Users\你的帳號\AppData\Roaming\CelerCast\) |
desktop.json 裡的 hub 清空即可。
總機那一台如果有多張網卡(例如同時接有線與無線),可以用 -advertise 192.168.1.10 指定要告訴各教室連哪一個 IP。
5. 認識中控台
| 頁籤 | 用途 |
|---|---|
| 總覽 | 正在播送、裝置在線、正在接收三個數字,以及每條進行中廣播的預覽格。沒有廣播時會直接提供「建立第一個廣播」按鈕。 |
| 廣播指派 | 建立、啟用、停用、刪除廣播。一條指派=一個來源送到一組教室。 |
| 裝置 | 每台連上來的電腦:名稱、角色、狀態、位址、輸入選擇與畫質設定。 |
| 群組 | 把常一起接收的教室放成一組,建立廣播時只需勾一次。 |
右上角的圓點是中控台與總機的連線狀態:綠色為正常。整份狀態每次都是完整同步,不會有「少了一台卻沒提示」的情形。
6. 裝置:改名、選螢幕、調畫質
到 裝置 頁,每台電腦一列。
- 改名:點名稱即可輸入,例如「三年二班」。改過之後裝置自己回報的型號不會再蓋掉它。
- 位置:可另外填實體位置,例如「三樓 301 教室」,方便現場找機器。
- 輸入選擇:兩個下拉選單,一個選要送哪一顆螢幕,一個選要送哪個聲音來源。預設「(自動選擇)」的規則是:螢幕優先挑非主螢幕(通常就是投影機那一顆),聲音優先挑系統聲音而不是麥克風。這是為了保護講桌主螢幕上的信箱與成績。
- 畫質設定:有 720p30・3 Mbps、1080p30・6 Mbps、1080p30・8 Mbps、1080p60・12 Mbps 幾個預設。位元率是最重要的一格:30 間教室同時收 8 Mbps 就是 240 Mbps,會塞爆交換器的上聯;一般投影片與講課用 720p30・3 Mbps 就夠。
7. 螢幕與聲音的權限
macOS
第一次當來源時,macOS 會跳出「螢幕錄製」與「麥克風」的權限詢問,請允許。如果當時按了拒絕,之後的症狀是有連線但沒有畫面,而且不會有錯誤訊息;中控台的裝置狀態會提示這一點。手動開啟的位置:
系統設定 → 隱私權與安全性 → 螢幕錄製 → 把 CelerCast 打開,然後重新打開 CelerCast。
要分享 Mac 的系統輸出聲音(例如影片的聲音)仍需要安裝虛擬音訊裝置;只分享麥克風則不用。
Windows
畫面擷取不需要額外權限。要分享系統聲音需要音效卡提供「立體聲混音」或安裝虛擬音訊輸入;沒有的話聲音下拉選單裡只會有麥克風。
8. 建立第一個廣播
- 在 總覽 按 + 新增廣播(或在 廣播指派 按 + 新增指派)。
- 名稱:例如「全樓廣播」或「週會」。
- 來源:選要分享畫面的那台電腦。
- 送到哪些教室:勾選接收的電腦或群組。
- 方式:保持預設的 中繼扇出(總機轉送,一份上行、多份下行,適合多間教室)。直連 是接收端直接連來源、總機不碰媒體,只適合一對一,且不能在中控台詳看。
- 確認 啟用 有勾,按 儲存。
儲存後幾秒內:來源開始送流;每台被指派的接收電腦會自動打開瀏覽器到接收畫面(receiver.html)。接收畫面會自動開始播放(先靜音),不需要有人操作;因為瀏覽器不允許網頁自己出聲,要聽到聲音時點一下畫面,或按 開始播放(含聲音)(會進入全螢幕)。
要暫停廣播,在 廣播指派 把該條的 啟用 取消;要結束就刪除那條指派。停用時總機會通知每一台接收端關閉播放。
9. 教室群組
到 群組 頁按 + 新增群組,取名(例如「三樓全部」),勾選成員。建立廣播時在「送到哪些教室」直接勾群組即可。群組成員之後有增減,已存在的廣播會跟著更新。
10. 監看與詳看
- 總覽 的每一格會顯示來源的縮圖(約每秒更新一次)與接收數。
- 按 詳看 會在中控台裡直接播放那條廣播的畫面與聲音。這是從總機直接拉的即時流,延遲約 1–5 秒,適合確認「畫面到底有沒有出去」。
- 總覽 每格下方會顯示來源實際送出的解析度、位元率與正在接收的台數,可以拿來對照畫質設定有沒有生效。
11. 防火牆與埠
只有總機需要對區網開放連入埠;來源與接收端都是主動往總機連,不需要對它們開埠。
| 埠 | 協定 | 用途 | 誰要開 |
|---|---|---|---|
| 39100 | TCP | 中控台網頁、API、控制 WebSocket | 總機 |
| 39101 | UDP | 同一區網自動尋找總機 | 總機 |
| 5353 | UDP | mDNS(自動尋找的另一條路,被擋也不影響啟動) | 總機 |
| 39200–39299 | TCP | 中繼輸出,每條廣播用一個埠,接收端連這裡 | 總機 |
| 39300–39399 | TCP | 來源推流接入,每條廣播用一個埠,來源連這裡 | 總機 |
Windows 總機如果第一次啟動時沒有按「允許」,可以用系統管理員身分執行下面這段一次開好(規則限定 CelerCast 的程式與私人網路):
netsh advfirewall firewall add rule name="CelerCast Hub TCP" dir=in action=allow protocol=TCP localport=39100,39200-39399 program="C:\Program Files\CelerCast\celercast-hub.exe" profile=private
netsh advfirewall firewall add rule name="CelerCast Hub UDP" dir=in action=allow protocol=UDP localport=39101,5353 program="C:\Program Files\CelerCast\celercast-hub.exe" profile=private
這段埠刻意避開 8080、27200 這類常被開發工具佔走的埠,也避開 macOS 的臨時埠範圍(49152 起),減少「昨天好好的今天連不上」。
12. 疑難排解
CelerCast 的設計原則是「症狀要看得懂」,但下面這幾個仍然是現場最常見、而且沒有錯誤訊息的狀況。先看中控台的 裝置 頁狀態欄,再對照這張表。
| 症狀 | 最可能的原因 | 怎麼處理 |
|---|---|---|
| 教室電腦打開 CelerCast 後,出現的是另一個空的中控台 | 跨網段,或交換器擋掉多播,自動尋找失敗 | 依第 4 節手動指定總機 IP;指定後它會關掉自己那個本機總機 |
| 裝置有連上,來源狀態是「串流中」,但接收端黑畫面 | macOS 沒給螢幕錄製權限(ffmpeg 不會報錯,只是一張都不吐) | 依第 7 節開權限,重開 CelerCast |
| 接收端顯示「已連線」但沒畫面,總機紀錄看起來一切正常 | 中繼埠被別的程式佔走(常見是殘留的 adb forward);總機仍綁得起來,但連線被別人接走 | 在總機查 lsof -nP -iTCP:39200(macOS)或 netstat -ano | findstr 3920(Windows),關掉佔用的程式後停用再啟用該條廣播 |
| 廣播狀態停在「等待投影開始」 | 指定的第二顆螢幕目前不存在 | 接上投影機或把輸入改回「(自動選擇)」;這是刻意不偷換成主螢幕 |
| 接收畫面有影像沒聲音 | 畫面還在靜音(尚未點一下開啟聲音),或來源聲音選到沒有訊號的裝置 | 在接收畫面點一下畫面;到裝置頁把來源的聲音改成系統聲音或正確的麥克風 |
| 畫面每隔幾秒卡一下、然後又乾淨地回來 | 網路頻寬不足,總機把積壓的影格整批清掉並向來源要新的關鍵影格 | 把來源畫質降到 720p30・3 Mbps;檢查是否有教室走 Wi-Fi |
| 接收端一直重連一個已經不存在的廣播 | 刪除廣播時那台電腦剛好離線 | 重開該台的 CelerCast;總機重新連上時會對帳並停掉過期的指派 |
| 總機那台換了 IP 之後大家都連不上 | 總機用 DHCP 拿到新位址,執行中不會自動搬移 | 給總機固定 IP 或 DHCP 保留;重開總機的 CelerCast,各教室再重開一次 |
紀錄檔在哪裡
CelerCast 資料夾(位置見第 4 節)裡有三個檔:desktop.log(桌面程式)、hub.log(總機服務,只有當總機的電腦才有)、node.log(本機分享與接收)。回報問題時附上這三個檔最有用。
13. 停止、自動啟動與移除
停止
關掉瀏覽器不會停止服務,這是刻意的,避免有人不小心關掉分頁就讓全樓斷播。要真正停止,執行:
# macOS
open -a CelerCast --args -stop
# Windows
"C:\Program Files\CelerCast\CelerCast.exe" -stop
開機自動啟動(進階)
執行檔會把自己設成自啟,不需要額外的安裝腳本。總機用系統服務(開機就跑、不必登入),教室電腦用「使用者登入」自啟(因為螢幕擷取需要有桌面的 session):
# 總機(macOS 範例,需要管理員密碼)
sudo /Applications/CelerCast.app/Contents/Resources/celercast-hub -state /var/lib/celercast/state.json install
# 教室電腦(macOS 範例)
/Applications/CelerCast.app/Contents/Resources/celercast-node -hub 192.168.1.10 install
# 查狀態/移除自啟
celercast-node status
celercast-node uninstall
Windows 對應的程式在 C:\Program Files\CelerCast\,並需以系統管理員身分執行 install。
移除
- macOS:先執行
-stop,把「應用程式」裡的 CelerCast 拖到垃圾桶,再刪除~/Library/Application Support/CelerCast/。 - Windows:設定 → 應用程式 → CelerCast → 解除安裝,再刪除
%AppData%\CelerCast\。
14. 核對下載檔
每次正式發布都會公開 SHA-256 清單。核對方式:
# macOS
shasum -a 256 ~/Downloads/CelerCast-macOS-arm64-0.4.4.dmg
# Windows(PowerShell)
Get-FileHash "$env:USERPROFILE\Downloads\CelerCast-Windows-x86_64-0.4.4.msi" -Algorithm SHA256
算出來的值要與清單上同一個檔名的那一行完全相同。