+ 李愛卿 國家新聞出版廣電總局四九一臺
基于WiFi的多媒體視訊發(fā)布系統(tǒng)設(shè)計與實現(xiàn)
+ 李愛卿國家新聞出版廣電總局四九一臺
本文以當(dāng)下成熟的WiFi熱點技術(shù)平臺為基礎(chǔ),以多媒體服務(wù)信息展示為基本功能,整合了即時通訊、媒體資料管理、嵌入式媒體播放、實時信息發(fā)布等應(yīng)用,提供一整套經(jīng)濟可行的視訊發(fā)布技術(shù)解決方案,并以客戶端即時通訊為例,深入剖析了設(shè)計實現(xiàn)過程。
多媒體、發(fā)布、即時通訊
前言:隨著近幾年來WLAN技術(shù)領(lǐng)域飛速發(fā)展,無線局域網(wǎng)技術(shù)從最初的802.11a發(fā)展至802.11g/n,目前最成熟的技術(shù)是802.11n,傳輸速率由802.11a及802.11g提供的54Mbps、108Mbps,提高達(dá)350Mbps甚至高達(dá)475Mbps,同時發(fā)展的802.11ac采用5G頻段,可實現(xiàn)最高達(dá)1Gbps的傳輸速率。
近年多媒體應(yīng)用的普及,以WLAN技術(shù)為基礎(chǔ)的WiFi熱點平臺覆蓋范圍逐步加大,網(wǎng)絡(luò)化、智能化是多媒體視訊發(fā)布的發(fā)展趨勢,對于終端部署地理區(qū)域分散、規(guī)模較大的實務(wù)應(yīng)用來說,由于成本的因素而使得實施、管理與維護相當(dāng)困難,已成為技術(shù)可行性與經(jīng)濟可行性之間平衡取舍的挑戰(zhàn)。筆者認(rèn)為,系統(tǒng)建設(shè)時設(shè)計人員必須對實際需求有深刻了解與領(lǐng)悟,在保障可靠實施運行前提下,架構(gòu)設(shè)計還需不失靈活性、擴展性。文中設(shè)計思路,均來源于計算機與通訊技術(shù)領(lǐng)域工作實踐。
早期的BBS電子社區(qū)多媒體發(fā)布系統(tǒng)的應(yīng)用多是以播放廣告、顯示宣傳信息功能為主,由于國內(nèi)網(wǎng)絡(luò)通信資費較高,基于對成本因素的考慮,眾多的企業(yè)與單位紛紛采用功能單一、技術(shù)相對落后的單機版方案,功能只是單向信息顯示與廣告呈現(xiàn)。當(dāng)下人們對信息依賴程度的要求越來越高,希望多媒體廣告發(fā)布系統(tǒng)功能多樣化,能在公共場所能及時的提供所需的信息服務(wù),將更為豐富的信息快速反饋給系統(tǒng)用戶。那么筆者認(rèn)為,系統(tǒng)的多樣性將顯得尤為重要,這些媒體信息需要能夠準(zhǔn)確、及時的發(fā)布到終端設(shè)備進行播放與展示。新一代的多媒體視訊發(fā)布需求將更加側(cè)重提供實時信息顯示、交互查詢等新功能,并能基于WIFI、局域網(wǎng)進行登錄。筆者結(jié)合對通訊信息技術(shù)工作實踐,在本文設(shè)計中擬劃分如下:

如圖1所示,本文系統(tǒng)設(shè)計主要劃分為前臺系統(tǒng)和后臺系統(tǒng)兩大功能,而在前臺系統(tǒng)中,包含電子社區(qū)論壇和多媒體控制系統(tǒng)兩個子系統(tǒng),用以實現(xiàn)與用戶的主要交互、用戶界面等,實現(xiàn)與用戶的實時友好交互,完成相關(guān)數(shù)據(jù)展示及用戶數(shù)據(jù)收集等功能,而后臺系統(tǒng)主要包含電子社區(qū)服務(wù)器,實現(xiàn)相關(guān)的邏輯控制及數(shù)據(jù)存儲,是整個系統(tǒng)的邏輯控制中心,完成相關(guān)數(shù)據(jù)的處理和持久化存儲,從而實現(xiàn)數(shù)據(jù)永久保存、便于查詢等相關(guān)功能。
多媒體視訊發(fā)布系統(tǒng)擬采用基于C/S模式的三層架構(gòu)來設(shè)計如所示:通訊中采用加密方式,保證數(shù)據(jù)傳輸安全、完整,并保證與主服務(wù)器中數(shù)據(jù)庫數(shù)據(jù)的實時一致性。開發(fā)模式是C/S開發(fā)模式這種工作模式主要用于系統(tǒng)管理方面,主要是對多媒體處理的管理。系統(tǒng)開發(fā)平臺采用微軟公司.NET開發(fā)平臺,。開發(fā)語言采用C#與C++完成。前端頁面和管理部分采用C#語言開發(fā),使開發(fā)效率最高。多媒體處理部分采用C++開發(fā),使多媒體處理效率最高。網(wǎng)頁和管理部分采用C#語言開發(fā)。
系統(tǒng)主要包含客戶端和服務(wù)器端兩個部分的功能,其中:
(1)電子社區(qū)多媒體控制系統(tǒng)客戶端:

