999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Linux系統(tǒng)的H.264標(biāo)準(zhǔn)的實(shí)時(shí)視頻壓縮及傳輸系統(tǒng)設(shè)計(jì)

2015-12-02 21:01:24劉溶劍王趙璽
現(xiàn)代電子技術(shù) 2015年22期
關(guān)鍵詞:系統(tǒng)設(shè)計(jì)

劉溶劍+王趙璽

摘 要: 隨著計(jì)算機(jī)網(wǎng)絡(luò)媒體的迅猛發(fā)展,研究時(shí)視頻壓縮及傳輸技術(shù)具有十分重要的意義。首先建立基于Ubuntu Linux操作系統(tǒng)的H.264實(shí)時(shí)視頻壓縮及傳輸系統(tǒng),并詳細(xì)介紹該系統(tǒng)相關(guān)軟、硬件實(shí)現(xiàn)方法和系統(tǒng)結(jié)構(gòu)的設(shè)計(jì)思想。然后通過實(shí)時(shí)視頻的采集和編碼模塊設(shè)計(jì)系統(tǒng),并采用系統(tǒng)的實(shí)現(xiàn)代碼具體實(shí)現(xiàn)系統(tǒng)的各個(gè)模塊。結(jié)果表明,使用該設(shè)計(jì)系統(tǒng)進(jìn)行傳輸,可以獲得較好的圖像質(zhì)量以及較低傳輸?shù)难訒r(shí),能滿足實(shí)時(shí)性應(yīng)用的需求。

關(guān)鍵詞: H.264; 視頻壓縮; 傳輸系統(tǒng); Ubuntu Linux

中圖分類號(hào): TN919?34; TP391.4 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2015)22?0078?02

近年來,視頻壓縮技術(shù)和網(wǎng)絡(luò)傳輸技術(shù)發(fā)展迅速,實(shí)時(shí)視頻通信技術(shù)已漸漸進(jìn)入人們的生活。H.264視頻壓縮標(biāo)準(zhǔn)的日趨成熟,RTP 協(xié)議的出現(xiàn)進(jìn)一步推動(dòng)了視頻通信的發(fā)展,視頻壓縮技術(shù)和視頻通信技術(shù)一直是人們所關(guān)心的重要問題,對(duì)原始的視頻數(shù)合理有效的壓縮和網(wǎng)絡(luò)傳輸中的擁塞控制始終是研究的熱點(diǎn)[1]。筆者通過對(duì)大量文獻(xiàn)資料的學(xué)習(xí)[2],對(duì)H.264視頻壓縮標(biāo)準(zhǔn),實(shí)時(shí)傳輸協(xié)議RTP/RTCP等相關(guān)知識(shí)梳理和研究,建立了一種基于Ubuntu Linux系統(tǒng)的H.264實(shí)時(shí)視頻壓縮及傳輸系統(tǒng)。

1 系統(tǒng)的的軟硬件環(huán)境及整體結(jié)構(gòu)

1.1 系統(tǒng)的軟、硬件環(huán)境

整個(gè)系統(tǒng)的設(shè)計(jì)目標(biāo)是完成通過經(jīng)路由器建立的局域網(wǎng),在兩臺(tái)加入相同多播組的計(jì)算機(jī)間,進(jìn)行實(shí)時(shí)視頻的壓縮及傳輸。在編解碼模塊使用的是基于開放源代碼的RTP庫(kù)——libccrtp設(shè)計(jì)的一種軟件。硬件方面,需要現(xiàn)在廣泛使用的PC機(jī)及一般的USB接口數(shù)碼攝像頭一個(gè),網(wǎng)絡(luò)連接方案如前所述,通過經(jīng)路由器建立的局域網(wǎng)。

選用的操作系統(tǒng)是Ubuntu 10.10。視頻的獲取通過Video4Linux2(簡(jiǎn)稱V4L2),是Linux中關(guān)于視頻設(shè)備的內(nèi)核驅(qū)動(dòng)。視頻編解碼部分使用的是VLC或Mplayer及Mencoder,VLC多媒體播放器(最初命名為VideoLAN客戶端)是VideoLAN計(jì)劃的多媒體播放器。視頻的傳輸部分使用的是開放源代碼的RTP庫(kù)——libccrtp,以及基于libccrtp而編寫的實(shí)時(shí)流媒體傳輸軟件。

