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

基于Linux系統的H.264標準的實時視頻壓縮及傳輸系統設計

2015-12-02 21:01:24劉溶劍王趙璽
現代電子技術 2015年22期
關鍵詞:系統設計

劉溶劍+王趙璽

摘 要: 隨著計算機網絡媒體的迅猛發展,研究時視頻壓縮及傳輸技術具有十分重要的意義。首先建立基于Ubuntu Linux操作系統的H.264實時視頻壓縮及傳輸系統,并詳細介紹該系統相關軟、硬件實現方法和系統結構的設計思想。然后通過實時視頻的采集和編碼模塊設計系統,并采用系統的實現代碼具體實現系統的各個模塊。結果表明,使用該設計系統進行傳輸,可以獲得較好的圖像質量以及較低傳輸的延時,能滿足實時性應用的需求。

關鍵詞: H.264; 視頻壓縮; 傳輸系統; Ubuntu Linux

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

近年來,視頻壓縮技術和網絡傳輸技術發展迅速,實時視頻通信技術已漸漸進入人們的生活。H.264視頻壓縮標準的日趨成熟,RTP 協議的出現進一步推動了視頻通信的發展,視頻壓縮技術和視頻通信技術一直是人們所關心的重要問題,對原始的視頻數合理有效的壓縮和網絡傳輸中的擁塞控制始終是研究的熱點[1]。筆者通過對大量文獻資料的學習[2],對H.264視頻壓縮標準,實時傳輸協議RTP/RTCP等相關知識梳理和研究,建立了一種基于Ubuntu Linux系統的H.264實時視頻壓縮及傳輸系統。

1 系統的的軟硬件環境及整體結構

1.1 系統的軟、硬件環境

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

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

1.2 系統的整體結構

系統采用了客戶機/服務器設計模式,服務器端(發送端)采集發送視頻,客戶端(接收端)接收回放視頻,系統可分為5個功能模塊:視頻采集模塊、視頻編碼模塊、包處理模塊、網絡傳輸模塊和視頻解碼模塊,總體結構如圖1所示。

2 系統各個模塊的具體實現

2.1 系統實時視頻采集及編碼模塊的設計

2.1.1 編碼器的選擇

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

2.1.2 基于VLC的實時視頻采集及編碼

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

vlc input_stream ??sout

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

其中module表示各個模塊,本系統所使用的兩個模塊為transcode(編碼)模塊和std(標準)模塊,將在下文中進行介紹。

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

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的實時視頻采集及編碼

整體代碼如下,功能依然是通過V4L2視頻設備內核驅動,對設備文件/dev/video0及/dev/dsp進行設置,進而完成實時視頻的采集和編碼:

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 系統網絡傳輸模塊的設計

2.2.1 RTP封裝及傳輸前的準備

在經過編碼的實時視頻流進行RTP封裝并進入網絡傳輸之前,還有幾件事情需要完成。

首先,要更改工作目錄,以便后續命令的編寫和執行。更改工作目錄只需一條簡單Ubuntu的命令即可實現,代碼如下:

cd myworks/trunk/build/Debug/bin;

其次,由于本系統采用組播技術作為IP網絡數據傳輸方式,故要將多播地址添加到傳輸方及接收方計算機的IP路由表當中;

最后,還要先利用Mplayer測試編碼后的視頻流,然后方能調用相關程序進行封裝及傳輸。如果經過以上三步均未出現問題,那么就可以進入視頻流的封裝及網絡傳輸階段。

2.2.2 網絡傳輸模塊軟件libccrtp核心思想

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

2.2.3 系統發送端及接收端的軟件實現

發送端所要實現的目標是通過libccrtp軟件實現已編碼實時視頻流的應用層RTP封裝然后進行UDP發送,實現代碼為:cat pipe|./rtpcat 224.0.1.2 5004。接收端根據RTP包頭信息重構視頻幀,最后恢復出視頻流,代碼如下:

./rtprecv 224.0.1.2 5004 | mplayer ?cache 1024 ?

