楊建光(杭州字節信息技術有限公司,杭州,310008)
?
動態擴容視頻存儲分發系統設計
楊建光
(杭州字節信息技術有限公司,杭州,310008)
摘要:在帶寬增速,互聯網用戶對視頻內容的要求日趨增多的趨勢下,本文描述了大規模視頻存儲分發的系統設計和實現。該系統設計的目標是把用戶上傳的視頻重新編解碼生成適合不同場景的不同格式視頻文件,然后根據客戶端支持的視頻屬性和網絡帶寬的實際情況,自動分發不同碼流的視頻文件到客戶端,從而達到流暢訪問視頻的目的;對系統中的熱門視頻,系統通過算法結合緩存,實現同一視頻文件在不同服務器間動態遷移,從而充分利用系統的計算能力,最終給用戶提供更流暢的視頻體驗。
關鍵詞:視頻存儲;視頻分發;動態擴容
1.1 視頻存儲模塊
視頻存儲模塊是實現視頻海量數據的多服務器文件存儲,主要實現視頻各種分辨率格式對應的文件存儲 。熱門視頻需要在多個服務器上存儲,而非熱門視頻只需要在少數服務器存儲。視頻存儲集群結構參見圖1。
1.2 視頻索引緩存模塊
該系統模塊把視頻的相關信息,如存儲集群、時間、分辨率、碼率、幀率、作者、拍攝時間、內容介紹等信息以數據庫的方式存儲起來,并對常用檢索信息進行索引。 特別地,由于熱門視頻可能存儲在多個服務器上,因此需要在緩存服務器中存有對應視頻的存儲服務器的信息。視頻和存儲服務器的對應關系可以表示為圖2。

圖1 視頻存儲集群

圖2 視頻和存儲服務器對應關系
1.3 視頻編解碼轉換模塊
為不同網絡帶寬的終端提供流暢的視頻服務,需要生成同一視頻的不同版本。該模塊以原始視頻為基礎,通過重新編碼的方式,生成同一視頻的不同分辨率或不同幀率的不同格式視頻版本,并存儲在相關存儲服務器中。終端上傳視頻,后臺進行重新編碼的過程如圖3。
有了上述視頻轉換并存儲基礎,客戶端向服務器提交視頻請求時,服務器端會根據網絡帶寬和終端屬性來確定下發視頻的格式和清晰度。
2.1 服務器架構
整個視頻存儲分發系統分為以下幾個部分:存儲服務器集群、負載均衡/健康管理服務器、編解碼服務器、視頻元數據庫、緩存服務器。整個系統功能模塊示意如圖4。

圖3 視頻編解碼過程

圖4 系統功能模塊

圖5 單一視頻的目錄組織
在所有服務器中,只有負載均衡、健康管理服務器擁有公網ip地址,其它服務器只有內網ip地址。
2.2 單視頻存儲設計
為適應各種終端處理視頻的需求,需要把同一視頻的不同格式的視頻按下列目錄規則組織起來。
2.3 熱門視頻存儲遷移算法
熱門視頻存儲遷移算法描述一個非熱門視頻隨著同時訪問者的增多轉變成熱門視頻的過程。存儲遷移算法使該視頻可以動態遷移到別的空閑服務器,并且更新緩存服務器,從而增加單一視頻服務的可用性。該遷移算法描述如圖6。
2.4 負載均衡、健康管理模塊設計
終端通過負載均衡模塊獲取視頻服務器地址然后進行后續視頻交互流程設計如圖7。

圖7 負載均衡流程
由于視頻對服務器計算能力和網絡帶寬都有嚴苛的要求,為了保證給多個客戶端的并發訪問提供流暢的視頻服務器,需要設計負載均衡模塊以實現客戶端的引流和平衡。
而健康管理模塊維護可用視頻服務器的列表,通過Http檢測實現三大功能:
動態添加視頻服務器實現擴容;
檢測到某一臺服務器不可用時,把該臺服務器從可用服務器列表中刪除;
檢測到不可用服務器重新可用時,把該臺服務器重新添加到可用服務器列表中。
視頻服務器、數據庫服務器、負載均衡服務器、視頻編解碼服務器均采用阿里云服務器,服務器端采用的技術開發框架有:Nodejs + Express的Http服務器,MongoDB非結構化數據庫存儲引擎,Nginx反向代理,ffmpeg視頻編解碼框架等。經測試,在請求響應時間,視頻流暢體驗等方面均取得了不錯的效果,后續將進一步把該系統應用在多個領域。
參考文獻
[1]曹巖;網絡寬帶交互式視頻點播系統的設計與實現;計算機工程與應用;2012
[2]單海濤;方向忠;基于FFmpeg的高清數字與電影軟件編碼系統的設計;信息技術;2007
[3]龐建民;王??;視頻會議系統的研究與實現[J];安防科技;2008.12
[4]徐向宇;電信流媒體系統的設計與實現[D];電子科技大學;2010

圖6 視頻存儲遷移
Design of dynamic capacity expansion video storage and distribution system
Yang Jianguang
(Hangzhou byte information technology Co., Ltd.Hangzhou,310008)
Abstract:In the Internet bandwidth growth,user demand for video content increasing trend,this paper describes the design and implementation of the system of large-scale video storage distribution.The system design goal is to users to upload video codec is generated to fit different scenarios of different video formats file,then according to the actual situation in support of the client's video attribute and network bandwidth,automatic distribution of different streams of video files to the client,so as to achieve smooth video access; on the popular video system through the algorithm combined with caching,achieve the same video file in dynamic migration between different servers,which makes full use of the computing capability of the system and ultimately to the user to provide smoother video experience.
Keywords:Video storage;video distribution;dynamic capacity expansion