1.2 系統(tǒng)的整體結(jié)構(gòu)

系統(tǒng)采用了客戶機(jī)/服務(wù)器設(shè)計(jì)模式,服務(wù)器端(發(fā)送端)采集發(fā)送視頻,客戶端(接收端)接收回放視頻,系統(tǒng)可分為5個(gè)功能模塊:視頻采集模塊、視頻編碼模塊、包處理模塊、網(wǎng)絡(luò)傳輸模塊和視頻解碼模塊,總體結(jié)構(gòu)如圖1所示。

2 系統(tǒng)各個(gè)模塊的具體實(shí)現(xiàn)

2.1 系統(tǒng)實(shí)時(shí)視頻采集及編碼模塊的設(shè)計(jì)

2.1.1 編碼器的選擇

與其他視頻壓縮技術(shù)相比,H.264的壓縮碼率能降低一半以下,但這種高效率的壓縮性能是以運(yùn)算復(fù)雜度為代價(jià)的,對(duì)機(jī)器的處理能力有很高要求[3]。因此需要根據(jù)實(shí)際需要選擇一個(gè)好的H.264編碼器,目前H.264的開源編碼器主要有三個(gè):JM,X264,T264。通過比較:T264(fast mode)、T264(high quality mode)的編碼性能和X264性能相比有一定劣勢(shì); X264的編碼速度也相當(dāng)快,完全可以達(dá)到實(shí)用的要求。本設(shè)計(jì)選用X264編碼器。

2.1.2 基于VLC的實(shí)時(shí)視頻采集及編碼

VLC是一款功能強(qiáng)大的視頻編碼及播放軟件,使用它對(duì)視頻流編碼的一般格式如下:

vlc input_stream ??sout

"#module1{option1=parameter1{parameter?option1},option2=parameter2}:module2{option1=...,option2=...}:..."

其中module表示各個(gè)模塊,本系統(tǒng)所使用的兩個(gè)模塊為transcode(編碼)模塊和std(標(biāo)準(zhǔn))模塊,將在下文中進(jìn)行介紹。

在Ubuntu系統(tǒng)下安裝了VLC并連接了攝像頭后在終端中運(yùn)行以下命令即可完成實(shí)時(shí)視頻的獲取及壓縮編碼:

vlc ?vvv v4l2:// :v4l2?vdev="/dev/video0" :v4l2?adev="/dev/dsp " :v4l2?norm=3 :v4l2?frequency=?1 ??run?time 600 ??sout

′#transcode{vcodec=h264,vb=300,scale=1,acodec=mpga,ab=128,channels=2}:std{access=file,mux=ts,dst=pipe}′

2.1.3 基于mencoder的實(shí)時(shí)視頻采集及編碼

整體代碼如下,功能依然是通過V4L2視頻設(shè)備內(nèi)核驅(qū)動(dòng),對(duì)設(shè)備文件/dev/video0及/dev/dsp進(jìn)行設(shè)置,進(jìn)而完成實(shí)時(shí)視頻的采集和編碼:

tv:// ?tv driver=v4l2:width=320:height=240:device=/dev/video0:forceaudio:adevice=/dev/dsp ?ovc x264 ?x264encopts bitrate=300 ?oac mp3lame ?lameopts cbr:br=64:mode=3 ?o pipe

2.2 系統(tǒng)網(wǎng)絡(luò)傳輸模塊的設(shè)計(jì)

2.2.1 RTP封裝及傳輸前的準(zhǔn)備

在經(jīng)過編碼的實(shí)時(shí)視頻流進(jìn)行RTP封裝并進(jìn)入網(wǎng)絡(luò)傳輸之前,還有幾件事情需要完成。

首先,要更改工作目錄,以便后續(xù)命令的編寫和執(zhí)行。更改工作目錄只需一條簡(jiǎn)單Ubuntu的命令即可實(shí)現(xiàn),代碼如下:

cd myworks/trunk/build/Debug/bin;

其次,由于本系統(tǒng)采用組播技術(shù)作為IP網(wǎng)絡(luò)數(shù)據(jù)傳輸方式,故要將多播地址添加到傳輸方及接收方計(jì)算機(jī)的IP路由表當(dāng)中;

