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

基于無線視頻服務器自適應帶寬算法

2012-06-25 07:03:30浩,管
電視技術 2012年9期

馮 浩,管 鮑

(1.武漢郵電科學研究院,湖北 武漢 430074;2.武漢虹信通信技術有限責任公司,湖北 武漢 430074)

衡量無線視頻質量的重要指標是流暢性和實時性。無線網絡傳輸的上行帶寬有限,傳輸的視頻圖像往往容易出現馬賽克和延遲等現象。傳統的無線視頻通信系統主要是單卡的模式,通過一張卡傳輸。這樣利用的網絡帶寬資源大概在300 kbit/s左右,如果網絡狀況好可以達到400 kbit/s左右,這樣得到的視頻圖像也容易出現馬賽克等現象,不能很好地解決無線網絡帶寬不足的問題。本文針在雙模無線視頻通信的基礎上,通過高性能的ARM9芯片控制MC8630無線模塊,這樣將無線網絡資源提高到600 kbit/s,如果網絡狀況好可以達到800 kbit/s左右,很大程度上能避免無線視頻傳輸過程中出現的馬賽克和視頻畫面延時,基本保證了視頻的流暢性和實時性。

1 協議介紹

SIP是一個應用層的控制協議,可以用來建立、修改、和終止多媒體會話的協議。在多媒體通信中完成信令的交互,SIP協議棧主要由eXosip模塊、osip2模塊、osipparser2模塊組成。其中osipparser2主要完成SIP和SDP消息的文本解析器和文本生成器。osip2模塊主要實現事務狀態機的維護和運行,eXosip模塊實現底層socket傳送/接收以及上層的數據處理。SIP協議完成會話還需要和SDP協議配合使用,SDP協議是會話描述協議,主要描述會話名稱和意圖,構成會話的媒體等信息[1]。

實時傳輸協議(Realtime Transport Protocol,RTP),是針對Internet上多媒體數據流的一個傳輸協議,由IETF作為RFC1889發布,現在最新版為RFC3550。RTP被定義為在一對一或一對多的傳輸情況下工作,其目的是提供時間信息和實現流同步。RTP本身只保證實時數據的傳輸,并不能為按順序傳送數據包提供可靠的傳送機制,也不提供流量控制或擁塞控制,它依靠RTCP提供這些服務。RTCP協議負責管理傳輸質量,在當前應用進程之間交換控制信息,提供流量控制和擁塞控制服務。

2 系統結構

本方案主芯片采用TMS320DM368處理器,主頻432 MHz,芯片內部集成有DSP處理器,TI開放其DSP接口,可以支持H.264/MPEG-4的高清編解碼。CY7C65640A的驅動可以直接參考LinuxUSB的驅動,選擇CY7C65640A芯片擴展DM365的USB接口,連接兩個MC8630。本系統采用中興通訊的MC8630芯片,如圖1所示。該芯片是1個CMDA20001x/EVDO Rev.A的3G無線模塊,上行通信速度理論值為1.8 Mbit/s。由于其資料廣泛可以參考該芯片Linux的驅動程序,從而可大大減小軟件開發周期,滿足應用需求。本文重點闡述軟件設計部分[2]。

圖1 系統結構示意圖

3 軟件設計

軟件設計包括嵌入式軟件設計和客戶端軟件設計。其中嵌入式軟件設計包括對MC8630芯片驅動設計和信令交互數據發送軟件設計部分。客戶端軟件設計部分包含解包部分和解碼部分。組幀協議如圖2所示。嵌入式軟件設計按照此協議采集視頻數據并按照H.264組幀,通過USB接口將視頻數據發送給客戶端。客戶端接收雙模發送過來的數據,并將該數據通過FFmpeg解碼庫顯示播放出來。

圖2 組幀協議示意圖

其中B代表byte,幀開頭以B1C1B2C2來區分。Playload定義8為音頻,77為視頻。碼流類型為:0x01代表H.264壓縮,0x02代表MPEG-4壓縮,0x81代表G.711壓縮,0x82代表G.729壓縮,0x83代表MP3壓縮。

雙卡定義的視頻發送策略如圖3所示。雙網卡分別傳送I幀和P幀數據[3]。

圖3 視頻發包示意圖

4 嵌入式軟件設計

4.1 嵌入式軟件驅動設計

MC8630作為塊設備,該芯片提供Linux內核源碼驅動程序,通過移植工作,將該驅動加載到內核當中。經過AT指令配置之后即可使用,當模塊狀態為可用時,通過Linux塊設備操作流程向發送端發送數據。

