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

基于ARM11的嵌入式視頻傳輸系統的實現

2013-06-29 01:47:34陳宗成鄧華秋
電視技術 2013年9期
關鍵詞:嵌入式系統

陳宗成,鄧華秋

(華南理工大學理學院物理系,廣東 廣州 510640)

隨著圖像處理技術和網絡技術的不斷發展,視頻監控系統大致經歷了三個發展階段,前兩代分別以黑白電視為代表的模擬監控系統和以硬盤錄像機為代表的半數字化監控系統[1],第三代視頻監控系統是指以前端網絡視頻為代表的全數字視頻監控系統,視頻從前端的采集、壓縮、傳輸和瀏覽、存儲全部數字化。CCD和CMOS攝像頭為數字視頻采集提供便利。隨著視頻壓縮算法的發展,高壓縮比、還原能力強的壓縮算法不斷出現,特別是伴隨著流媒體技術產生的H.264視頻壓縮技術,為視頻的實時傳輸和實時瀏覽提供便捷。

伴隨著數字化視頻監控系統的到來,對視頻監控系統的要求也不斷提高,要求實時可靠、操作簡單、功能豐富、經濟適用等。而嵌入式系統的基本特點恰好滿足了以上要求,嵌入式視頻監控系統應運而生。目前嵌入式視頻系統普遍采用BS架構,雖然實現起來簡單方便[2],卻不利于顯示端功能的升級和改進。本文根據嵌入式視頻監控系統的發展現狀,在ARM-Linux嵌入式系統上搭建監控系統必須的軟件平臺,通過CS架構實現視頻的采集、編碼、發送和顯示功能。編碼方面采用最新的H.264標準,有效地降低了碼率,和MPEG-2和MPEG-4 ASP等標準相比,在同等圖像質量下,采用H.264技術壓縮后的數據量只有MPEG-2的1/8,MPEG-4 的 1/3[3]。在視頻發送方面,采用協議 UDP/RTP/RTCP,既滿足視頻服務器所需的組播特性,又能通過RTP/RTCP協議保證流媒體的實時傳輸[4]。

1 系統結構

本文在ARM-Linux嵌入式平臺實現遠程視頻實時監控系統,利用現有的網絡設備,滿足用戶遠程監控的目的。需要實現的主要工作包括前端視頻采集、網絡傳輸和終端接收播放,主要功能總結如下:

1)監控前端設備通過COMS攝像頭實現視頻的采集;

2)在ARM-Linux平臺對原始視頻數據編碼;

3)前端服務器與客戶端通過局域網或者因特網實現視頻數據的組播發送;

4)客戶端接受H.264視頻數據,實時解碼播放。

考慮到視頻監控系統需要視頻的實時采集、編碼和發送,因此,需要集成度高、穩定、實時性好的SoC系統。在綜合考慮成本的情況下,選擇三星公司S3C6410作為主控芯片。S3C6410是以功能強大的ARM11為核心的SoC芯片,使用廣州友善之臂技術有限公司開發的mini6410嵌入式平臺。整體硬件平臺如圖1所示。

2 視頻采集、編碼及發送

2.1 視頻采集

圖1 系統硬件平臺

利用V4L2接口函數獲取視頻幀數據有3種方式:直接通過read()函數讀取視頻幀,用戶指針方式,mmap內存映射。本文通過內存映射方式采集,采用這種方法讀取方便,而且省去了大量的內存拷貝,效率較高,具體操作步驟如圖2 所示[5]。

圖2 視頻采集流程

2.2 視頻編碼

本文利用S3C6410提供的MFC硬件編碼器對原始視頻數據進行H.264格式編碼,與V4L2視頻采集操作相同,MFC進行編碼時,絕大多數操作都是通過I/O control接口函數來完成的,S3C6410已經提供了針對H.264視頻編碼的I/O control接口的封裝API函數。為了減小編程工作量,本文使用這些已經比較穩定的API函數進行視頻編碼操作,主要步驟如下:

1)初始化編碼句柄。在進行編碼之前需要初始化一個編碼句柄handles,該變量是一個結構體變量,其中存儲了視頻編碼的控制信息,初始化該結構體的API函數是:void*SsbSipH.264EncodeInit(unsigned int uiWidth,unsigned int uiHeight,nsigned int uiFramerate,unsigned int uiBitrate_kbps,unsigned int uiGOPNum)。

2)將編碼信息寫入MFC驅動層,初始化MFC硬件。完成這一工作的API函數是:int SsbSipH.264EncodeExe(void*openHandle)。

3)獲取輸入緩存地址。通過函數void*SsbSipH.264EncodeGetInBuf(void*openHandle,long size)獲得內核存儲原始數據的幀緩存地址。

4)將原始視頻大小存入內核緩沖區。通過memcpy函數,將采集到的視頻數據發送該內核驅動空間,用于MFC對視頻進行編碼。

