基于嵌入式WEB的視頻服務器的設計與實現
1.引言
本文引用地址:http://www.j9360.com/article/149957.htm視頻服務器一種對視音頻數據進行壓縮、存儲及處理的專用嵌入式設備,它在遠程監控及視頻等方面都有廣泛的應用。視頻服務器采用MPEG4或MPEG2等壓縮格式,在符合技術指標的情況下對視頻數據進行壓縮編碼,以滿足存儲和傳輸的要求。隨著音視頻編碼技術的不斷發展和寬帶網絡技術的發展,視頻傳輸的實現變得更容易和成本更低,使得視頻傳輸的需求日益增長。基于嵌入式WEB的網絡視頻監控系統逐漸得到了人們的廣泛關注。
采用嵌入式實時操作系統和專用的硬件結構,無論是軟件還是硬件都保證了嵌入式網絡視頻服務器比基于PC機的系統具有更高的實時性、穩定性和可靠性。本視頻服務器使用MPEG-4視頻壓縮技術,與MJPEG和H.263等壓縮方式比,具有壓縮比高、碼流小、圖像質量好等優點,特別適合于Internet環境下的實時監控,并且可以節省存儲空間。
本系統由攝像機、嵌入式WEB服務器、傳輸網絡和監控端組成。攝像機用來采集監控現場的視頻。嵌入式WEB服務器是整個監控系統的核心,有硬件和軟件兩個部分,詳細結構將在下面分別介紹。其主要功能包括:為監控端提供WEB訪問頁面;對監控端的訪問進行有效性、安全性檢查;響應監控端的請求,為監控端提供所需要的視頻圖像;接收監控端的控制信息,經過軟硬件轉換后對攝像機進行控制。監控系統的原理圖如圖1所示。
圖 1 嵌入式視頻監控系統示意圖
3. 嵌入式 WEB 服務器的硬件結構
嵌入式WEB服務器的硬件結構如圖2所示。其主要由CPU芯片、MPEG-4音視頻編碼芯片、Flash芯片、SDRAM內存、以太網絡接口、大容量硬盤組成。其中CPU采用MOTOROLA公司的PowerPC系列嵌入式通信處理器MPC8250。MPEG-4音視頻編碼芯片完成對從攝像頭傳送過來的視頻數據的壓縮和編碼。根據網絡帶寬、拓撲結構以及對圖像質量的要求,本系統選用基于MPEG-4標準的分層可擴展性編碼方案。壓縮后的視頻數據根據需要,可以存儲在大容量硬盤中,或者通過以太網進行網絡傳輸。為了實現視頻存儲功能,需要采用大容量的硬盤。
圖 2 嵌入式 WEB 服務器的硬件結構
4. 嵌入式 WEB 服務器的軟件系統
4.1 嵌入式操作系統
嵌入式操作系統是支持嵌入式系統應用的操作系統軟件,是在系統實時性、硬件相關性、軟件固態化等方面有著突出特點的專用操作系統。
4.2 應用軟件
服務器的應用軟件結構如圖3所示。其主要由WEB服務器、CGI程序、嵌入式數據庫mSQL、視頻調度與傳輸模塊、存儲管理與調度模塊、攝像機控制模塊等幾個重要部分組成。
4.2.1 WEB服務器與CGI程序
WEB服務器通過HTTP協議與監控端瀏覽器軟件進行信息交互,提供其他應用程序模塊的接口以及視頻數據瀏覽界面和攝像機控制界面。此外,它還要對監控端的訪問權限進行控制,過濾監控端的請求和控制信息,處理多個監控端的請求和控制的同步和優先級問題。WEB服務器通過調用CGI程序實現和瀏覽器的交互,也就是CGI程序接受瀏覽器發送給WEB服務器的信息,進行處理,將響應結果再回送給WEB服務器及瀏覽器。原則CGI程序可以用任何程序設計語言編寫,但是用C語言編寫的CGI程序具有執行速度快、安全性高等特點。
圖3 嵌入式 WEB 服務器的應用軟件結構
4.2.2嵌入式數據庫mSQL
在本系統中,用戶信息的存儲,用戶的登錄登出,視頻設備參數的存儲與查詢,視頻文件的存儲與查詢等,都需要一個嵌入式數據庫。綜合考慮,本系統使用mSQL(MiniSQL)作為本系統的后臺數據庫。mSQL是一款優秀的嵌入式數據庫,體系結構小巧,占用系統資源少,特別適合在嵌入式Linux系統中使用。
4.2.3視頻調度與傳輸模塊
視頻數據的傳輸一般采UDP網絡通訊協議,而采用UDP的IP傳送方式有點播、廣播和組播三種,其中組播是服務器只向特定的用戶組發送一個數據包,組中的各用戶可以共享這一數據包,而組外的用戶卻無法接收到。本系統采用IP組播方式,采用組播技術的優點有以下幾點:可以讓服務器承擔大量客戶端的視頻數據播送要求;由于數據包拷貝數量和發送目的地址少,大大減少了網絡中傳輸的數據總量,從而保證較高的服務質量;減小了視頻數據流傳輸的帶寬占用,減輕了服務器的負擔。
本系統采用的網絡傳輸協議使用RTP/UDP/IP模型。RTP協議是一種提供端對端的實時媒體傳輸服務的協議,由實時傳輸協議RTP和實時傳輸控制協議RTCP兩個部分組成。RTP/UDP/IP的方式兼顧了視頻傳輸的實時性與QoS保證。同時針對傳輸網絡狀況的不確定性,還可以采取一定的擁塞控制和差錯控制策略。
4.2.4存儲管理與調度模塊
存儲管理模塊的主要功能是將壓縮和編碼后的視頻信息根據一定的策略存儲至磁盤中特定的區域,將視頻文件信息存儲到嵌入式數據庫中,同時響應視頻調度與傳輸模塊的請求,按一定的磁盤調度策略和優先級順序從磁盤中讀取視頻數據至內存緩沖區。本系統采用等長分組存儲策略,即將視頻信息按照時序關系分割成若干數據單元,這些數據單元稱作分組,將每個分組存儲于一個大小固定的存儲單元內。
4.2.5攝像機控制模塊
攝像機控制模塊主要實現對攝像機的控制。在監控端,用戶通過瀏覽器向WEB服務器發送攝像機控制命令,該控制命令經WEB服務器接受和處理后,再通過CGI程序發送給攝像機控制模塊,然后被轉換成相應的對攝像機控制的硬件操作指令,從而實現對攝像機云臺鏡頭的遠程控制。
隨著社會的發展,人們對視頻服務器的設計不斷提出新的要求。當系統突然面對大量的客戶請求時,必須解決圖像、聲音數據流播放的高速、連續、可靠和同步的問題。這就要求視頻服務器在設計時采用一定的策略來改善這方面的性能。為了進一步提高視頻服務器的服務用戶數,節省視頻服務器的系統資源,可采用多播的方式把那些點播同一節目且具有相同(相近)路由的用戶統一進行服務。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論