圖2 多媒體發(fā)布系統(tǒng)架構(gòu)圖
電子社區(qū)多媒體控制系統(tǒng)的客戶端功能主要包含音頻播放、視頻播放、音視頻格式轉(zhuǎn)換、音軌壓縮及錄音等主要功能,實現(xiàn)電子社區(qū)在客戶端的所有音視頻的播放、格式轉(zhuǎn)換以及音視頻的音軌壓縮等功能,同時實現(xiàn)音頻文件的錄音功能,從而
如圖2所示,多媒體發(fā)布系統(tǒng)設(shè)計的主要架構(gòu)包含數(shù)據(jù)庫、服務(wù)器及客戶端三個功能模塊,其中:① 數(shù)據(jù)層:用來完成系統(tǒng)中數(shù)據(jù)的管理,提供數(shù)據(jù)信息,擬采用Microsoft SQL Server作為數(shù)據(jù)庫管理系統(tǒng),提供數(shù)據(jù)庫存取等服務(wù)。 ② 功能層:提供了服務(wù)組件層與底層數(shù)據(jù)的交換,完成系統(tǒng)業(yè)務(wù)邏輯的實現(xiàn),實現(xiàn)。③表示層:由表現(xiàn)層和控制層組成,提供用戶與系統(tǒng)進行交互的界面,實現(xiàn)與用戶的交互、數(shù)據(jù)展示及相關(guān)數(shù)據(jù)收集等功能。
系統(tǒng)以計算機技術(shù)核心,根據(jù)流程要求,數(shù)據(jù)庫設(shè)計即要保證降低對網(wǎng)絡(luò)環(huán)境的要求,又要保證數(shù)據(jù)同步傳輸?shù)陌踩浴⒁恢滦浴⒎奖阈浴?shù)據(jù)庫系統(tǒng)采用微軟公司SQL Server 2008數(shù)據(jù)庫系統(tǒng),SQL Server 2010數(shù)據(jù)庫為核心主數(shù)據(jù)庫,運行于系統(tǒng)主服務(wù)器上。系統(tǒng)通過多媒體處理模塊完成數(shù)據(jù)的上傳與下載同步工作,實現(xiàn)全方位的本地客戶端功能。其中:
① 音頻播放:可以實現(xiàn)對計算機多媒體硬件(如聲卡、麥克風(fēng)等)作出測試,并且可以進行錄音、放音、音頻文件的打開和保存。

② 視頻播放:可以播放常見格式的視頻文件。
③ 格式轉(zhuǎn)換:可以實現(xiàn)對音頻文件進行格式轉(zhuǎn)換,尤其是將.wav格式轉(zhuǎn)換為.mp3格式。
④ 音軌壓縮:可以實現(xiàn)在對音軌質(zhì)量有一定損失的情況下,對音頻文件進行壓縮,節(jié)省系統(tǒng)空間。
(2) 電子社區(qū)多媒體控制系統(tǒng)服務(wù)器端
電子社區(qū)多媒體控制系統(tǒng)的服務(wù)器端主要包含音視頻在內(nèi)的多媒體的上傳下載以及用戶之間的即時通訊等功能,從而實現(xiàn)整個系統(tǒng)的服務(wù)器端所有的功能,實現(xiàn)整個系統(tǒng)的正常邏輯[14]。詳情如下所示:
① 網(wǎng)絡(luò)瀏覽器:具有常規(guī)瀏覽器的基本功能,將電子社區(qū)論壇設(shè)為首頁。
② FTP傳輸:在FTP服務(wù)具備和服務(wù)器支持的條件下,給出連接,實現(xiàn)FTP傳輸。
③ 即時通訊:電子社區(qū)內(nèi)部聲音即時通訊功能。