5)對視頻數據進行編碼。視頻編碼的API函數是:int SsbSipH.264EncodeExe(void*openHandle)。在進行編碼時,有些編碼器會在每個關鍵幀前面都添加序列參數集(Sequence Parameter Set,SPS)和圖像參數集(Picture Parameter Set,PPS),造成無用的碼率增加。MFC只對第一幀H.264碼流上添加SPS和PPS。SPS和PPS中含有解碼所必須的參數,包括幀頻、圖像大小等。

6)獲取編碼后的幀緩存地址和大小。通過API函數GetOutBuf函數獲取編碼后視頻數據在內核中的緩沖區地址。返回的編碼數據,除了第一幀圖像外,每次緩沖區內保存的都包含并且只包含一個完整的NAL單元;第一幀圖像編碼完成之后,緩沖區除了第一個NAL單元之外,還有序列參數集和圖像參數集2個NAL單元。

7)將編碼數據放入環形存儲隊列。8)釋放資源,關閉編碼設備。

2.3 視頻發送

本系統采用流媒體最常用的RTP/RTCP協議發送視頻數據。編碼后的視頻數據按照RTP協議打包,并利用UDP協議對局域網組播。RTP協議的定位是應用層協議,這樣便于擴展。本文利用RTP的一個C++庫JRTPLIB進行視頻發送,該庫封裝了網絡協議的配置,只要調用其中的API函數就可以輕易配置網絡,不過JRTPLIB本身不是針對某一種實時數據的開發庫,因此,發送不同的數據流需要用戶根據相應的協議進行RTP的分包和打包。

1)移植JRTPLIB到ARM平臺

本系統使用的JRTPLIB版本是3.7.1。該C++庫是根據RTP標準RFC3550寫成的,支持Windows和類Linux操作系統,為用戶提供了RTP頭和網絡配置接口,只要將需要傳輸的數據根據RTP協議進行適當修飾就可以輕易使用RTP協議發送數據。同時,JRTPLIB會自動發送RTCP控制信息到接收端。

2)初始化RTP會話實例

聲明三個變量:RTPSession rtpsess,RTPSessionParams sessionparams,RTPUDPv4TransmissionParams transparams。

通過實例化類RTPSession建立RTP會話,RTP傳輸的大多數操作都是通過RTPSession對象提供的。同時,用到的2個參數類是RTPSessionParams和RTPUDPv4 TransmissionParams,分別用來設置RTP協議的頭信息和傳輸信息。

3)對H.264視頻數據進行RTP打包

S3C6410的MFC對視頻進行H.264編碼時,為了存儲到介質上之后解碼器能夠區分每一個NAL單元,MFC在每一個NAL單元之前添加起始碼0x00000001,這也是H.264標準的建議[6],但是,實時遠程播放系統,解碼器會根據RTP時間戳區分不同的NAL單元,因此在發送數據之前需要去掉該起始碼。為了解碼器獲取序列信息和圖像信息,MFC在第一個NAL單元之前添加序列參數集和圖像參數集,這兩個參數集分別作為獨立的NAL單元與第一個視頻NAL單元形成一個數據組。MFC編碼后,輸出緩沖區內的數據結構如圖3所示。

圖3 MFC輸出緩沖區中數據結構

為了將H.264視頻數據按照RTP協議傳輸,并且能夠讓接收端的解碼器能夠識別,需要有統一的標準對H.264數據打包和解包。本系統根據標準 RFC3984[7]對H.264打包。

4)發送視頻數據

JRTPLIB調用RTPSession的成員函數完成發送:int SendPacket(const void*data,size_t len,uint8_t pt,bool mark,uint32_t timestampinc)。其中,data是打包完成的視頻數據首地址;len是待發送視頻數據長度;pt是發送的數據類型;mark是標示位,本文用來標示一個NAL單元的最后一個分包;timestampinc是時間戳的增量,由于每個NAL單元中的內容都是在同一時刻采集的視頻數據,發送同一個NAL單元分包期間,時間戳不變,該值為0。

3 視頻的接收和播放

本文在PC機上通過會話描述協議(Session Description Protocol,SDP)[8]文本與發送端通信,并使用 VLC 播放器解析該協議文本對視頻流實時播放。

本系統利用BOA網絡服務器將SDP文件發送到接收端,BOA使用http傳輸協議。接收端的VLC播放器通過http協議接收SDP文件,然后對SDP文件解析,通過RTP協議接收并播放實時視頻數據。在PC端,使用VLC播放器通過http協議打開服務器端的SDP文件實時播放視頻。接收端PC環境為Intel Core 2 Duo處理器,2.67 GHz,1.75 Gbyte 內存,視頻采集格式為 YUV420,大小480 ×272,幀頻30 f/s(幀/秒)。