CY7C65640的驅動設計可以參考通用USB驅動程序設計,大部分配置任務都在驅動程序中完成。驅動程序加載到內核當中,系統上電即可使用[4]。

4.2 應用程序設計

DM368芯片是ARM+DSP雙核結構,利用DSP強大的運算功能,實現對視頻信號的編碼,編碼之后的視頻從DSP傳送到ARM中,經過組幀協議之后等待客戶端的鏈接,一旦接收到視頻請求就將視頻發送出去。無線視頻服務器還需接收客戶端發送過來的云臺控制,OSD參數查詢和視頻分辨力、碼率修改等信令。這些信令控制著終端運行的參數。信令的交互采用的是SIP協議,消息體格式采用的是SDP方式或XML方式,通過SDP協議傳遞RTP視頻流信息;通過XML消息體傳遞云臺控制等信息。

當視頻服務器接收到客戶端發送視頻請求SIP信令時,解析SDP消息體,從m參數中獲取RTP端口,Playload值等信息,然后調用RTP協議根據指定端口將數據發送到客戶端。同時,當視頻服務器接收到客戶端發送的云臺控制等信令時,解析XML消息體,完成對相應結構體的賦值,從而控制著終端運行的參數。

由服務器處理流程得知,應用程序設計包含視頻緩沖區設計部分和信令交互部分。視頻緩沖區完成采集的數據緩存和視頻數據的發送。信令交互部分完成SIP信令交互和RTP信令交互。

4.2.1 視頻緩沖區設計

DM368芯片上運行的是Linux實時操作系統,利用Linux線程間通信的同步與互斥機制和Linux信號量機制來實現視頻緩沖隊列。視頻緩沖隊列定義結構體如下:

隊列相關函數說明包含在sendqueue.c文件當中,QueueInit()函數主要完成緩沖隊列的初始化,客戶端關掉視頻時調用QueueEmpty()函數清空接收隊列,客戶端申請視頻時調用QueueOutput()函數取出隊列數據進行發送,接受客戶端RTCP統計的丟包率如果丟包率大時調用drop_packet()函數丟包,丟棄P幀和緊隨P幀之后的I幀,以降低發送碼流。

4.2.2 信令交互部分設計

主程序在完成初始化之后,主動向客戶端發送1個SIP注冊消息,并開通心跳包線程,每隔2 min發送1次心跳包,心跳包只包含時間信息,客戶端接收到心跳包會返回1個心跳包回應,當心跳包線程超過2 min未收到心跳包,則重新注冊。與此同時在主程序中開啟SIP線程接收客戶端發送過來的SIP信令,定義eXosip_event_t*stEvent接收事件,如果該事件類型為EXOSIP_CALL_INVITE,表示客戶端視頻請求消息,此時調用osipparser2庫函數解析SDP的內容,獲取RTP發送端口,向客戶端的該端口發送RTP數據流。由于RTP庫支持1500的包長度,此處傳輸的長度為1362。同時開啟RTP監聽線程,監聽客戶端發送過來的RTCP包,根據收到的包信息,動態調整發送的碼流大小,當碼流過大時候,此時采取丟包策略調用drop_packet()函數,丟掉P幀和緊隨其后的I幀數據。

嵌入式軟件設計部分主要處理客戶端發送過來的SIP消息、包括云臺控制消息、視頻請求消息,消息的處理如下:

初始化RTP會話,建立RTP連接,開始發送數據。發送SIP回應消息。

5 客戶端軟件設計部分

客戶端軟件設計部分包括解碼部分和信令交互部分。

5.1 信令交互部分

信令交互部分采用的SIP信令控制協議由點擊客戶端界面按鈕來觸發,此處用到的SIP格式有MESSAGE消息和INVITE請求。MESSAGE消息用來處理控制消息和視頻服務器參數獲取、設置消息。INVITE請求用于RTP請求等。消息的組包流程為:1)初始化消息頭、設置消息頭域的值;2)判斷是否帶有消息體,帶有消息體判斷是SDP消息體還是其他消息體,否則進行步驟4);3)初始化SDP消息體,非SDP消息體的時候初始化XML消息體;4)完成SIP字符串的生成,完成SIP協議的發送。其中Content-Type的值是XML的時候設置為application/global_eye_v10+xml。是SDP的時候設置為application/sdp。

舉例RTP請求SIP協議發送的例子[5]。

在客戶端也要開啟SIP監聽消息進程,監聽線程主要監聽CALL消息的回應消息、注冊消息和SIP回應消息。客戶端獲取相應的參數之后,完成界面的更新操作。

5.2 FFmpeg解碼部分