多媒體發(fā)布系統(tǒng)客戶模塊功能結(jié)構(gòu)展示如下;
如圖3所示,客戶端功能主要包含音頻播放、視頻播放、音視頻格式轉(zhuǎn)換、音軌壓縮及錄音等主要功能,實現(xiàn)電子社區(qū)在客戶端的所有音視頻的播放、格式轉(zhuǎn)換以及音視頻的音軌壓縮等功能,同時實現(xiàn)音頻文件的錄音功能,從而實現(xiàn)全方位的本地客戶端功能。
如圖4所示,服務(wù)器端主要包含音視頻在內(nèi)的多媒體的上傳下載以及用戶之間的即時通訊等功能,從而實現(xiàn)整個系統(tǒng)的服務(wù)器端所有的功能,實現(xiàn)整個系統(tǒng)的正常邏輯。
本文設(shè)計的多媒體發(fā)布系統(tǒng),整合了先進的通訊技術(shù)與計算機信息技術(shù),搭建環(huán)境基于單機平臺與企業(yè)級局域網(wǎng),屬于有一定網(wǎng)絡(luò)應(yīng)用功能的多媒體控制系統(tǒng)。在有網(wǎng)絡(luò)平臺和服務(wù)器支持的情況下,具有FTP上傳下載和即時通訊功能。系統(tǒng)數(shù)據(jù)庫、文件服務(wù)器等數(shù)據(jù)源采用master-slave的三份冗余備份,其中一臺master服務(wù)器,兩臺slave服務(wù)器,當(dāng)其中某一數(shù)據(jù)庫或者服務(wù)器宕機時,另外兩臺中的某一臺通過選舉算法自動接管服務(wù);當(dāng)出現(xiàn)數(shù)據(jù)災(zāi)難時,可對比三臺中的數(shù)據(jù)情況,以災(zāi)備算法計算出其中數(shù)據(jù)壞掉的那臺數(shù)據(jù)庫服務(wù)器或者文件服務(wù)器,然后通過和正常的服務(wù)器上的數(shù)據(jù)進行對比,快速恢復(fù)數(shù)據(jù),保證數(shù)據(jù)的安全性和完整性。
硬件環(huán)境配置采用Internet公司I7系列級別處理器,DDR38G內(nèi)存,6TB以上硬盤空間。服務(wù)器端與系統(tǒng)終端為Windows 7 操作系統(tǒng)。通訊協(xié)議采用Internet上的標(biāo)準(zhǔn)協(xié)議--TCP/IP協(xié)議。通訊協(xié)議采用Internet上的標(biāo)準(zhǔn)協(xié)議TCP/IP協(xié)議。系統(tǒng)擬采用的C/S工作模式是建立在TCP/IP通訊協(xié)議基礎(chǔ)上,包括專用通訊軟件的開發(fā)也以TCP/IP協(xié)議為基礎(chǔ)。
通訊安全技術(shù)方面,在開發(fā)中采用多級權(quán)限管理,只有合法用戶才能訪問指定的資源與功能。通訊軟件采用數(shù)據(jù)壓縮與MD5軟件加密技術(shù)措施。保證數(shù)據(jù)通訊過程中的數(shù)據(jù)完整、防篡改與被數(shù)據(jù)竊取。
數(shù)據(jù)庫實現(xiàn):結(jié)合系統(tǒng)應(yīng)用環(huán)境,筆者構(gòu)建出較為穩(wěn)定及優(yōu)化的數(shù)據(jù)庫模式,從而來創(chuàng)建數(shù)據(jù)庫應(yīng)用系統(tǒng),以滿足多元的應(yīng)用需求,能夠快速有效地儲存數(shù)據(jù)。多媒體發(fā)布系統(tǒng)的數(shù)據(jù)庫邏輯設(shè)計主要圍繞著用戶、權(quán)限、視頻、錄音及即時對話等實體來進行,經(jīng)過數(shù)據(jù)庫分析建模,最終設(shè)計出15張數(shù)據(jù)庫表。其中系統(tǒng)內(nèi)各數(shù)據(jù)之間的實體屬性關(guān)系圖如圖5所示。
客戶端即時通訊實現(xiàn):用戶可通過手機、平板電腦由WIFI接入局域網(wǎng)客戶端,點擊客戶端圖標(biāo),運行程序,進行媒體信息的瀏覽與即時通訊。進入客戶端登錄界面,用戶輸入登陸名和密碼后,單擊登陸進入手機客戶端。進入詳細(xì)信息頁面,顯示內(nèi)容:主題、發(fā)件人、類型、發(fā)送時間、是否發(fā)送短信、內(nèi)容,“回復(fù)”、“刪除”和“返回”按鈕;“刪除”時提示“您是否確定刪除該信息”,提供“確定”“取消”按鈕,確定后保存到廢件箱中,取消則關(guān)閉彈出窗口。點擊“回復(fù)”進入回復(fù)頁面,信息回復(fù)頁面所示,單擊“發(fā)送”直接發(fā)送信息,“保存”后信息保存到草稿箱,“返回”則退回到收信息頁面。

