陳 堯,丁 浩
(湖北民族學(xué)院 科技學(xué)院,湖北 恩施445000)
隨著Internet 的普及和電子商務(wù)、政府辦公等工程的廣泛應(yīng)用,使信息技術(shù)已經(jīng)成為整個(gè)社會(huì)經(jīng)濟(jì)和企業(yè)生存發(fā)展的重要基礎(chǔ),視頻會(huì)議系統(tǒng)在企業(yè)、政府、教育等部門(mén)的信息化建設(shè)中就占據(jù)了重要位置,其它諸如檢察院、法院、公安和水利等職能部門(mén)也成為了視頻會(huì)議系統(tǒng)的重要用戶(hù)[1].AVCON(Audio Video Conference)會(huì)議系統(tǒng),是利用視、音頻壓縮技術(shù)及點(diǎn)到多點(diǎn)的通信技術(shù),構(gòu)筑在IP 網(wǎng)絡(luò)上的全新會(huì)議解決方案.該系統(tǒng)不同于傳統(tǒng)的視頻應(yīng)用系統(tǒng),它不需要固定的線(xiàn)路和固定的會(huì)議地點(diǎn)、不依賴(lài)于固定的設(shè)備和昂貴的硬件投資,與會(huì)者只需在會(huì)議室、辦公室里或家中,隨時(shí)隨地,用一臺(tái)筆記本電腦或PC,連上網(wǎng)絡(luò),通過(guò)公用網(wǎng)絡(luò),連接到互聯(lián)網(wǎng),就可以和各地的商業(yè)伙伴和同行進(jìn)行數(shù)據(jù)、音頻及視頻的交流通訊[2]. 由于該系統(tǒng)在終端和服務(wù)器端采用純軟件的解決方案,終端僅僅是通過(guò)客戶(hù)端軟件,而服務(wù)器端是虛擬的大型視頻應(yīng)用中心.通過(guò)該系統(tǒng),無(wú)論多遠(yuǎn),還是多少人都可以在這里進(jìn)行會(huì)議交談、演講、報(bào)告或個(gè)人之間的無(wú)障礙交流,體驗(yàn)前所未有的實(shí)時(shí)、高質(zhì)量的交互式音頻和視頻體驗(yàn),并能為用戶(hù)節(jié)約人力、物力,以低投入獲得高收益[3].
AVCON 會(huì)議系統(tǒng)及方案已廣泛應(yīng)用于政府、金融、企業(yè)、教學(xué)、醫(yī)療、軍隊(duì)等各個(gè)領(lǐng)域,獨(dú)特的產(chǎn)品、強(qiáng)大的多媒體數(shù)據(jù)功能、出眾的視音頻質(zhì)量以及系統(tǒng)的高穩(wěn)定性,輕松便捷的操作方式,得到各領(lǐng)域用戶(hù)的廣泛贊譽(yù),并給各部門(mén)的工作帶了極大的方便,提高了工作效率[4].但工作人員現(xiàn)今多使用U 盤(pán)等移動(dòng)設(shè)備,為了方便快捷得到視頻數(shù)據(jù),采用U 盤(pán)錄像應(yīng)用相當(dāng)廣泛,但該系統(tǒng)采用U 盤(pán)錄像,會(huì)出現(xiàn)系統(tǒng)界面凍結(jié)、停滯現(xiàn)象.該現(xiàn)象的存在,給系統(tǒng)的使用帶來(lái)了極大的不便,本文著重解決該問(wèn)題.對(duì)于U 盤(pán)的錄像,不得使系統(tǒng)界面凍結(jié)、停滯,并且保證錄像成功、有效.
為了保證測(cè)試數(shù)據(jù)的有效性、可靠性,現(xiàn)設(shè)置軟硬件環(huán)境如下:①該系統(tǒng)使用的軟件:AVCON 會(huì)議系統(tǒng)V5.0.25,Windows XP SP2 操作系統(tǒng);②硬件環(huán)境:AVCON 會(huì)議系統(tǒng)CS-1500,U2 嘉年華攝像頭;③視頻設(shè)置:視頻編碼采用H264 格式,視頻分辨率設(shè)為352×288,傳輸速率為384kbps,網(wǎng)絡(luò)環(huán)境為局域網(wǎng),并設(shè)置速度優(yōu)先,軟件勾選圖像去噪.
1)對(duì)會(huì)議進(jìn)行U 盤(pán)錄像.選取普通U 盤(pán)進(jìn)行各項(xiàng)操作測(cè)試.測(cè)試結(jié)果如表1 所示.
表1 U 盤(pán)會(huì)議錄像測(cè)試數(shù)據(jù)Tab.1 U disk video conference test data
2)對(duì)視頻進(jìn)行U 盤(pán)錄像.由于對(duì)會(huì)議錄像發(fā)現(xiàn)愛(ài)國(guó)者U 盤(pán)會(huì)出現(xiàn)界面停滯的情況,遂使用該U 盤(pán)對(duì)單個(gè)視頻進(jìn)行U 盤(pán)錄像.采用愛(ài)國(guó)者U 盤(pán)(無(wú)病毒),登錄系統(tǒng),對(duì)本地視頻進(jìn)行U 盤(pán)錄像.CPU 占用率為19%左右,測(cè)試結(jié)果為界面停滯.
在對(duì)會(huì)議和視頻進(jìn)行U 盤(pán)錄像時(shí),普通U 盤(pán)確實(shí)會(huì)有程序界面凍結(jié)、停滯現(xiàn)象.
1)對(duì)程序輸出日志進(jìn)行跟蹤,輸出日志信息部分代碼:
根據(jù)上述輸出的日志信息分析,錄像時(shí)界面會(huì)出現(xiàn)凍結(jié)現(xiàn)象可能是由m_ulDataSize += m_AVCFile.Write(dataFrame.pData,dataFrame.nLen)該語(yǔ)句時(shí)間過(guò)長(zhǎng)引起.
經(jīng)跟蹤代碼和查閱相關(guān)資料[5],發(fā)現(xiàn)文件IO 流自帶4K 的緩沖區(qū),存在該緩沖區(qū)滿(mǎn)時(shí)的臨界點(diǎn)處理引起程序界面凍結(jié)的問(wèn)題,遂在fwrite 函數(shù)之后調(diào)用fflush 清空緩沖區(qū),調(diào)用清空緩沖區(qū)函數(shù)后經(jīng)測(cè)試,程序界面不再凍結(jié)[6].
2)根據(jù)1)的分析與處理,可采用不使用該緩沖區(qū),同樣可避免緩沖區(qū)滿(mǎn)時(shí)臨界點(diǎn)的處理,使用setvbuf函數(shù)達(dá)到此目的,經(jīng)修改程序并測(cè)試,程序界面不再凍結(jié).
取消文件緩沖區(qū)可用setvbuf 函數(shù).具體修改如下(黑體):
由于沒(méi)有使用緩沖區(qū),每次調(diào)用fwrite 函數(shù)時(shí)直接將數(shù)據(jù)寫(xiě)入了文件,增大了磁盤(pán)開(kāi)銷(xiāo).
即每次調(diào)用fwrite 函數(shù)時(shí),調(diào)用一次fflush()函數(shù).具體修改如下(黑體):
經(jīng)測(cè)試驗(yàn)證,該速度比方案5.1 快.查找的相關(guān)資料也證實(shí)了這一點(diǎn):Calling setvbuf()with the modeparameter of _IONBF eliminates this problem by unbuffering the stream,but file I/O will be slower[5].
雖然使用了緩沖區(qū),但由于每次都調(diào)用了fflush(),即使緩沖區(qū)中數(shù)據(jù)不多的時(shí)候也清空緩沖區(qū),增大了磁盤(pán)開(kāi)銷(xiāo).
由于上述兩種解決方案都增大了磁盤(pán)開(kāi)銷(xiāo),遂在方案的基礎(chǔ)上加以改進(jìn),在緩沖區(qū)即將滿(mǎn)時(shí)清空緩沖區(qū),以避免緩沖區(qū)滿(mǎn)時(shí)系統(tǒng)的處理造成程序界面卡的問(wèn)題.經(jīng)查閱相關(guān)資料[7],WINDOWS 下緩沖區(qū)大小為4096 字節(jié),或者通過(guò)FILE 結(jié)構(gòu)體的成員來(lái)獲得:
具體修改如下(黑體):
該方案磁盤(pán)開(kāi)銷(xiāo)小于方案5.1 和方案5.2.但是,在一定程度上增大了磁盤(pán)開(kāi)銷(xiāo),此增大開(kāi)銷(xiāo)是對(duì)比系統(tǒng)默認(rèn)情況.
綜合以上問(wèn)題的提出、測(cè)試、分析以及采取的解決方案,雖然5.3 方案在一定程度上也增大了磁盤(pán)開(kāi)銷(xiāo),但卻解決了U 盤(pán)錄像時(shí)程序界面凍結(jié)的問(wèn)題,在此情況下,此方案不失為一個(gè)折衷的較好的辦法.
[1] 吳德道,徐蘇,羅晶.AVCon 視頻會(huì)議的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)與現(xiàn)代化,2006(2):81-84.
[2] 李崇榮,張軒.基于IP/multicast 視頻會(huì)議技術(shù)在遠(yuǎn)程教育中的應(yīng)用[J].清華大學(xué)學(xué)報(bào):自然科學(xué)版,2003,43(1):129-131.
[3] 李超,柴文磊,劉勁松.高清視頻會(huì)議系統(tǒng)技術(shù)淺析[J].信息安全與技術(shù),2010(10):50-51.
[4] 王中元,胡瑞敏,常軍,等.基于壓縮域的多路視頻流混合方法[J].高技術(shù)通訊,2012,22(1):42-47.
[5] 劉振憲.MSDN 與視頻軟件開(kāi)發(fā)[J].電腦編程技巧與維護(hù).2005(5):54-56.
[6] 彭文標(biāo),易慶林,李海軍,等.遠(yuǎn)程視頻會(huì)議系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù),2009,33(10):79-82.
[7] 尚曉薇,林奕.一種基于閃存的緩沖區(qū)管理算法[J].計(jì)算機(jī)與現(xiàn)代化.2013(11):74-76.