蕪湖職業技術學院電氣與自動化學院 潘 麗
視頻點播VOD(Video On Demand)技術即視頻點播技術,綜合了計算機技術,流媒體技術,網絡拓撲結構,互動式感官體驗等多種技術,也稱為交互式電視點播系統。視頻點播是計算機技術、網絡技術、多媒體技術發展的產物,它擺脫了傳統電視受時空限制的束縛。而校園視頻點播系統的搭建,可以極大的豐富校園師生的業余文化生活,同時可以進行校園視頻資源的共享,針對疫情期間線上教學的特殊情況,可以提供一個很好的平臺。同時有效的節省了學校教學事務的宣傳人力,另外也加強了學生與學生之間以及學生與老師之間的相互交流。同時,一個好的校園視頻點播系統對提升學校的軟實力有重要作用。
本項目主要工作是基于BT的P2P校園點播系統的搭建。采用P2P的軟件架構,搭建即時通訊服務器,采用C++編程語言,在Windows操作系統上設計實現一個校園視頻點播系統。以方便校內員工與學生的視頻點播服務為主,方便教師可以及時上傳自己的講課視頻,同時可以下載其他教師發布的視頻,方便學生及時對上課所學內容進行回顧,同時也方面學生展示自己拍的一些視頻作品。具有管理身份人員也可以收集優秀的多媒體課件,教學錄像,實驗錄像放到資源庫中,方便實現精品的共享與交流。
圖1為系統結構圖,視頻管理系統負責視頻源文件的管理,包括源文件的編解碼與相應視頻處理,以及視頻文件的存儲,用戶認證模塊包括用戶的身份管理、用戶的視頻權限管理、用戶的添加與刪除,系統數據庫主要存放視頻文件的信息、視頻的播放信息等內容,媒體點播系統主要提供用戶的視頻列表以及啟動相應的種子文件下載。
圖1 系統結構圖
本系統是基于BitTorrent協議的,BT協議是典型的文件共享類P2P應用,如果直接將原始的BitTorrent下載機制應用到流媒體數據傳輸過程中,則它的數據塊選擇策略會導致播放器即將播放的數據塊不能及時得到,播放器會因此不能正常的播。顯然這種原始的BT下載機制不能滿足流媒體播放的要求,其關鍵原因是BT協議是專用于文件系統的,對實時性沒有要求,為了實現高效的文件傳輸,BT系統采用最少分片優先下載的策略,以亂序方式下載;這樣的下載策略不能保證即將播放的媒體文件分片比其文件分片優先得到,這樣的策略會影響用戶的觀看體驗。要實現用戶的流暢播放,需要保證一定范圍內(播放器即將播放的范圍)的媒體數據能及時地被下載。這樣下載緩沖區內的一部分數據(播放器即將播放的數據)能夠保證是連續的,可以實現流播放的連續性。可以看出對BitTorrent改進的最核心問題就是如何實現多媒體文件分片按特定順序請求和下載。
本文中用滑動窗口來實現BT協議從文件系統到流媒體系統的過渡,把文件分片劃在兩個窗口,緊急窗口和普通窗口,分別針對要緊急播放的數據和不太緊急的數據。滑動窗口機制如圖2所示。播放器即將播放的數據落在緊急窗口,其它的則落在普通窗口。保留了BitTorrent中的最少優先策略,以盡量保證系統的下載效率,只是最少優先策略的作用范圍縮小到普通窗口,是一種按局部最少優先策略。
圖2 滑動窗口機制
本系統采用的P2P下載模塊結構如圖3所示,我們把P2P多點下載模塊分為2個部分,一是與Tracker交互模塊,另一個是與其它peer的交互模塊。在與Tracker的交互模塊中,通過torrent文件中得到的Tracker信息,與Tracker建立連接,Tracker服務器返回下載同一視頻的其它鄰居節點列表。
圖3 下載界面
另一個模塊是與peer交互模塊,分為數據接收模塊和節點服務模塊。數據接收模塊主要是接收請求的數據塊、鄰居節點的管理和位圖文件更新。其中應用分片請求策略是接下來我們所要改進的重點。節點服務模塊負責響應其它節點分片請求和分片數據的發送和接收。
將服務器分為Web服務器,Tracker服務器,媒體文件服務器。
Tracker維護一個節點列表,該列表保存域內頻道節點記錄(頻道ID和節點IP),為新節點加入提供服務。用來記錄管理域內的節點信息,為新加入的節點提供鄰居節點信息。
本系統采用Apache作為Web服務器。Apache結構簡單,系統穩定,并可做代理服務器來使用。在系統的發布頁面展現給用戶詳細的視頻內容介紹,讓用戶可以隨意點播。后臺的管理系統提供自動的內容更新方法,只需要在后臺對內容進行分類管理,所有的內容添加、刪除、更都會直接在用戶端頁面上反映出來。因此,對于客戶端的Web頁面,不需要專門的維護。
系統的客戶端“P2P多點下載”部分采用了Shareaza軟件作為原型開發平臺,Shareaza是使用C++編寫的優秀的BitTorrent庫,是專門為實現BitTorrent的客戶端而開發,它集合了eDonkey、Gnutella(1和2)、和BT四種流行的P2P網絡結構模型,并可以用于Http、FTP下載。在已有的Shareaza基礎上,修改基于BT部分的代碼,在數據塊選擇上進行改進。當用戶點擊視頻時,P2P后臺啟動下載,區別于之前的無序下載,可以看到我們的下載機制是從起點開始按序下載。只要用戶沒有對播放器進行任何操作,下載機制都是順序下載的。從圖3中可以看出P2P后臺中顯示的當前下載的文件名和文件大小,連接的peer列表;有下載進度條和下載速度,直接反映給用戶當前下載的進度和速度;同時顯示的還有當前下載的狀態包括Downloading、Searching等,通知用戶當前下載的狀態;在狀態后面是當前連接的peer節點的信息,最后是下載完成的百分比。
結論:本系統分析了BT的總體結構,通信協議和核心算法。并對流媒體技術做出了介紹,主要解決了將BT協議應用到VOD系統中的兩個主要問題:一是BT的最少優先片選策略導致的“亂序”下載改成VOD流媒體播放的“順序”下載;二是根據VOD系統中用戶VCR操作導致的隨機片段要求對BT協議的改進。根據改進后的BT協議設計了一套視頻點播系統,集視頻的發布、管理、觀看于一體,在此基礎上搭建了一個簡易的系統平臺,并進行了測試。經測試,本系統能完成預定視頻點播功能,且性能穩定,擴展性好,可以滿足校園的視頻點播需求。