最后,還要先利用Mplayer測(cè)試編碼后的視頻流,然后方能調(diào)用相關(guān)程序進(jìn)行封裝及傳輸。如果經(jīng)過以上三步均未出現(xiàn)問題,那么就可以進(jìn)入視頻流的封裝及網(wǎng)絡(luò)傳輸階段。

2.2.2 網(wǎng)絡(luò)傳輸模塊軟件libccrtp核心思想

本系統(tǒng)的傳輸模塊所用到的libccrtp軟件,是基于開放源代碼的RTP庫(kù)——libccrtp設(shè)計(jì)的,它的核心思想是在發(fā)送端完成編碼后實(shí)時(shí)視頻流的RTP封裝及接收端原始視頻流的恢復(fù),即在發(fā)送端軟件先對(duì)媒體類型進(jìn)行檢查,根據(jù)不同的媒體類型確定RTP數(shù)據(jù)包的負(fù)載類型以及RTP時(shí)間戳增量[4]。封裝好RTP數(shù)據(jù)分組后將數(shù)據(jù)進(jìn)行UDP發(fā)送[5];接收端在接收到RTP包后分析RTP包頭,判斷其版本、長(zhǎng)度和負(fù)載類型等信息的有效性,然后按照RTP時(shí)間戳和包序列號(hào)等進(jìn)行同步,整理RTP包順序,重構(gòu)視頻幀[6]。

2.2.3 系統(tǒng)發(fā)送端及接收端的軟件實(shí)現(xiàn)

發(fā)送端所要實(shí)現(xiàn)的目標(biāo)是通過libccrtp軟件實(shí)現(xiàn)已編碼實(shí)時(shí)視頻流的應(yīng)用層RTP封裝然后進(jìn)行UDP發(fā)送,實(shí)現(xiàn)代碼為:cat pipe|./rtpcat 224.0.1.2 5004。接收端根據(jù)RTP包頭信息重構(gòu)視頻幀,最后恢復(fù)出視頻流,代碼如下:

./rtprecv 224.0.1.2 5004 | mplayer ?cache 1024 ?

2.3 整個(gè)系統(tǒng)的實(shí)現(xiàn)代碼

整個(gè)系統(tǒng)使用Ubuntu Linux下的bash進(jìn)行編寫,編碼模塊以VLC為例,代碼如下:

sender:

$ cd myworks/trunk/build/Debug/bin

$ mkfifo pipe

$ sudo route add ?net 224.0.0.0 netmask 240.0.0.0 dev eth0

$ vlc ?vvv v4l2:// :v4l2?vdev="/dev/video0" :v4l2?adev="/dev/dsp " :v4l2?norm=3 :v4l2?frequency=?1 ??run?time 600 ??sout ′#transcode{vcodec=h264,vb=300,scale=1,acodec=mpga,ab=128,channels=2}:std{access=file,mux=ts,dst=pipe}′

$ mplayer ?cache 1024 pipe

$ cat pipe | ./rtpcat 224.0.1.2 5004

receiver:

$ cd myworks/trunk/build/Debug/bin

$ sudo route add ?net 224.0.0.0 netmask 240.0.0.0 dev eth0

$./rtprecv 224.0.1.2 5004 | mplayer ?cache 1024 ?

3 結(jié) 語

實(shí)驗(yàn)結(jié)果表明,使用本設(shè)計(jì)系統(tǒng)進(jìn)行傳輸,不僅能夠獲得較好的圖像質(zhì)量以及較低傳輸?shù)难訒r(shí),同時(shí)也能夠滿足實(shí)時(shí)性應(yīng)用的需求。本系統(tǒng)具有硬件條件需求低,通用性強(qiáng)等優(yōu)點(diǎn),但還存在不足之處之處:由于傳輸模塊設(shè)計(jì)目標(biāo)僅為完成基本實(shí)時(shí)傳輸功能,故在系統(tǒng)傳輸?shù)膿砣⒉铄e(cuò)控制方面沒有考慮的太多;本系統(tǒng)采用端到端的設(shè)計(jì),并沒有把多用戶的情況考慮進(jìn)去。因此,擁塞控制機(jī)制以增強(qiáng)接收端解碼視頻的質(zhì)量和多點(diǎn)傳輸?shù)目紤]及網(wǎng)絡(luò)拓?fù)涞闹С謱⑹沁M(jìn)一步的研究方向。