2.3 整個系統的實現代碼

整個系統使用Ubuntu Linux下的bash進行編寫,編碼模塊以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 結 語

實驗結果表明,使用本設計系統進行傳輸,不僅能夠獲得較好的圖像質量以及較低傳輸的延時,同時也能夠滿足實時性應用的需求。本系統具有硬件條件需求低,通用性強等優點,但還存在不足之處之處:由于傳輸模塊設計目標僅為完成基本實時傳輸功能,故在系統傳輸的擁塞、差錯控制方面沒有考慮的太多;本系統采用端到端的設計,并沒有把多用戶的情況考慮進去。因此,擁塞控制機制以增強接收端解碼視頻的質量和多點傳輸的考慮及網絡拓撲的支持將是進一步的研究方向。

參考文獻

[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] 畢厚杰,王健.新一代視頻壓縮標準:H.264/AVC[M].北京:人民郵電出版社,2009.

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

[5] 姜蓉蓉,周建江.基于TMS320DM355的MAV機載視頻傳輸系統的設計與實現[J].電光與控制,2013,20(1):56?60.

[6] 胡鵬.嵌入式的網絡視頻傳輸系統的設計與實現[J].電腦知識與技術,2010(22):6321?6323.

猜你喜歡
系統設計
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
主站蜘蛛池模板: 日韩成人午夜| 免费人成视网站在线不卡| 亚洲福利视频网址| 日本福利视频网站| 欧美成人在线免费| 亚洲色无码专线精品观看| 91无码国产视频| 亚洲国产AV无码综合原创| 久久久久国产精品嫩草影院| 无码AV动漫| 国产日韩欧美一区二区三区在线| 国产成人1024精品下载| 99久久人妻精品免费二区| 国产一级α片| 中文字幕日韩视频欧美一区| 国产美女自慰在线观看| 亚国产欧美在线人成| 国产91高跟丝袜| 伊人网址在线| 国产精品久久久精品三级| 伊伊人成亚洲综合人网7777| WWW丫丫国产成人精品| 国产精品成人一区二区不卡| www.99在线观看| 在线国产91| 欧美精品啪啪| 久久久亚洲国产美女国产盗摄| 婷婷伊人五月| 亚洲日韩精品伊甸| 最新日韩AV网址在线观看| 青草视频网站在线观看| 久草视频一区| 这里只有精品在线| 久久99久久无码毛片一区二区| 中国一级毛片免费观看| 亚洲天堂日本| 2021精品国产自在现线看| 激情五月婷婷综合网| 免费人成视网站在线不卡| 欧美日韩国产在线播放| 日韩色图区| 亚洲精品日产精品乱码不卡| 四虎影视8848永久精品| 欧美精品xx| 欧美69视频在线| 巨熟乳波霸若妻中文观看免费| 国产麻豆精品久久一二三| 久久无码av三级| 99ri精品视频在线观看播放| 亚洲无码不卡网| 免费激情网站| 久久久久人妻精品一区三寸蜜桃| 91网红精品在线观看| 色欲不卡无码一区二区| 在线观看亚洲国产| 国内精品九九久久久精品| 国产黑丝视频在线观看| 亚洲无码高清视频在线观看| 久久国产精品夜色| 五月天丁香婷婷综合久久| 婷婷中文在线| 丰满的少妇人妻无码区| 秋霞一区二区三区| 性做久久久久久久免费看| 在线播放精品一区二区啪视频| 欧洲熟妇精品视频| 亚洲欧美日韩中文字幕在线| 国产精品毛片一区| 91精品国产91久无码网站| 日本午夜视频在线观看| 亚洲国产综合精品中文第一| 成人午夜久久| 草草线在成年免费视频2| 日本一区二区不卡视频| 国产精品人成在线播放| 99精品视频九九精品| 手机看片1024久久精品你懂的| 精品视频一区二区三区在线播| 18禁色诱爆乳网站| 高清不卡一区二区三区香蕉| 国产原创第一页在线观看| 精品无码日韩国产不卡av |