KubeSphere 在直播應用中的實踐

本文是上海站 Meetup 講師唐明根據其分享內容整理的文章。

引言

目前媒體的主流傳播渠道已從傳統的報紙、廣播、電視轉向了互聯網,各種視頻及社交 App 成爲了人們獲取資訊的首選途徑。蘇州市廣播電視總檯面對互聯網媒體的新形勢,不斷探索新形勢下了信息發佈方式、傳播途徑和相關的 IT 技術,爲的是能在新的媒體戰場上緊跟時代發展,不斷保持領先優勢。

技術路徑

在 IT 架構選型上,技術團隊保持對新技術的關注和實踐,通過總結這些年 IT 技術的實踐經驗,堅信雲原生纔是雲計算時代技術的發展方向。如果僅僅是將物理服務器虛擬化,或者將虛機從本地環境遷移上公有云,並無法完全發揮雲計算高效安全可擴展的特性。所以技術團隊一直堅持對容器技術進行實踐。

2019 年初開始將 Kubernetes 應用於生產環境。在學習 Kubernetes 的過程中接觸到了 KubeSphere,在對 KubeSphere 進行了較長時間的測試和驗證後,今年開始使用 KubeSphere 管理 Kubernetes 集羣。

需求分析

媒體行業最主要的業務系統就是媒體的生產製作系統。媒體生產可以分爲媒體採集、媒體處理和媒體分發三個環節。

隨着技術的發展,採集設備從原先的專業攝像機發展到了單反、無人機、GoPro、全景攝像機、手機等多種多樣的設備均可用於視頻拍攝,使得視頻拍攝的數量大大增加且格式種類、編碼方式、幀率等都變得紛繁複雜。此外媒體的分發渠道也不再僅僅是電視和廣播,還有網站、app、公衆號、短視頻平臺等。採集端和發佈端的巨大變化對媒體處理能力提出了更高的要求。爲了能處理好這些視頻文件,業務系統需要提供強大對處理能力,包括視頻對編解碼、提取視頻標籤、進行智能處理等。

業務痛點

對媒體文件進行處理的工作難度很大。媒體處理系統需要能夠處理海量的、不同拍攝設備、不同視頻格式、不同拍攝人員所採集的媒體素材,並且需要爲不同的平臺提供不同長度、不同類型(橫屏豎屏)、不同編碼格式、不同碼率、不同分辨率的成品視頻文件。同時需要對這些素材和成片進行妥善得分類和管理。

於是通過自建一套容器平臺,來實現這些視頻處理能力。選擇容器平臺是因爲進過評估和分析,認爲容器是最適合用於處理媒體文件的技術方式。

  • 容器能極大得提高系統的資源利用率,爲海量文件的處理提供計算能力;
  • 容器平臺能提供很好的系統彈性,滿足不同時間段不同業務需求的任務運行;
  • 容器的標準化鏡像便於升級管理和維護,可滿足媒體處理能力需不斷進行升級;
  • 容器能實現跨雲的支持,方便將部分熱點業務遷移至公有云提供服務;
  • 容器平臺能充分利用原有的服務器資源而不用擔心硬件的兼容性和穩定性問題。

KubeSphere 應用落地

以 “慢看蘇州”的直播業務爲例,該業務需求是將許多點位監控攝像頭信號與指定的音頻進行混合,爲視頻配上背景音樂,再推送至直播平臺。在推進這個項目的過程中也經過了幾輪測試:首先使用 ffmpeg 實現了視頻和音頻文件的合成,但由於攝像頭數量非常多,且會隨時進行調整,維護大量的 ffmpeg 進程並不可行,於是通過 Docker 以容器方式啓動編碼任務,最終將這些容器統一運行在 KubeSphere 平臺上,爲一個工作負載對應一個編碼任務。

KubeSphere 成效分析

KubeSphere 很方便得實現了編碼任務的啓動、停止、監控、調度、統計等功能,大大減少了我們運維的工作量,且能及時發現編碼過程中的異常,收到了很好的效果。

這只是我們目前的一個嘗試,下一步還考慮將更多的視頻處理能力遷移至KubeSphere 容器平臺,如視頻轉碼、視頻優化、人臉識別、語音識別、語音合成、OCR 識別、標籤提取、視頻水印、視頻特徵提取等,爲媒體生產製作提供更強大的服務支撐。

本文由博客一文多發平臺 OpenWrite 發佈!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章