圖5 系統(tǒng)數(shù)據(jù)庫實體屬性關(guān)系圖
即時通訊實現(xiàn)代碼如下:
public String toAddCourseInfor(HttpServletR equest request,Model model) {
User user=(User)request.getSession(). getAttribute("loginUser");
String couSchCode = user.getSchoolCode();

String recordsCount = subjectBlogic.querySubjectInforCount(couSchCode);
PagingOperation paging = new PagingOperation(curPage, recordsCount, beginPos,"10",pagingFlag); paging.execute();List list = null;
SubjectManagerVo vo = new SubjectManagerVo();
vo.setBeginPos(Integer.parseInt(paging.getBeginPos()));
vo.setRecords(Integer.parseInt(recordsCount));
vo.setSchool(couSchCode); list = subjectBlogic.querySubjectInfor(vo);
if (list.size() == 0) {model.addAttribute("subjectInfor", null);
} else {model.addAttribute("subjectInfor", list);
}}
視頻發(fā)布播放實現(xiàn):運行AppWizard創(chuàng)建一個單文檔應(yīng)用程序。 添加成員變量,右鍵單擊AVI Classes下的VAVIView,在彈出菜單中選擇Add Member Variable…項。在VariableType中填入HWND,在Variable Name中添入m_hwndMC,單擊OK按鈕。
初始化剛添加的成員變量,定位到視圖類的構(gòu)造函數(shù)CAVIView::CAVIView(),添加代碼如下:

作用:用它調(diào)用函數(shù)產(chǎn)生播放器窗口函數(shù),用來播放視頻文件
添加一個新的菜單項,在“打開”和“保存”菜單項之間加入一個新的菜單項“打開AVI文件”,其ID為ID_AVI,Caption為“打開AVI文件”。
添加新菜單項的消息響應(yīng)函數(shù),利用Class Wizard生成“打開AVI文件”菜單ID_AVI的COMMAND消息的響應(yīng)函數(shù)CAVIView::OnAvi().并定位到該函數(shù),在其中加入以下代碼:

dlg(TRUE,”avi”,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,”AVI文件(*.avi)|*.avi||”);作用是創(chuàng)建一個文件列表,選擇要打開的.avi文件。

這條函數(shù)的作用是判斷如果是NULL,說明現(xiàn)在已經(jīng)存在一個正在播放的視頻文件,所以就新建一個;如果是一個文件的路徑,說明目前沒有正在播放的視頻文件,就打開該文件的路徑文件。
函M_hwndMCI=MCIWndCreate(m_hWnd,AfxGetInstanceHandle(),0,filename)的作用是打開選擇文件名的.avi文件。
編輯StdAfx.h文件,在StdAfx.h文件中的最后一行#endif語句之前加入以下代碼:

作用是添加庫文件,讓程序可以識別代碼,否則前邊的所有工作都白費了,而且可以調(diào)用vfw32.lib實現(xiàn)現(xiàn)成的基本多媒體播放發(fā)布功能完畢。
結(jié)語、
該方案可應(yīng)用于大型小區(qū)或企事業(yè)單位內(nèi)部多媒體信息發(fā)布,由于篇幅所限,筆者僅就系統(tǒng)設(shè)計思路和架構(gòu)進行描述,并精選了系統(tǒng)設(shè)計開發(fā)的關(guān)鍵思路與技術(shù)進行剖析。本文權(quán)作拋磚引玉,供廣大通訊技術(shù)領(lǐng)域同仁共同探討研究。
(1) 樊昌信.現(xiàn)代通訊技術(shù).人民郵電出版社.2009-10-1
(2)黃榮懷.多媒體系統(tǒng)與網(wǎng)站管理.北京師范大學(xué).2014-10-17
李愛卿 國家新聞出版廣電總局四九一臺高級工程師,長期從事廣播電視傳輸工作,聯(lián)系方式:13691097941。