亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FFmpeg的視頻客戶(hù)端的設(shè)計(jì)與實(shí)現(xiàn)

        2015-07-27 02:11:16李官敏金俊秀解放軍國(guó)防信息學(xué)院武漢430010
        山東工業(yè)技術(shù) 2015年8期
        關(guān)鍵詞:緩沖區(qū)解碼數(shù)據(jù)包

        李官敏,金俊秀(解放軍國(guó)防信息學(xué)院,武漢 430010)

        基于FFmpeg的視頻客戶(hù)端的設(shè)計(jì)與實(shí)現(xiàn)

        李官敏,金俊秀
        (解放軍國(guó)防信息學(xué)院,武漢 430010)

        本文以Android手機(jī)操作系統(tǒng)為平臺(tái),設(shè)計(jì)和實(shí)現(xiàn)了基于FFmpeg的視頻客戶(hù)端軟件。采用模塊化的設(shè)計(jì)思想,將該客戶(hù)端分為用戶(hù)登錄模塊、視頻接收模塊、視頻解碼模塊和視頻顯示模塊。軟件采用C/S架構(gòu)模式,在完成基于RTP/RTCP協(xié)議的數(shù)據(jù)包接收后,借助FFmpeg進(jìn)行視頻轉(zhuǎn)換。經(jīng)測(cè)試,該視頻客戶(hù)端對(duì)視頻的處理效果良好,具有廣闊的應(yīng)用前景。

        Android;FFmpeg;C/S;RTP/RTCP;客戶(hù)端

        1 引言

        隨著網(wǎng)絡(luò)技術(shù)和通信技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)視頻監(jiān)控技術(shù)突破了地域的限制,廣泛地應(yīng)用于各個(gè)領(lǐng)域。但是傳統(tǒng)視頻監(jiān)控系統(tǒng)采用將采集的實(shí)時(shí)視頻傳輸?shù)奖O(jiān)控中心并由專(zhuān)業(yè)人員處理突發(fā)事件的方式,并不能滿(mǎn)足用戶(hù)多元化的需求。

        本文旨在設(shè)計(jì)基于FFmpeg的視頻客戶(hù)端軟件,即移動(dòng)終端上的視頻監(jiān)控系統(tǒng)。該客戶(hù)端可以讓用戶(hù)遠(yuǎn)程地使用手機(jī)接收視頻了解監(jiān)控情況并迅速做出處理,在降低了監(jiān)控服務(wù)成本的同時(shí)滿(mǎn)足了人們對(duì)監(jiān)控便捷性的要求[1]。

        2 系統(tǒng)設(shè)計(jì)方案

        本文結(jié)合Android操作系統(tǒng)的特點(diǎn)和流媒體協(xié)議,設(shè)計(jì)并實(shí)現(xiàn)了基于FFmpeg的視頻客戶(hù)端軟件??紤]到客戶(hù)端處理問(wèn)題的需求及安全性,整體系統(tǒng)采用C/S的架構(gòu)模式,擺脫了Android對(duì)B/S架構(gòu)中瀏覽器功能的局限性,可以采用多種視頻編解碼標(biāo)準(zhǔn)展示不同的視頻格式。系統(tǒng)的總體架構(gòu)圖如圖1所示。

        3 客戶(hù)端軟件設(shè)計(jì)

        本文視頻客戶(hù)端軟件基于Android平臺(tái)開(kāi)發(fā),運(yùn)用Java語(yǔ)言編寫(xiě)代碼設(shè)計(jì)并實(shí)現(xiàn)了用戶(hù)登錄、視頻接收、視頻解碼和視頻顯示四個(gè)模塊。

        3.1 用戶(hù)登錄模塊

        為了視頻的安全保密性,用戶(hù)在登陸前需要通過(guò)身份信息的驗(yàn)證。若用戶(hù)名密碼均驗(yàn)證通過(guò)則進(jìn)入攝像頭選擇界面,可選擇攝像頭編號(hào)并進(jìn)行視頻顯示。

        3.2 視頻接收模塊

        視頻接收模塊主要負(fù)責(zé)與遠(yuǎn)程服務(wù)器連接,并接收遠(yuǎn)程服務(wù)端以數(shù)據(jù)包形式傳輸?shù)囊曨l,最后把數(shù)據(jù)包存入待解碼緩沖區(qū)。目前,視頻的傳輸采用流媒體技術(shù),本客戶(hù)端采用實(shí)時(shí)傳輸協(xié)議RTP完成端到端的傳輸,RTP通常運(yùn)行于UDP協(xié)議之上,是一種基于網(wǎng)絡(luò)的一對(duì)一或一對(duì)多的多媒體數(shù)據(jù)流的傳輸協(xié)議。與數(shù)據(jù)傳輸控制協(xié)議RTCP一同使用,RTCP負(fù)責(zé)在RTP會(huì)話期間向應(yīng)用程序提供會(huì)話、廣播性能質(zhì)量的統(tǒng)計(jì)信息[2]。

        由于在客戶(hù)端接收過(guò)程中,較大的數(shù)據(jù)包會(huì)被分割,因此需要對(duì)不完整的視頻幀進(jìn)行重新組幀。在緩沖后解碼前,從緩沖區(qū)內(nèi)獲取數(shù)據(jù)包,并根據(jù)其時(shí)間戳和序列號(hào)來(lái)判斷是否接收到充足的數(shù)據(jù),再根據(jù)幀算法完成幀的合成。幀處理算法流程圖如圖2所示。

        3.3 視頻解碼模塊

        由于攝像頭采集的視頻數(shù)據(jù)量很大,而且依賴(lài)于無(wú)線網(wǎng)絡(luò)完成傳輸,對(duì)于視頻的存儲(chǔ)和傳輸都相對(duì)困難。因此需要將視頻進(jìn)行壓縮,在保持視頻清晰度的同時(shí)減少視頻的存儲(chǔ)空間,提高視頻的傳輸速度。

        在解碼之前,首先需要通過(guò)av_registerall( )注冊(cè)FFmpeg的各種解碼格式,然后通過(guò)avformat_find_stream_info( )獲取數(shù)據(jù)已經(jīng)解析的編碼信息,并通過(guò)avcodec_find_decoder( )選擇合適的解碼器,在運(yùn)用avcodec_alloc_frame( )為解碼數(shù)據(jù)幀分配內(nèi)存后,利用av_get_ frame( )獲取待解碼緩存區(qū)內(nèi)的幀數(shù)據(jù),并用avcodec_decode_video()進(jìn)行解碼,解碼完成的幀需要通過(guò)av_set_frame( )放入待播放緩沖區(qū)。在此過(guò)程中,需要通過(guò)av_has_next_frame( )進(jìn)行判斷待解碼緩沖區(qū)內(nèi)是否還存在數(shù)據(jù)幀,若解碼完成則調(diào)用avcodec_close( )釋放內(nèi)存。解碼模塊的流程圖如圖3所示。

        3.4 視頻顯示模塊

        視頻在解碼后就可以進(jìn)行播放,視頻播放模塊主要面向用戶(hù),考慮到用戶(hù)體驗(yàn)本客戶(hù)端軟件界面設(shè)計(jì)簡(jiǎn)約美觀。視頻采用實(shí)時(shí)播放,一般情況下視頻解碼完成一幀后,視頻播放模塊讀取該幀數(shù)據(jù)進(jìn)行播放。但是這就會(huì)導(dǎo)致視頻播放可能出現(xiàn)抖動(dòng),因此本客戶(hù)端軟件對(duì)視頻播放模塊進(jìn)行了改進(jìn),采用幀延遲的方法緩存待播放的幀,從而提高視頻的播放效果,幀延時(shí)算法如圖4所示。視頻的顯示效果圖如圖5所示。

        4 結(jié)語(yǔ)

        本文設(shè)計(jì)并實(shí)現(xiàn)了基于FFmpeg的視頻客戶(hù)端的軟件,完成了用戶(hù)登錄、視頻接收、視頻解碼和視頻顯示功能。本客戶(hù)端安裝并運(yùn)行于Android手機(jī),結(jié)合視頻監(jiān)控系統(tǒng)硬件設(shè)備進(jìn)行了功能測(cè)試。測(cè)試結(jié)果表明各項(xiàng)功能均達(dá)到要求,客戶(hù)端具較好的通用性機(jī)及廣闊的應(yīng)用前景。

        [1]詹青龍.網(wǎng)絡(luò)視頻技術(shù)及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2004.

        [2]史凱雒,江濤,張治中.基于RTP的H.264無(wú)線視頻傳輸和Qos控制[J].微計(jì)算機(jī)信息,2009,25(02):162.

        李官敏,碩士,解放軍國(guó)防信息學(xué)院二系助教,研究方向:軍事裝備學(xué)。

        猜你喜歡
        緩沖區(qū)解碼數(shù)據(jù)包
        嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫(xiě)方法的設(shè)計(jì)與實(shí)現(xiàn)
        《解碼萬(wàn)噸站》
        解碼eUCP2.0
        NAD C368解碼/放大器一體機(jī)
        Quad(國(guó)都)Vena解碼/放大器一體機(jī)
        SmartSniff
        關(guān)鍵鏈技術(shù)緩沖區(qū)的確定方法研究
        基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計(jì)與實(shí)現(xiàn)
        視覺(jué)注意的數(shù)據(jù)包優(yōu)先級(jí)排序策略研究
        地理信息系統(tǒng)繪圖緩沖區(qū)技術(shù)設(shè)計(jì)與實(shí)現(xiàn)
        亚洲天堂免费av在线观看| 国产一区av男人天堂| 亚洲国产av一区二区三区精品| 精品精品国产自在97香蕉| 精品成人乱色一区二区| 久久精品国产屋| 一区二区日本影院在线观看| 亚洲精品一区三区三区在线| 最近2019年好看中文字幕视频| 亚洲人成无码网站久久99热国产 | 亚洲熟妇久久国产精品| 亚洲国产精品日韩av专区| 国产成人免费a在线视频| 中文字幕一区韩国三级| 亚洲av日韩综合一区尤物| 久久久亚洲欧洲日产国码aⅴ| 台湾佬综合网| 亚洲AV无码日韩综合欧亚| 国产精品久久婷婷六月| 亚洲国产av一区二区三区天堂| 国产狂喷水潮免费网站www| 免费a级毛片无码av| 欧美日韩在线免费看 | 日本女优禁断视频中文字幕| 国产av熟女一区二区三区| 青楼妓女禁脔道具调教sm| 麻豆国产人妻欲求不满| 国产精品天干天干在线观蜜臀| 加勒比东京热一区二区| 国产成人久久精品一区二区三区| 成人久久免费视频| 国产经典免费视频在线观看| 亚洲一区在线二区三区| 夜夜夜夜曰天天天天拍国产| 四虎影视4hu4虎成人| 中文字幕巨乱亚洲| 国产女主播福利在线观看| 亚洲日韩欧美一区、二区| 亚洲精品无码不卡av| 国产杨幂AV在线播放| 日韩亚洲无吗av一区二区|