圖4a是單個VLC播放器實時播放效果圖,經測試,播放延遲在0.5 s以內,考慮到傳輸延時和VLC播放器的緩沖,0.5 s以內的延遲屬于正常。在視頻監控期間,丟包率在0.3%以內。圖4b是單個VLC播放器實時播放效果圖。圖4b是4個VLC播放器同時播放效果,表1為同時打開4個VLC播放器測得的數據。由于使用組播發送視頻數據,同時打開多個播放器同時進行播放,畫面清晰流暢,沒有明顯抖動,丟包率沒有沒有明顯增加。

圖4 使用VLC播放器實時播放效果

表1 4個VLC播放器信息

4 結論

隨著社會的發展,視頻監控系統成為安防系統中越來越重要的監控工具。近些年,網絡技術和視頻處理技術的不斷進步,視頻監控不斷向智能化、網絡化和集成化發展。基于以上背景,本文設計并實現了一款嵌入式實時視頻服務系統。在本文的完成過程中,使用了嵌入式技術、視頻壓縮編碼技術、流媒體實時傳輸技術、SDP會話描述協議和Web技術,最終實現了基本功能。經過測試,視頻播放流暢,支持多用戶同時在線播放,丟包率較低,達到了預期的設計目標。

[1]淺析視頻監控系統發展歷程[EB/OL].[2012-07-20].http://wenku.baidu.com/view/4de33302e87101f69e3195a9.html.

[2]楊曉姣,黃云霞.嵌入式視頻監控系統視頻服務器的設計與實現[J].電子設計工程,2011(6):184-186.

[3]胡興軍.視頻編碼標準H.264的技術革新及應用[J].影像技術,2009(1):24-27.

[4]李長銀.基于UDP組播的分布式仿真系統實現[D].成都:電子科技大學,2008.

[5]白長青,陳沛.嵌入式終端基于Linux V4L2的圖像采集系統[J].信息技術,2012(2):22-23.

[6]畢厚杰.新一代視頻壓縮編碼標準——H.264/AVC[M].北京:人民郵電出版社,2009.

[7]RFC3984,RTP Payload Format for H.264 Video[S].2005.

[8]王榮生.SDP協議在視頻點播系統中的應用[J].計算機應用與軟件,2005(1):74-76.

猜你喜歡
嵌入式系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
主站蜘蛛池模板: 毛片在线看网站| 高清无码手机在线观看| 亚洲色成人www在线观看| 欧美激情伊人| 国产精品亚洲va在线观看| 国产亚洲视频中文字幕视频 | 日韩精品无码免费一区二区三区 | 最新加勒比隔壁人妻| 夜夜爽免费视频| 日韩欧美网址| 亚洲国产午夜精华无码福利| 乱码国产乱码精品精在线播放| 色网在线视频| 国产精品福利导航| 谁有在线观看日韩亚洲最新视频| 九色视频一区| 国产精品区视频中文字幕| 54pao国产成人免费视频| 小13箩利洗澡无码视频免费网站| 国产丰满大乳无码免费播放| 欧美专区在线观看| 在线国产欧美| 亚洲中文字幕国产av| 久草视频一区| 亚洲性影院| a毛片基地免费大全| 亚洲天堂精品在线| 亚洲香蕉久久| 久久天天躁狠狠躁夜夜2020一| 97se亚洲综合不卡 | 免费看a毛片| 日韩色图区| 久久黄色小视频| 欧美亚洲国产一区| 国产一区二区精品福利| 国产全黄a一级毛片| 免费在线观看av| 成年免费在线观看| 国产成人1024精品| 精品视频免费在线| 亚洲成年人网| 中文字幕亚洲乱码熟女1区2区| 日本精品一在线观看视频| 国产哺乳奶水91在线播放| 超碰aⅴ人人做人人爽欧美| 国产精品欧美激情| 亚洲国产精品一区二区第一页免 | 欧美啪啪一区| 成·人免费午夜无码视频在线观看| 91精品视频在线播放| 久久精品人人做人人| 日韩亚洲综合在线| 色偷偷男人的天堂亚洲av| 99精品在线看| 国产成人免费高清AⅤ| 亚洲成人精品久久| 国产成人亚洲综合a∨婷婷| 无码日韩精品91超碰| 青青操视频在线| 71pao成人国产永久免费视频| 欧美三级不卡在线观看视频| 22sihu国产精品视频影视资讯| 性喷潮久久久久久久久| 美女啪啪无遮挡| 亚洲无线一二三四区男男| 无码又爽又刺激的高潮视频| 一级毛片在线播放免费| 亚洲狼网站狼狼鲁亚洲下载| 欧美在线精品一区二区三区| 亚洲成人播放| 国产视频一区二区在线观看 | 在线国产毛片手机小视频 | 夜夜爽免费视频| 国产美女无遮挡免费视频| 国产精品熟女亚洲AV麻豆| 国产一级片网址| 先锋资源久久| m男亚洲一区中文字幕| 99热最新网址| 青青国产视频| 亚洲嫩模喷白浆| 色天天综合久久久久综合片|