摘要:首先分析了公共氣象服務(wù)的現(xiàn)狀,為滿足現(xiàn)階段氣象視頻在網(wǎng)絡(luò)及移動(dòng)設(shè)備上傳播的需求,針對(duì)目前氣象視頻處理方式的不足,提出了基于FFmpeg的視頻處理系統(tǒng)。系統(tǒng)采用B/S模式,使用C#語(yǔ)言在.NET框架下開發(fā),實(shí)現(xiàn)了視頻文件采集、格式轉(zhuǎn)換、傳輸、備份等功能自動(dòng)化運(yùn)行。該系統(tǒng)具有配置簡(jiǎn)單、自動(dòng)運(yùn)行、工作效率高等特點(diǎn),能夠滿足實(shí)際工作中的業(yè)務(wù)需求,具有很大的推廣價(jià)值。
關(guān)鍵詞:氣象;視頻;FFmpeg;格式轉(zhuǎn)換
隨著我國(guó)信息化建設(shè)的不斷發(fā)展,人們的生活方式也發(fā)生了巨大的變化。目前,在網(wǎng)絡(luò)上通過視頻獲取信息已經(jīng)成為人們?nèi)粘I畹囊徊糠?,氣象部門也越來越多的以通過網(wǎng)絡(luò)發(fā)布?xì)庀笠曨l的方式來提供公共氣象服務(wù),但由于受網(wǎng)絡(luò)帶寬等影響需要把視頻轉(zhuǎn)換成適合在網(wǎng)絡(luò)或移動(dòng)設(shè)備上傳播的格式,如flv、mp4等格式。
1 系統(tǒng)目標(biāo)
本文討論的視頻處理系統(tǒng)是采用C#語(yǔ)言在.NET框架下開發(fā)而成,系統(tǒng)采用B/S模式,視頻格式轉(zhuǎn)換功能模塊基于FFmpeg開發(fā)。該系統(tǒng)提供了一個(gè)集視頻文件采集、格式轉(zhuǎn)換、傳輸、備份等功能于一體的平臺(tái),通過該平臺(tái),管理員可以配置源視頻文件的自動(dòng)采集時(shí)間、采集地址及視頻處理后視頻文件的存儲(chǔ)地址、傳輸?shù)刂?、傳輸時(shí)間等。視頻格式轉(zhuǎn)換模塊對(duì)源視頻進(jìn)行分析、轉(zhuǎn)換,視頻自動(dòng)傳輸模塊則把轉(zhuǎn)換成功的視頻通過FTP方式傳輸至指定地址。本系統(tǒng)還支持手動(dòng)上傳視頻并選擇要轉(zhuǎn)換的格式等參數(shù),臨時(shí)指定視頻保存地址或傳輸?shù)刂贰?/p>
2 系統(tǒng)設(shè)計(jì)
2.1 功能設(shè)計(jì)
本系統(tǒng)能夠?qū)崿F(xiàn)源視頻文件的上傳或自動(dòng)采集、格式自動(dòng)轉(zhuǎn)換、視頻文件存儲(chǔ)及自動(dòng)傳輸?shù)韧暾奶幚砹鞒獭T匆曨l文件的上傳包括FTP方式和Web方式共兩種方式。FTP方式適合大量視頻的上傳,具有上傳速度快的特點(diǎn);Web方式適合單個(gè)視頻文件的上傳,具有方便簡(jiǎn)單的特點(diǎn)[1]。源視頻文件的定時(shí)自動(dòng)采集需要管理員配置好采集時(shí)間、采集地址及采集方式,采集方式分為局域網(wǎng)共享目錄采集和FTP下載方式采集。視頻格式轉(zhuǎn)換模塊負(fù)責(zé)把源視頻文件轉(zhuǎn)換成指定格式如:flv、mp4等格式的視頻。轉(zhuǎn)換好的視頻將被保存在服務(wù)器上,視頻的標(biāo)題、文件名、簡(jiǎn)介、格式、標(biāo)簽、尺寸、時(shí)長(zhǎng)、存儲(chǔ)地址、大小等屬性信息則被存入數(shù)據(jù)庫(kù)。視頻自動(dòng)傳輸模塊將轉(zhuǎn)換好的視頻按預(yù)先設(shè)定方案以FTP方式傳輸至指定地址。
2.2 性能設(shè)計(jì)
本系統(tǒng)含有隊(duì)列管理和防阻塞機(jī)制,支持并發(fā)計(jì)算,可以在單一服務(wù)器上并發(fā)處理多個(gè)請(qǐng)求;為滿足超大量視頻轉(zhuǎn)換的需求,可以通過部署多臺(tái)服務(wù)器來實(shí)現(xiàn)并發(fā)計(jì)算和分布式計(jì)算。系統(tǒng)還可以通過 Webservice 提供管理接口,配置定時(shí)自動(dòng)采集時(shí)間、采集地址、格式轉(zhuǎn)換參數(shù)、傳輸時(shí)間、傳輸?shù)刂返取?/p>
3 系統(tǒng)的實(shí)現(xiàn)
本系統(tǒng)是在windows操作系統(tǒng)下開發(fā)的,開發(fā)語(yǔ)言采用C#語(yǔ)言,通過調(diào)用FFmpeg來實(shí)現(xiàn)對(duì)視頻格式的轉(zhuǎn)換。本系統(tǒng)的后臺(tái)數(shù)據(jù)庫(kù)為Oracle11G,用來存儲(chǔ)視頻的相關(guān)信息,包括視頻的標(biāo)題、文件名、簡(jiǎn)介、格式、標(biāo)簽、尺寸、時(shí)長(zhǎng)、存儲(chǔ)地址、大小等屬性信息。
3.1 視頻上傳及采集模塊
視頻上傳支持FTP方式和Web方式。FTP 方式適合大批量視頻的上傳,在上傳時(shí),每個(gè)視頻共需上傳兩個(gè)文件,一個(gè)是文本格式的視頻屬性文件,文件中包含視頻的屬性信息,如標(biāo)題、文件名、簡(jiǎn)介、格式、標(biāo)簽、尺寸、時(shí)長(zhǎng)、存儲(chǔ)地址、大小等,一個(gè)是視頻文件本身,如weather.avi、weather.txt為一個(gè)視頻對(duì)應(yīng)的兩個(gè)文件,或者只上傳視頻文件,視頻屬性信息通過Webservice管理接口進(jìn)行添加。Web方式更適合單個(gè)視頻文件的上傳,通過本系統(tǒng)提供的Web方式視頻上傳功能,可以方便的對(duì)單個(gè)視頻文件進(jìn)行上傳。源視頻文件的定時(shí)自動(dòng)采集模塊根據(jù)后臺(tái)配置信息,自動(dòng)從指定地址采集源視頻文件,采集方式為局域網(wǎng)共享目錄采集或FTP下載方式采集。
3.2 視頻格式轉(zhuǎn)換模塊
視頻格式轉(zhuǎn)換模塊是系統(tǒng)的核心,主要是把上傳或采集的源視頻文件轉(zhuǎn)換成符合要求的flv或MP4格式的視頻,該模塊是基于FFmpeg進(jìn)行視頻轉(zhuǎn)換的。FFmpeg是一個(gè)開源免費(fèi)跨平臺(tái)的視頻和音頻流方案,屬于自由軟件,采用LGPL或GPL許可證(依據(jù)你選擇的組件)。它提供了錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案,包含了非常先進(jìn)的音頻、視頻編解碼庫(kù)libavcodec[2] [3]。
3.3 視頻傳輸模塊
視頻傳輸模塊負(fù)責(zé)視頻文件的傳輸工作,當(dāng)系統(tǒng)配置中預(yù)定任務(wù)的視頻文件格式轉(zhuǎn)換成功后,視頻傳輸模塊根據(jù)配置信息將轉(zhuǎn)換成功的視頻文件以FTP方式傳輸至指定地址。用戶臨時(shí)上傳的視頻文件經(jīng)過格式轉(zhuǎn)換后,如果需要傳輸,則由用戶指定傳輸?shù)刂坊蛘咴陬A(yù)先配置好的幾個(gè)地址中選擇要傳輸?shù)哪康牡刂?,視頻傳輸模塊會(huì)將視頻文件傳輸至指定地址。
4 結(jié)語(yǔ)
本文實(shí)現(xiàn)的氣象視頻處理系統(tǒng)具有配置簡(jiǎn)單、自動(dòng)運(yùn)行、工作效率高等特點(diǎn),可以通過后臺(tái)配置計(jì)劃任務(wù),實(shí)現(xiàn)工作任務(wù)的自動(dòng)化。該系統(tǒng)不僅能夠?qū)崿F(xiàn)視頻文件采集、格式轉(zhuǎn)換及傳輸?shù)热蝿?wù)的自動(dòng)化運(yùn)行,還可以由用戶上傳視頻,根據(jù)用戶提交參數(shù)進(jìn)行視頻格式轉(zhuǎn)換等任務(wù),能夠滿足實(shí)際工作中的業(yè)務(wù)需求,具有很大的推廣價(jià)值。
參考文獻(xiàn):
[1]任嚴(yán),韓臻,劉麗.基于 FFMPEG 的視頻轉(zhuǎn)換與發(fā)布系統(tǒng)[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(20):49624967.
[2]覃艷.基于FFMPEG的視頻格式轉(zhuǎn)換技術(shù)研究[J].電腦知識(shí)與技術(shù),2011,7(12):29122913.
[3]張學(xué)武,楊學(xué)星,江水.基于H.263的視頻編碼、解碼的研究及軟件實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2005,26(9):24912493.
基金項(xiàng)目:山西省氣象局一般課題(SXKYBDZ201510040)
作者簡(jiǎn)介:程海軍(1979),男,山西原平人,主要從事預(yù)警信息發(fā)布、氣象服務(wù)工作。