客戶端采用VC++6.0開發,客戶端發送CALL消息申請視頻之后,收到SIP的EXOSIP_CALL_ANSWERED回應消息,然后發送ACK,服務器在接收到ACK之后,開始調用RTP協議發送視頻流。客戶端監聽RTP端口接收數據流設置。定義rtp_event*e接收事件,當e->type=RX_RTP時,將雙模接收到的數據送入inputdata()函數進行組包解碼顯示。由于接收的數據是雙模發送過來的,則需要對接收的數據進行組包、排序處理。根據RTP包的特性,同一幀的數據時間戳TS相等,RTP小包序列號(seq)是連續的。

1)主任務入口函數

當前鏈表指向下一個節點;

6 結束語

本文基于TI公司的DM368芯片,采用雙卡傳輸,采用多鏈路捆綁技術實現視頻數據的安全可靠傳輸,顯著提高了無線網絡傳輸帶寬[4]。文中信令協議采用SIP協議,視頻流的傳輸采用RTP/RTCP協議,該程序框架具有很好的兼容性,只需要簡單的改動就能夠組建大的視頻監控網絡,具有很強的可擴展性,目前該系統已投入使用。

[1]胡棟,劉峰,朱秀昌.實時多模式無線視頻傳輸原型系統的實現[J].通信學報,2006,27(10):110-116.

[2]孫天澤,袁文菊,張海峰.嵌入式設計及 Linux驅動開發指南:基于ARM9處理器[M].北京:電子工業出版社,2005.

[3]尤盈盈.基于嵌入式系統的無線多媒體傳輸系統終端的研究[D].杭州:浙江工業大學,2005:30-34.

[4]吳長樹.一種基于公共移動通信的視頻包多鏈路接收和播放方法:中國,200910241583.6[P].2010-05-12.

[5]翁睿.基于GPRS網絡的自適應碼率視頻傳輸[D].上海:復旦大學,2008.

主站蜘蛛池模板: 亚洲欧美另类久久久精品播放的| 亚洲国产午夜精华无码福利| 日韩在线播放欧美字幕| 欧美精品1区| 伊人蕉久影院| 日本亚洲成高清一区二区三区| 成人精品午夜福利在线播放| 九月婷婷亚洲综合在线| 日韩在线网址| 亚洲综合第一页| 先锋资源久久| 麻豆精品国产自产在线| 99久久精彩视频| 国产亚洲视频免费播放| 日韩最新中文字幕| 精品小视频在线观看| 欧美三级视频网站| 国产在线98福利播放视频免费| 久996视频精品免费观看| 中文字幕在线免费看| 色屁屁一区二区三区视频国产| 国产精品嫩草影院视频| 精品第一国产综合精品Aⅴ| 国产流白浆视频| 久久综合伊人 六十路| av在线手机播放| 欧美视频在线播放观看免费福利资源| 欧美成人午夜视频免看| 免费高清毛片| 国产成人三级在线观看视频| 久久亚洲美女精品国产精品| 91精品情国产情侣高潮对白蜜| 国产成人亚洲欧美激情| 99精品在线视频观看| 91在线精品免费免费播放| 一本无码在线观看| 国产高清在线观看| 成人av手机在线观看| 91精品亚洲| 国产永久无码观看在线| 国产福利免费视频| 在线观看亚洲天堂| 无码专区国产精品一区| 免费xxxxx在线观看网站| 中日韩一区二区三区中文免费视频 | 亚洲日韩精品无码专区97| 精品一区二区无码av| 亚洲精选高清无码| 亚洲精品动漫| 午夜毛片免费观看视频 | 精品国产美女福到在线不卡f| 99精品热视频这里只有精品7| 真实国产乱子伦高清| 日本不卡在线视频| 9999在线视频| 国产精品尤物铁牛tv| 成人自拍视频在线观看| 国产精品99在线观看| 欧美a√在线| 欧美97欧美综合色伦图| 欧美日在线观看| 午夜性爽视频男人的天堂| 呦女亚洲一区精品| 在线观看欧美国产| 国产99视频在线| 毛片免费视频| 欧美亚洲国产日韩电影在线| 国产精品免费入口视频| 国产精品观看视频免费完整版| 国产综合另类小说色区色噜噜| 91丝袜美腿高跟国产极品老师| 亚洲性日韩精品一区二区| 亚洲精品第一在线观看视频| 久久综合九色综合97婷婷| 欧美狠狠干| 欧美激情网址| 国产三级成人| 爱爱影院18禁免费| 97视频免费在线观看| 国产亚洲视频免费播放| 亚洲人成人无码www| 欧美www在线观看|