Cloudflare 於二零二六年十月二日(官方 Birthday Week)推出開發者示範專案 Streamline,展示如何以 Workers、Durable Objects 與 Containers,搭配 Cloudflare Stream,打造長時間運行的自訂影片處理管線:可即時疊加註解、燒錄字幕、套用濾鏡,並把輸出再發佈為直播或點播。專案已開源,並提供公開 playground。來源真實性已按 Cloudflare 官方網誌與 GitHub 倉庫交叉核實。
Cloudflare/官方:推出 Streamline 自訂影片管線——Workers/Durable Objects/Containers 搭配 Stream;支援疊加、字幕燒錄與即時預覽;開源並提供公開 playground
Cloudflare 在二零二六年 Birthday Week 發布 Streamline:一個面向開發者的示範與開源架構,說明如何在 Cloudflare 開發者平台上,為直播或點播影片建立「量身訂做」的處理管線。官方網誌由 Willi Geiger 與 Taylor Smith 撰寫,指出許多客戶對 Stream「開箱即用」已足夠,但若要在直播上動態疊加註解、或為托管影片產出燒錄字幕的替代版本,就需要自訂影片管線。本文已對照 Cloudflare 官方文章與 GitHub 開源倉庫(cloudflare/streamline、cloudflare/streamline-demo),來源真實性已驗證。
一、核心事件:把 Stream 變成可程式化的媒體工廠
技術細節
官方把問題定義得很清楚:影片處理需要持久、長時間運行的環境,能跑特化編譯程式碼,並具備可預期的記憶體與 CPU;串流可能持續數分鐘至數小時,媒體行程的生命週期必須獨立於啟動它的 HTTP 請求。Streamline 的組裝方式是:
- Containers:承載長生命週期的媒體引擎(Media Engine),負責實際輸入/輸出與處理。
- Durable Objects:負責工作階段編排、預覽中繼與生命週期協調。
- Workers:負責控制信令、監控,以及對使用者/代理暴露 API。
Media Engine 分兩層:以 Go 撰寫的 Controller(HTTP 控制平面,把請求轉成引擎操作),以及實際處理的 Processor。官方明言目前實作內部使用 FFmpeg,但那是實作細節,並非對外 API 合約的一部分。引擎可:
- 經網絡從一個 Stream Live input 拉 RTMPS,再把輸出推到另一個 Stream Live input;
- 拉取 Cloudflare Stream 的 HLS 清單與分片,把托管點播當輸入;
- 接受控制端應用提供的來源(例如 webcam);
- 經 outbound WebSocket 把預覽推到 Durable Object 中繼,供應用端再連線收看。
控制端應用可以是全端瀏覽器、代理(agent)或嵌入式系統。部署到 Cloudflare 後,經授權的使用者或代理可造訪 Worker 開啟工作階段;系統會按需要啟動 Container、管理生命週期、暴露影片操作 API,並把輸入/輸出接到 Stream。本地開發時可用本機 Docker,且不強制 Durable Object。
二、技術原理深度解析
工作階段與 Container 生命週期
控制端 Worker 啟動長時間媒體處理後,應用可安全斷線再重連,Container 會繼續處理,直到控制端明確停止。系統亦設最長時長,避免無人控管時無限運行。官方特別處理 Cloudflare Container「一段時間無入站請求就休眠」的預設行為:透過覆寫 onActivityExpired(),在工作階段未到期時續期活動逾時,否則才銷毀 Container——確保管線一旦跑起來,不因控制端暫時離線而中斷。
高階 API 與管線設定
Streamline 匯出套件(文中寫作 @cloudflare/streamline/client 等)提供以工作階段為中心的高階 API,語意包括:建立/恢復工作階段、start(config)、webcam 模式的 ingest、以 PNG 更新透明註解疊加、讀取 metrics、以及 stop。start 的 JSON 設定定義輸入、操作序列與輸出。官方範例涵蓋:
- RTMP 直播進出:對直播流即時疊加半透明圖,再推回另一個 Stream Live;
- HLS 點播輸入:讀嵌入式字幕並燒錄到畫面,再以 RTMP 輸出;
- Webcam/代理攝影機:套用亮度、翻轉等濾鏡,並以可動態更新的 annotation PNG 做全幅疊加,輸出以 WebSocket/fMP4 預覽。
目前支援的操作包括 filter、overlay、subtitle、encode;官方提醒引擎對操作套用順序有固定規則,陣列內順序並非任意可排。
安全模型
作為 Cloudflare 產品敘事,安全被寫進設計而非事後補丁:以 Cloudflare Access 驗證擁有者/允許使用者;同一時間僅允許一個作用中工作階段;Stream Live 金鑰存放在 Worker secrets 或 Durable Object 的唯寫覆寫,不會經設定 API 回傳給瀏覽器,控制端只以命名 profile 引用 RTMPS 進出。預覽串流使用 Access service token(由容器出站 Worker 注入,不進入容器記憶體)加上每工作階段能力權杖。官方強調目前「擁有者部署」是私有、單例路由模型,不是公開多租戶服務的最終安全模型;公開 playground 則另有每驗證使用者一容器身份、全域准入與併發/媒體/工作階段上限。
三、日常應用場景
1. 開發者與技術團隊
適合需要在邊緣側做「直播疊字、字幕燒錄、多機合成、工廠攝影機預覽」的團隊:可直接 clone 開源倉庫,或先用公開 playground(playground.streamline-video.workers.dev)驗證流程,再把 Media Engine 換成自家編碼產品。代理/嵌入式裝置亦可把鏡頭片段 ingest 進管線,做電腦視覺前處理的雛形。
2. 企業與隱私敏感行業
企業若把 Stream Live 金鑰與 Access 身份管治接好,可在不把金鑰下發到瀏覽器的前提下,讓內部營運或授權代理啟動處理。適合品牌直播、線上課堂、內部培訓與活動轉播等需要「官方畫面+動態資訊層」的場景;金鑰與工作階段隔離仍須按官方安全章節落實。
3. 一般用戶
一般觀眾不會直接操作 Streamline;感受到的是內容方能否更快上線「有字幕/有註解/有特效」的直播或點播變體。開發者可用公開 playground 體驗能力邊界。
4. 香港與亞洲市場視角
香港與亞洲的內容平台、電商直播、線上教育與活動製作,常要在短時間內疊加多語字幕、促銷圖層或多機畫面。Streamline 展示一條「不必自建完整媒體農場、先用邊緣 Workers+Containers 組裝」的路徑;本地團隊部署時仍須評估 Container CPU 在高畫質/高幀率的瓶頸(官方已誠實指出),以及 Access、金鑰與區域合規要求。對需要把直播/點播能力嵌進自家產品的港企,亦可結合遠端開發產能,把示範架構產品化。
四、專業評價與潛在考量
優勢
- 官方把「長生命週期媒體處理」與 Workers 請求模型的張力講清楚,並用 Containers+Durable Objects 給出可複製架構。
- 開源雙倉庫+公開 playground,降低驗證成本;API 以工作階段抽象,意圖讓控制端(人、代理或嵌入式)可替換。
- 安全敘事具體(Access、金鑰不回傳、預覽雙憑證),符合企業採購時的稽核口味。
- 路線圖點出電腦視覺、硬體加速、WebRTC/MoQ,以及未來在 Workers 原生編解碼的方向,對開發者生態有延續性。
需要留意的地方
- 此為開發者 playground/示範架構,不是「一鍵企業級轉碼 SaaS」;擁有者部署模型為單例,公開多租戶需自行加強。
- Processor 目前綁 FFmpeg 於 Container CPU,官方承認高畫質/高幀率会成瓶頸。
- 操作集合與套用順序由引擎固定,進階剪輯圖譜能力仍有限。
- Birthday Week 期間 Cloudflare 產品密集,採購方應分開評估 Streamline 與同週其他發布(例如 OHTTP、Observability)的對應場景,避免「全部一次上」造成整合負擔。
結語
Streamline 把 Cloudflare Stream 從「托管與廣播」推進到「可程式化的自訂媒體管線」:Workers 負責控制,Containers 負責長跑處理,Durable Objects 負責編排與預覽中繼。對香港與亞洲團隊而言,這是一條可開源驗證、再按業務換成專用編碼器的務實路線。若企業需要把類似邊緣影片能力、零信任存取與雲端遷移一併落地,可參考 YSK Limited 的雲端遷移與網絡安全服務(https://ysk.hk/services/cloud-security);若更需要一支遠端團隊把 playground 做成可上線產品,亦可參考開發者外判(https://ysk.hk/services/outsourcing)。
參考來源
- Cloudflare Blog|Streamline: custom video pipelines with Cloudflare Stream and Workers(2026-10-02)https://blog.cloudflare.com/streamline/
- GitHub|cloudflare/streamline(Media engine/套件)https://github.com/cloudflare/streamline
- GitHub|cloudflare/streamline-demo(範例 Worker/Astro 前端)https://github.com/cloudflare/streamline-demo
- Cloudflare|Streamline public playground https://playground.streamline-video.workers.dev