HUAN 讙 · 使用教學
上傳素材
/app/media 是素材庫。

用資料夾整理
素材庫可以開資料夾,也可以開資料夾裡的資料夾(最多 8 層)。
- 新增資料夾:素材列表上方那一條(「全選這一層的 N 個素材」那列)最右邊的「新增資料夾」,會建在你現在所在的那一層。
- 進出資料夾:點資料夾卡片進去,用上面的麵包屑回上一層。
- 改名或換位置:資料夾卡片上的鉛筆圖示。裡面的素材會跟著一起走。
- 刪除:垃圾桶圖示。只能刪空的資料夾——裡面還有東西時請先搬走,這樣你一定會經過「這個素材正在被使用」那一關。
上傳區會顯示「上傳素材到『某某資料夾』」,丟進去的檔案就落在那一層。
搬移素材
素材卡片左上角有勾選框。勾好之後按「搬移到…」,挑一個目標資料夾就完成了。
搜尋是跨資料夾的
搜尋框會找遍整個素材庫,不受你目前在哪一層影響。找東西的時候還要先猜它放在哪裡,等於沒有搜尋。
可以上傳什麼
| 類型 | 格式 |
|---|---|
| 影片 | MP4、MOV、MKV、WebM、MPEG、AVI |
| 圖片 | JPEG、PNG、WebP、AVIF、GIF |
| HTML | 單一自帶資源的 .html |
文字與網址不需要上傳。 它們直接寫在版面設定裡,不佔用素材庫。
上傳流程
檔案不經過 Server 的記憶體,瀏覽器直接傳到物件儲存。一支 4 GB 的影片如果經過 Node.js,幾個人同時上傳就會把 Server 打掛。
狀態
| 狀態 | 意義 |
|---|---|
| 上傳中 | 檔案正在傳到物件儲存 |
| 處理中 | Worker 正在轉檔、產生縮圖與預覽 |
| 就緒 | 可以放進版面 |
| 失敗 | 轉檔失敗,畫面上會有原因 |
| 需要重新上傳 | 舊資料才有,已經沒有可派送的副本 |
影片會被怎麼處理
Worker 會產生三種版本:
| 版本 | 用途 |
|---|---|
| 縮圖 | 素材庫的預覽圖 |
| 預覽 | 後台排版時的低解析度播放 |
| 播放 | 實際派送到裝置的版本 |
播放版本的規格:MP4 容器、H.264、yuv420p、最高 1920×1080、最高 30fps、AAC 音訊、啟用 fast start。
不做放大。 640×360 的來源轉出來還是 640×360。長寬比一律保持原樣。
yuv420p 是刻意指定的:某些來源使用 yuv444p 或 10-bit 格式,Raspberry Pi 的硬體解碼器不支援,會退回軟體解碼而卡頓。
圖片會被怎麼處理
同樣產生三種版本。播放版本限制在合理尺寸——不能讓 Raspberry Pi 每次算繪都去解一張 12000×9000 的原圖。
來源含有透明資訊時會保留,不會被壓成黑底。
HTML
第一版只支援單一自帶資源的 HTML 檔案。需要圖片時請用 data: URI 內嵌。
HTML 在裝置上以 sandbox iframe 執行,沒有 Node、檔案系統或 Electron API 的存取權。
檔案會留多久
縮圖、預覽與播放版本長期留在伺服器上,不會被清掉。要看預覽挑素材、或是之後多一台裝置要拿同一份檔案,都不會撲空。
原始上傳檔在轉檔成功後會刪除。 伺服器不是母帶庫,請自己留一份原始檔。
「需要重新上傳」是什麼意思
舊版的 HUAN 會在所有裝置都下載完成之後回收播放版本。那個機制已經拿掉了,但當時被回收的素材還留著這個標示——伺服器上真的已經沒有它的檔案。
解法是重新上傳同一個檔案。新上傳的素材不會再變成這樣。
完整理由見 ADR-0008。
刪除
刪除之前,HUAN 會檢查這份素材有沒有被使用:
- 草稿中的版面
- 已發布的版面修訂
- 排程
- 裝置目前的狀態
有任何一項使用中,刪除會被擋下來,並列出是哪些版面或排程在用它。請先解除引用再刪除。
不會有無提示的刪除。
轉檔失敗怎麼看
畫面上顯示的是給使用者看的說明,例如「影片轉檔失敗,來源檔案可能損毀或格式不支援」。
完整的 FFmpeg 指令、stderr 與檔案系統路徑只留在伺服器日誌裡。那些資訊對一般使用者沒有幫助,而且會洩漏伺服器的內部結構。