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

        ?

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

        2015-12-02 21:01:24劉溶劍王趙璽
        現(xiàn)代電子技術(shù) 2015年22期
        關(guān)鍵詞:視頻流接收端編碼

        劉溶劍+王趙璽

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

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

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

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

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

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

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

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

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

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

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

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

        2.1.1 編碼器的選擇

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

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

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

        vlc input_stream ??sout

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

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

        在Ubuntu系統(tǒng)下安裝了VLC并連接了攝像頭后在終端中運(yùn)行以下命令即可完成實(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í)時視頻采集及編碼

        整體代碼如下,功能依然是通過V4L2視頻設(shè)備內(nèi)核驅(qū)動,對設(shè)備文件/dev/video0及/dev/dsp進(jìn)行設(shè)置,進(jìn)而完成實(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è)計

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

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

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

        cd myworks/trunk/build/Debug/bin;

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

        最后,還要先利用Mplayer測試編碼后的視頻流,然后方能調(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庫——libccrtp設(shè)計的,它的核心思想是在發(fā)送端完成編碼后實(shí)時視頻流的RTP封裝及接收端原始視頻流的恢復(fù),即在發(fā)送端軟件先對媒體類型進(jìn)行檢查,根據(jù)不同的媒體類型確定RTP數(shù)據(jù)包的負(fù)載類型以及RTP時間戳增量[4]。封裝好RTP數(shù)據(jù)分組后將數(shù)據(jù)進(jìn)行UDP發(fā)送[5];接收端在接收到RTP包后分析RTP包頭,判斷其版本、長度和負(fù)載類型等信息的有效性,然后按照RTP時間戳和包序列號等進(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í)時視頻流的應(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 整個系統(tǒng)的實(shí)現(xiàn)代碼

        整個系統(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í)驗結(jié)果表明,使用本設(shè)計系統(tǒng)進(jìn)行傳輸,不僅能夠獲得較好的圖像質(zhì)量以及較低傳輸?shù)难訒r,同時也能夠滿足實(shí)時性應(yīng)用的需求。本系統(tǒng)具有硬件條件需求低,通用性強(qiáng)等優(yōu)點(diǎn),但還存在不足之處之處:由于傳輸模塊設(shè)計目標(biāo)僅為完成基本實(shí)時傳輸功能,故在系統(tǒng)傳輸?shù)膿砣?、差錯控制方面沒有考慮的太多;本系統(tǒng)采用端到端的設(shè)計,并沒有把多用戶的情況考慮進(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è)計與實(shí)現(xiàn)[J].電光與控制,2013,20(1):56?60.

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

        猜你喜歡
        視頻流接收端編碼
        邊緣實(shí)時視頻流分析系統(tǒng)配置動態(tài)調(diào)整算法研究
        基于擾動觀察法的光通信接收端優(yōu)化策略
        基于SAR-SIFT和快速稀疏編碼的合成孔徑雷達(dá)圖像配準(zhǔn)
        頂管接收端脫殼及混凝土澆筑關(guān)鍵技術(shù)
        一種設(shè)置在密閉結(jié)構(gòu)中的無線電能傳輸系統(tǒng)
        新能源科技(2021年6期)2021-04-02 22:43:34
        基于多接收線圈的無線電能傳輸系統(tǒng)優(yōu)化研究
        基于視頻流傳輸中的擁塞控制研究
        《全元詩》未編碼疑難字考辨十五則
        子帶編碼在圖像壓縮編碼中的應(yīng)用
        電子制作(2019年22期)2020-01-14 03:16:24
        Genome and healthcare
        亚洲最新国产av网站| 亚洲亚洲人成综合丝袜图片| 欧美日韩亚洲中文字幕二区| 国产无夜激无码av毛片| 双腿张开被9个男人调教| 另类老妇奶性生bbwbbw| 中文字幕一区二区三区久久网站 | 可免费观看的av毛片中日美韩| 粗大的内捧猛烈进出少妇| 亚洲国产精品日韩av专区| 亚洲xxxx做受欧美| 日本黄页网站免费大全| 人妻中文字幕不卡精品| AV中文字幕在线视| 亚洲国产成人久久精品美女av| 亚洲成人激情深爱影院在线| 一区二区三区午夜视频在线| 中文字幕国产精品一二三四五区| 久久精品国产99国产精品澳门| www射我里面在线观看| 久久不见久久见免费影院www| 初尝黑人巨砲波多野结衣| 午夜a福利| 免费无码黄网站在线观看| 免费视频一区二区三区美女| 国产激情视频在线观看大全 | 隔壁老王国产在线精品| 337p人体粉嫩胞高清视频| 日韩精品无码av中文无码版| 无码伊人久久大杳蕉中文无码| 国产精品又爽又粗又猛又黄| 久久精品女人av一区二区| 亚洲av午夜成人片精品电影| 免费人成视频在线| 成 人 网 站 在线 看 免费| 亚洲乱精品中文字字幕| 日本高清在线一区二区三区| 亚洲精品第一页在线观看| 国产福利视频在线观看| 亚洲AV无码成人网站久久精品| 中文字幕精品人妻av在线|