參考文獻(xiàn)

[1] Joint Video Team (JVT). H.264/MPEG?4 AVC reference software manual [R]. London: ISO/IEC, 2005.

[2] WIEGAND T. Overview of the H.264/AVC video coding standard [J]. IEEE Transactions on Circuits and System for Video Technology, 2003, 13(7): 560?576.

[3] 畢厚杰,王健.新一代視頻壓縮標(biāo)準(zhǔn):H.264/AVC[M].北京:人民郵電出版社,2009.

[4] 樓劍,虞露.新一代的視頻編解碼標(biāo)準(zhǔn):H.264[J].當(dāng)代通信,2003(5):27?31.

[5] 姜蓉蓉,周建江.基于TMS320DM355的MAV機(jī)載視頻傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電光與控制,2013,20(1):56?60.

[6] 胡鵬.嵌入式的網(wǎng)絡(luò)視頻傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2010(22):6321?6323.

猜你喜歡
系統(tǒng)設(shè)計(jì)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
何為設(shè)計(jì)的守護(hù)之道?
《豐收的喜悅展示設(shè)計(jì)》
流行色(2020年1期)2020-04-28 11:16:38
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
瞞天過海——仿生設(shè)計(jì)萌到家
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
設(shè)計(jì)秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
主站蜘蛛池模板: 三上悠亚精品二区在线观看| 一本大道视频精品人妻| 人人妻人人澡人人爽欧美一区| 免费人成视频在线观看网站| 久夜色精品国产噜噜| 精品久久久久无码| 美女内射视频WWW网站午夜 | 99热最新网址| 伊人91在线| 孕妇高潮太爽了在线观看免费| 国产自在线播放| 91精品小视频| 中文字幕天无码久久精品视频免费 | 国产精选自拍| 正在播放久久| 亚洲国产综合自在线另类| 亚洲av综合网| 国产精品专区第1页| 最新无码专区超级碰碰碰| 大香网伊人久久综合网2020| 欧美精品一区二区三区中文字幕| 久草青青在线视频| 国产尹人香蕉综合在线电影| 91精品啪在线观看国产| 亚洲国产中文欧美在线人成大黄瓜 | 亚洲国产成人精品一二区| 日韩在线2020专区| 成人日韩欧美| 波多野结衣无码AV在线| 欧美劲爆第一页| 国产在线一区视频| 好久久免费视频高清| 国产亚洲精品91| 深夜福利视频一区二区| 国产人免费人成免费视频| 精品自窥自偷在线看| 一级毛片免费不卡在线 | 久久99国产综合精品1| 看你懂的巨臀中文字幕一区二区| 日韩不卡免费视频| 国产无码高清视频不卡| 精品欧美一区二区三区久久久| 日韩毛片免费观看| 深爱婷婷激情网| 日日碰狠狠添天天爽| 国产一级毛片在线| 九九热精品视频在线| 热伊人99re久久精品最新地| 亚洲制服丝袜第一页| 日韩在线2020专区| 99免费在线观看视频| 亚洲爱婷婷色69堂| 2020最新国产精品视频| 国产成人做受免费视频| 亚洲欧洲国产成人综合不卡| 中文字幕亚洲乱码熟女1区2区| 农村乱人伦一区二区| 激情乱人伦| 91成人在线免费视频| 国产美女无遮挡免费视频| 亚洲有无码中文网| 谁有在线观看日韩亚洲最新视频| 国产在线拍偷自揄拍精品| 亚洲日本韩在线观看| 久爱午夜精品免费视频| 国产91熟女高潮一区二区| 国产凹凸一区在线观看视频| 97影院午夜在线观看视频| 久久久久久久久18禁秘| 美女内射视频WWW网站午夜| 久久黄色影院| 亚洲成人高清无码| 国产精品人成在线播放| 欧美中文一区| 天天摸夜夜操| 秘书高跟黑色丝袜国产91在线| 国产乱子伦精品视频| 日本午夜网站| 久操中文在线| www.精品国产| 国产综合日韩另类一区二区| 国产极品美女在线|