+ 李愛(ài)卿 國(guó)家新聞出版廣電總局四九一臺(tái)
基于WiFi的多媒體視訊發(fā)布系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
+ 李愛(ài)卿國(guó)家新聞出版廣電總局四九一臺(tái)
本文以當(dāng)下成熟的WiFi熱點(diǎn)技術(shù)平臺(tái)為基礎(chǔ),以多媒體服務(wù)信息展示為基本功能,整合了即時(shí)通訊、媒體資料管理、嵌入式媒體播放、實(shí)時(shí)信息發(fā)布等應(yīng)用,提供一整套經(jīng)濟(jì)可行的視訊發(fā)布技術(shù)解決方案,并以客戶端即時(shí)通訊為例,深入剖析了設(shè)計(jì)實(shí)現(xiàn)過(guò)程。
多媒體、發(fā)布、即時(shí)通訊
前言:隨著近幾年來(lái)WLAN技術(shù)領(lǐng)域飛速發(fā)展,無(wú)線局域網(wǎng)技術(shù)從最初的802.11a發(fā)展至802.11g/n,目前最成熟的技術(shù)是802.11n,傳輸速率由802.11a及802.11g提供的54Mbps、108Mbps,提高達(dá)350Mbps甚至高達(dá)475Mbps,同時(shí)發(fā)展的802.11ac采用5G頻段,可實(shí)現(xiàn)最高達(dá)1Gbps的傳輸速率。
近年多媒體應(yīng)用的普及,以WLAN技術(shù)為基礎(chǔ)的WiFi熱點(diǎn)平臺(tái)覆蓋范圍逐步加大,網(wǎng)絡(luò)化、智能化是多媒體視訊發(fā)布的發(fā)展趨勢(shì),對(duì)于終端部署地理區(qū)域分散、規(guī)模較大的實(shí)務(wù)應(yīng)用來(lái)說(shuō),由于成本的因素而使得實(shí)施、管理與維護(hù)相當(dāng)困難,已成為技術(shù)可行性與經(jīng)濟(jì)可行性之間平衡取舍的挑戰(zhàn)。筆者認(rèn)為,系統(tǒng)建設(shè)時(shí)設(shè)計(jì)人員必須對(duì)實(shí)際需求有深刻了解與領(lǐng)悟,在保障可靠實(shí)施運(yùn)行前提下,架構(gòu)設(shè)計(jì)還需不失靈活性、擴(kuò)展性。文中設(shè)計(jì)思路,均來(lái)源于計(jì)算機(jī)與通訊技術(shù)領(lǐng)域工作實(shí)踐。
早期的BBS電子社區(qū)多媒體發(fā)布系統(tǒng)的應(yīng)用多是以播放廣告、顯示宣傳信息功能為主,由于國(guó)內(nèi)網(wǎng)絡(luò)通信資費(fèi)較高,基于對(duì)成本因素的考慮,眾多的企業(yè)與單位紛紛采用功能單一、技術(shù)相對(duì)落后的單機(jī)版方案,功能只是單向信息顯示與廣告呈現(xiàn)。當(dāng)下人們對(duì)信息依賴程度的要求越來(lái)越高,希望多媒體廣告發(fā)布系統(tǒng)功能多樣化,能在公共場(chǎng)所能及時(shí)的提供所需的信息服務(wù),將更為豐富的信息快速反饋給系統(tǒng)用戶。那么筆者認(rèn)為,系統(tǒng)的多樣性將顯得尤為重要,這些媒體信息需要能夠準(zhǔn)確、及時(shí)的發(fā)布到終端設(shè)備進(jìn)行播放與展示。新一代的多媒體視訊發(fā)布需求將更加側(cè)重提供實(shí)時(shí)信息顯示、交互查詢等新功能,并能基于WIFI、局域網(wǎng)進(jìn)行登錄。筆者結(jié)合對(duì)通訊信息技術(shù)工作實(shí)踐,在本文設(shè)計(jì)中擬劃分如下:
如圖1所示,本文系統(tǒng)設(shè)計(jì)主要?jiǎng)澐譃榍芭_(tái)系統(tǒng)和后臺(tái)系統(tǒng)兩大功能,而在前臺(tái)系統(tǒng)中,包含電子社區(qū)論壇和多媒體控制系統(tǒng)兩個(gè)子系統(tǒng),用以實(shí)現(xiàn)與用戶的主要交互、用戶界面等,實(shí)現(xiàn)與用戶的實(shí)時(shí)友好交互,完成相關(guān)數(shù)據(jù)展示及用戶數(shù)據(jù)收集等功能,而后臺(tái)系統(tǒng)主要包含電子社區(qū)服務(wù)器,實(shí)現(xiàn)相關(guān)的邏輯控制及數(shù)據(jù)存儲(chǔ),是整個(gè)系統(tǒng)的邏輯控制中心,完成相關(guān)數(shù)據(jù)的處理和持久化存儲(chǔ),從而實(shí)現(xiàn)數(shù)據(jù)永久保存、便于查詢等相關(guān)功能。
多媒體視訊發(fā)布系統(tǒng)擬采用基于C/S模式的三層架構(gòu)來(lái)設(shè)計(jì)如所示:通訊中采用加密方式,保證數(shù)據(jù)傳輸安全、完整,并保證與主服務(wù)器中數(shù)據(jù)庫(kù)數(shù)據(jù)的實(shí)時(shí)一致性。開(kāi)發(fā)模式是C/S開(kāi)發(fā)模式這種工作模式主要用于系統(tǒng)管理方面,主要是對(duì)多媒體處理的管理。系統(tǒng)開(kāi)發(fā)平臺(tái)采用微軟公司.NET開(kāi)發(fā)平臺(tái),。開(kāi)發(fā)語(yǔ)言采用C#與C++完成。前端頁(yè)面和管理部分采用C#語(yǔ)言開(kāi)發(fā),使開(kāi)發(fā)效率最高。多媒體處理部分采用C++開(kāi)發(fā),使多媒體處理效率最高。網(wǎng)頁(yè)和管理部分采用C#語(yǔ)言開(kāi)發(fā)。
系統(tǒng)主要包含客戶端和服務(wù)器端兩個(gè)部分的功能,其中:
(1)電子社區(qū)多媒體控制系統(tǒng)客戶端:
圖2 多媒體發(fā)布系統(tǒng)架構(gòu)圖
電子社區(qū)多媒體控制系統(tǒng)的客戶端功能主要包含音頻播放、視頻播放、音視頻格式轉(zhuǎn)換、音軌壓縮及錄音等主要功能,實(shí)現(xiàn)電子社區(qū)在客戶端的所有音視頻的播放、格式轉(zhuǎn)換以及音視頻的音軌壓縮等功能,同時(shí)實(shí)現(xiàn)音頻文件的錄音功能,從而
如圖2所示,多媒體發(fā)布系統(tǒng)設(shè)計(jì)的主要架構(gòu)包含數(shù)據(jù)庫(kù)、服務(wù)器及客戶端三個(gè)功能模塊,其中:① 數(shù)據(jù)層:用來(lái)完成系統(tǒng)中數(shù)據(jù)的管理,提供數(shù)據(jù)信息,擬采用Microsoft SQL Server作為數(shù)據(jù)庫(kù)管理系統(tǒng),提供數(shù)據(jù)庫(kù)存取等服務(wù)。 ② 功能層:提供了服務(wù)組件層與底層數(shù)據(jù)的交換,完成系統(tǒng)業(yè)務(wù)邏輯的實(shí)現(xiàn),實(shí)現(xiàn)。③表示層:由表現(xiàn)層和控制層組成,提供用戶與系統(tǒng)進(jìn)行交互的界面,實(shí)現(xiàn)與用戶的交互、數(shù)據(jù)展示及相關(guān)數(shù)據(jù)收集等功能。
系統(tǒng)以計(jì)算機(jī)技術(shù)核心,根據(jù)流程要求,數(shù)據(jù)庫(kù)設(shè)計(jì)即要保證降低對(duì)網(wǎng)絡(luò)環(huán)境的要求,又要保證數(shù)據(jù)同步傳輸?shù)陌踩浴⒁恢滦?、方便性。?shù)據(jù)庫(kù)系統(tǒng)采用微軟公司SQL Server 2008數(shù)據(jù)庫(kù)系統(tǒng),SQL Server 2010數(shù)據(jù)庫(kù)為核心主數(shù)據(jù)庫(kù),運(yùn)行于系統(tǒng)主服務(wù)器上。系統(tǒng)通過(guò)多媒體處理模塊完成數(shù)據(jù)的上傳與下載同步工作,實(shí)現(xiàn)全方位的本地客戶端功能。其中:
① 音頻播放:可以實(shí)現(xiàn)對(duì)計(jì)算機(jī)多媒體硬件(如聲卡、麥克風(fēng)等)作出測(cè)試,并且可以進(jìn)行錄音、放音、音頻文件的打開(kāi)和保存。
② 視頻播放:可以播放常見(jiàn)格式的視頻文件。
③ 格式轉(zhuǎn)換:可以實(shí)現(xiàn)對(duì)音頻文件進(jìn)行格式轉(zhuǎn)換,尤其是將.wav格式轉(zhuǎn)換為.mp3格式。
④ 音軌壓縮:可以實(shí)現(xiàn)在對(duì)音軌質(zhì)量有一定損失的情況下,對(duì)音頻文件進(jìn)行壓縮,節(jié)省系統(tǒng)空間。
(2) 電子社區(qū)多媒體控制系統(tǒng)服務(wù)器端
電子社區(qū)多媒體控制系統(tǒng)的服務(wù)器端主要包含音視頻在內(nèi)的多媒體的上傳下載以及用戶之間的即時(shí)通訊等功能,從而實(shí)現(xiàn)整個(gè)系統(tǒng)的服務(wù)器端所有的功能,實(shí)現(xiàn)整個(gè)系統(tǒng)的正常邏輯[14]。詳情如下所示:
① 網(wǎng)絡(luò)瀏覽器:具有常規(guī)瀏覽器的基本功能,將電子社區(qū)論壇設(shè)為首頁(yè)。
② FTP傳輸:在FTP服務(wù)具備和服務(wù)器支持的條件下,給出連接,實(shí)現(xiàn)FTP傳輸。
③ 即時(shí)通訊:電子社區(qū)內(nèi)部聲音即時(shí)通訊功能。
多媒體發(fā)布系統(tǒng)客戶模塊功能結(jié)構(gòu)展示如下;
如圖3所示,客戶端功能主要包含音頻播放、視頻播放、音視頻格式轉(zhuǎn)換、音軌壓縮及錄音等主要功能,實(shí)現(xiàn)電子社區(qū)在客戶端的所有音視頻的播放、格式轉(zhuǎn)換以及音視頻的音軌壓縮等功能,同時(shí)實(shí)現(xiàn)音頻文件的錄音功能,從而實(shí)現(xiàn)全方位的本地客戶端功能。
如圖4所示,服務(wù)器端主要包含音視頻在內(nèi)的多媒體的上傳下載以及用戶之間的即時(shí)通訊等功能,從而實(shí)現(xiàn)整個(gè)系統(tǒng)的服務(wù)器端所有的功能,實(shí)現(xiàn)整個(gè)系統(tǒng)的正常邏輯。
本文設(shè)計(jì)的多媒體發(fā)布系統(tǒng),整合了先進(jìn)的通訊技術(shù)與計(jì)算機(jī)信息技術(shù),搭建環(huán)境基于單機(jī)平臺(tái)與企業(yè)級(jí)局域網(wǎng),屬于有一定網(wǎng)絡(luò)應(yīng)用功能的多媒體控制系統(tǒng)。在有網(wǎng)絡(luò)平臺(tái)和服務(wù)器支持的情況下,具有FTP上傳下載和即時(shí)通訊功能。系統(tǒng)數(shù)據(jù)庫(kù)、文件服務(wù)器等數(shù)據(jù)源采用master-slave的三份冗余備份,其中一臺(tái)master服務(wù)器,兩臺(tái)slave服務(wù)器,當(dāng)其中某一數(shù)據(jù)庫(kù)或者服務(wù)器宕機(jī)時(shí),另外兩臺(tái)中的某一臺(tái)通過(guò)選舉算法自動(dòng)接管服務(wù);當(dāng)出現(xiàn)數(shù)據(jù)災(zāi)難時(shí),可對(duì)比三臺(tái)中的數(shù)據(jù)情況,以災(zāi)備算法計(jì)算出其中數(shù)據(jù)壞掉的那臺(tái)數(shù)據(jù)庫(kù)服務(wù)器或者文件服務(wù)器,然后通過(guò)和正常的服務(wù)器上的數(shù)據(jù)進(jìn)行對(duì)比,快速恢復(fù)數(shù)據(jù),保證數(shù)據(jù)的安全性和完整性。
硬件環(huán)境配置采用Internet公司I7系列級(jí)別處理器,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ǔ)上,包括專用通訊軟件的開(kāi)發(fā)也以TCP/IP協(xié)議為基礎(chǔ)。
通訊安全技術(shù)方面,在開(kāi)發(fā)中采用多級(jí)權(quán)限管理,只有合法用戶才能訪問(wèn)指定的資源與功能。通訊軟件采用數(shù)據(jù)壓縮與MD5軟件加密技術(shù)措施。保證數(shù)據(jù)通訊過(guò)程中的數(shù)據(jù)完整、防篡改與被數(shù)據(jù)竊取。
數(shù)據(jù)庫(kù)實(shí)現(xiàn):結(jié)合系統(tǒng)應(yīng)用環(huán)境,筆者構(gòu)建出較為穩(wěn)定及優(yōu)化的數(shù)據(jù)庫(kù)模式,從而來(lái)創(chuàng)建數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng),以滿足多元的應(yīng)用需求,能夠快速有效地儲(chǔ)存數(shù)據(jù)。多媒體發(fā)布系統(tǒng)的數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)主要圍繞著用戶、權(quán)限、視頻、錄音及即時(shí)對(duì)話等實(shí)體來(lái)進(jìn)行,經(jīng)過(guò)數(shù)據(jù)庫(kù)分析建模,最終設(shè)計(jì)出15張數(shù)據(jù)庫(kù)表。其中系統(tǒng)內(nèi)各數(shù)據(jù)之間的實(shí)體屬性關(guān)系圖如圖5所示。
客戶端即時(shí)通訊實(shí)現(xiàn):用戶可通過(guò)手機(jī)、平板電腦由WIFI接入局域網(wǎng)客戶端,點(diǎn)擊客戶端圖標(biāo),運(yùn)行程序,進(jìn)行媒體信息的瀏覽與即時(shí)通訊。進(jìn)入客戶端登錄界面,用戶輸入登陸名和密碼后,單擊登陸進(jìn)入手機(jī)客戶端。進(jìn)入詳細(xì)信息頁(yè)面,顯示內(nèi)容:主題、發(fā)件人、類型、發(fā)送時(shí)間、是否發(fā)送短信、內(nèi)容,“回復(fù)”、“刪除”和“返回”按鈕;“刪除”時(shí)提示“您是否確定刪除該信息”,提供“確定”“取消”按鈕,確定后保存到廢件箱中,取消則關(guān)閉彈出窗口。點(diǎn)擊“回復(fù)”進(jìn)入回復(fù)頁(yè)面,信息回復(fù)頁(yè)面所示,單擊“發(fā)送”直接發(fā)送信息,“保存”后信息保存到草稿箱,“返回”則退回到收信息頁(yè)面。
圖5 系統(tǒng)數(shù)據(jù)庫(kù)實(shí)體屬性關(guān)系圖
即時(shí)通訊實(shí)現(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ā)布播放實(shí)現(xiàn):運(yùn)行AppWizard創(chuàng)建一個(gè)單文檔應(yīng)用程序。 添加成員變量,右鍵單擊AVI Classes下的VAVIView,在彈出菜單中選擇Add Member Variable…項(xiàng)。在VariableType中填入HWND,在Variable Name中添入m_hwndMC,單擊OK按鈕。
初始化剛添加的成員變量,定位到視圖類的構(gòu)造函數(shù)CAVIView::CAVIView(),添加代碼如下:
作用:用它調(diào)用函數(shù)產(chǎn)生播放器窗口函數(shù),用來(lái)播放視頻文件
添加一個(gè)新的菜單項(xiàng),在“打開(kāi)”和“保存”菜單項(xiàng)之間加入一個(gè)新的菜單項(xiàng)“打開(kāi)AVI文件”,其ID為ID_AVI,Caption為“打開(kāi)AVI文件”。
添加新菜單項(xiàng)的消息響應(yīng)函數(shù),利用Class Wizard生成“打開(kāi)AVI文件”菜單ID_AVI的COMMAND消息的響應(yīng)函數(shù)CAVIView::OnAvi().并定位到該函數(shù),在其中加入以下代碼:
dlg(TRUE,”avi”,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,”AVI文件(*.avi)|*.avi||”);作用是創(chuàng)建一個(gè)文件列表,選擇要打開(kāi)的.avi文件。
這條函數(shù)的作用是判斷如果是NULL,說(shuō)明現(xiàn)在已經(jīng)存在一個(gè)正在播放的視頻文件,所以就新建一個(gè);如果是一個(gè)文件的路徑,說(shuō)明目前沒(méi)有正在播放的視頻文件,就打開(kāi)該文件的路徑文件。
函M_hwndMCI=MCIWndCreate(m_hWnd,AfxGetInstanceHandle(),0,filename)的作用是打開(kāi)選擇文件名的.avi文件。
編輯StdAfx.h文件,在StdAfx.h文件中的最后一行#endif語(yǔ)句之前加入以下代碼:
作用是添加庫(kù)文件,讓程序可以識(shí)別代碼,否則前邊的所有工作都白費(fèi)了,而且可以調(diào)用vfw32.lib實(shí)現(xiàn)現(xiàn)成的基本多媒體播放發(fā)布功能完畢。
結(jié)語(yǔ)、
該方案可應(yīng)用于大型小區(qū)或企事業(yè)單位內(nèi)部多媒體信息發(fā)布,由于篇幅所限,筆者僅就系統(tǒng)設(shè)計(jì)思路和架構(gòu)進(jìn)行描述,并精選了系統(tǒng)設(shè)計(jì)開(kāi)發(fā)的關(guān)鍵思路與技術(shù)進(jìn)行剖析。本文權(quán)作拋磚引玉,供廣大通訊技術(shù)領(lǐng)域同仁共同探討研究。
(1) 樊昌信.現(xiàn)代通訊技術(shù).人民郵電出版社.2009-10-1
(2)黃榮懷.多媒體系統(tǒng)與網(wǎng)站管理.北京師范大學(xué).2014-10-17
李愛(ài)卿 國(guó)家新聞出版廣電總局四九一臺(tái)高級(jí)工程師,長(zhǎng)期從事廣播電視傳輸工作,聯(lián)系方式:13691097941。