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

        ?

        基于Android的實時視頻通信研究與實現(xiàn)

        2014-04-12 00:00:00呂東劉小河王鴻飛
        現(xiàn)代電子技術(shù) 2014年1期

        摘 要: 為方便企業(yè)移動辦公,研究基于Android移動終端的視頻通信,構(gòu)建了實現(xiàn)視頻通信的系統(tǒng)結(jié)構(gòu),對SIP協(xié)議、H.264視頻編解碼、RTC/RTCP網(wǎng)絡(luò)傳輸?shù)汝P(guān)鍵技術(shù)進行研究,在Android平臺上進行了設(shè)計實現(xiàn)。結(jié)果顯示視頻通信效果良好,達到了預(yù)期目的,可作為進一步研究企業(yè)通信的參考。

        關(guān)鍵詞: 視頻通信; Android系統(tǒng); SIP; RTC/RTCP

        中圖分類號: TN926?34 文獻標(biāo)識碼: A 文章編號: 1004?373X(2014)01?0046?04

        0 引 言

        自2007年Android系統(tǒng)誕生以來,經(jīng)過短短幾年時間,Android已經(jīng)逐步占據(jù)了智能移動終端市場的大量份額,成為最廣為使用的移動操作系統(tǒng)。通信網(wǎng)絡(luò)近幾年的高速發(fā)展和WiFi無線網(wǎng)絡(luò)的廣泛應(yīng)用,使得移動終端可以隨時接入網(wǎng)絡(luò),享受互聯(lián)網(wǎng)帶來的豐富內(nèi)容。Windows和Linux平臺上的視頻通信功能已經(jīng)得到很好的實現(xiàn)和應(yīng)用,Android平臺可以通過接入WiFi網(wǎng)絡(luò)進行視頻通信,已經(jīng)開始成為熱門研究。尤其是在企業(yè)通信領(lǐng)域,企業(yè)一般構(gòu)建了自己的內(nèi)部通信環(huán)境,WiFi無線網(wǎng)絡(luò)隨時可用,軟交換平臺和IP電話為企業(yè)辦公帶來極大便利,基于移動終端的視頻通信成為新的趨勢[1]。

        為方便企業(yè)移動辦公,本文基于Android系統(tǒng)平臺,對在企業(yè)WiFi網(wǎng)絡(luò)環(huán)境下實現(xiàn)實時視頻通信的關(guān)鍵技術(shù)進行了研究,并在此基礎(chǔ)上對Android平臺實時視頻通信進行設(shè)計實現(xiàn)。

        1 視頻通信系統(tǒng)構(gòu)成

        雖然目前移動數(shù)據(jù)網(wǎng)絡(luò)已經(jīng)可以支持一些設(shè)備進行多媒體通信,但是由于通信帶寬、通信費用、穩(wěn)定性等原因,應(yīng)用范圍十分有限。隨著IP網(wǎng)絡(luò)的普及,在企業(yè)內(nèi)部擁有了高帶寬高穩(wěn)定高速率的局域網(wǎng)絡(luò),設(shè)置WiFi熱點提供無線連接,部署應(yīng)用服務(wù)器,通過軟交換設(shè)備實現(xiàn)和PSTN網(wǎng)絡(luò)通信互連,除了解決上述問題之外,還有許多數(shù)據(jù)網(wǎng)絡(luò)不可比擬的優(yōu)點[2]。所以本文以企業(yè)IP網(wǎng)絡(luò)環(huán)境為背景,研究構(gòu)建Android視頻通信應(yīng)用系統(tǒng)。

        1.1 系統(tǒng)結(jié)構(gòu)

        基于Android的實時視頻通信系統(tǒng)網(wǎng)絡(luò)組成如圖1所示。

        其中視頻通信軟件安裝在Android移動終端上,其通過WiFi無線網(wǎng)絡(luò)連接SIP服務(wù)器及與其他Android終端或裝有SIP通話軟件的PC終端進行通信。視頻通信的實現(xiàn)依賴于WiFi網(wǎng)絡(luò)、SIP服務(wù)器等外部條件[3]。移動終端用戶可以對系統(tǒng)個性化的配置,根據(jù)自己的需求和偏好選擇需要的功能;移動終端用戶向服務(wù)器發(fā)出請求并完成注冊;移動終端用戶對語音視頻數(shù)據(jù)進行采集和編碼,并通過RTP/RTCP(實時傳輸協(xié)議/傳輸控制協(xié)議)進行傳輸和控制,對端用戶進行解碼和播放;SIP服務(wù)器完成對會話的控制,包括會話的注冊、發(fā)起、維護與結(jié)束、注銷等功能。

        圖1 視頻通信系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)

        1.2 視頻通信流程

        實現(xiàn)視頻通信的基本流程如圖2所示。

        圖2 視頻通信基本流程

        在經(jīng)過SIP服務(wù)器對IP地址進行連接成功后,視頻通信的基本流程就變得相對簡單,如視頻采集直接調(diào)用Android移動終端攝像頭,再將采集到的圖像幀進行編碼、打包、發(fā)送等一系列的處理,到對端設(shè)備解碼播放就可以了。

        2 關(guān)鍵技術(shù)

        從圖1及圖2中就可以看出,要想在Android平臺上實現(xiàn)實時視頻通信,必須進行可靠連接、對視頻進行處理、傳輸?shù)龋湎鄬?yīng)的技術(shù)就是SIP協(xié)議、視頻編解碼、網(wǎng)絡(luò)傳輸?shù)取?/p>

        2.1 SIP協(xié)議

        SIP協(xié)議(Session Initiation Protocol,會話初始協(xié)議)是由IETF(互聯(lián)網(wǎng)工程任務(wù)組)于2001年提出的IP電話信令協(xié)議(RFC3261)[4],用于在IP數(shù)據(jù)網(wǎng)絡(luò)上發(fā)起、建立、結(jié)束多媒體會話。SIP能夠使用互聯(lián)網(wǎng)的端點(用戶代理)來發(fā)現(xiàn)參與者,并且協(xié)商它們共享會話的特性。SIP獨立運行于底層的通信協(xié)議之上,并且不依賴于所建立的會話類型。SIP協(xié)議處于網(wǎng)絡(luò)分層體系結(jié)構(gòu)的應(yīng)用層,與其他應(yīng)用層協(xié)議一樣,可以利用TCP或UDP來傳輸SIP消息。SIP會話使用四個主要組件:SIP用戶代理、SIP注冊服務(wù)器、SIP代理服務(wù)器和SIP重定向服務(wù)器。這些系統(tǒng)通過傳輸包括了SDP協(xié)議(用于定義消息的內(nèi)容和特點)的消息來完成SIP會話。

        用SIP實現(xiàn)通信一般分為六個步驟:

        (1) 注冊,發(fā)起和定位用戶;

        (2) 進行媒體協(xié)商——通常采用SDP(Session Description Protocol,會話描述協(xié)議)方式來攜帶媒體參數(shù);

        (3) 由被叫方來決定是否接納該呼叫;

        (4) 呼叫媒體流建立并交互;

        (5) 呼叫更改或處理;

        (6) 呼叫終止。

        目前已經(jīng)有很多的開源SIP協(xié)議??梢允褂茫鏜jsip,PJSIP,oSIP等。Android從2.3版本開始也加入了對SIP的支持[5]。

        2.2 編解碼技術(shù)

        Android支持的視頻格式有H.263、H.264、MPEG?4 SP等,其中對M4V_H263、AVC_H264等提供了編碼支持。

        H.264編碼技術(shù)是繼MPEG?4之后的最新國際視頻編碼標(biāo)準(zhǔn),由ITU?T和ISO/IEC的開發(fā)組共同進行開發(fā)。H.264標(biāo)準(zhǔn)是一種高性能的視頻編解碼技術(shù),相比之前的標(biāo)準(zhǔn),具有更高的壓縮率、高質(zhì)量圖像、容錯功能,并有很強的網(wǎng)絡(luò)適應(yīng)性,更適合于移動終端進行傳輸[6]。

        為便于適應(yīng)不同的網(wǎng)絡(luò)結(jié)構(gòu),H.264協(xié)議定義了兩個層,即視頻編碼層VCL(Video Coding Layer)與網(wǎng)絡(luò)提取層NAL(Network Abstraction Layer)[7]。VCL包含了VCL編解碼和VCL解碼器,VCL編解碼用來進行視頻數(shù)據(jù)的壓縮,VCL解碼器用來對視頻數(shù)據(jù)進行解碼;NAL主要為VCL提供了一個與網(wǎng)絡(luò)無關(guān)的統(tǒng)一接口,負責(zé)對視頻數(shù)據(jù)進行封裝,這使得封裝數(shù)據(jù)包在傳送過程中具有了很好的健壯性。

        2.3 網(wǎng)絡(luò)傳輸技術(shù)

        實時傳輸協(xié)議(RTP)通常運行在用戶數(shù)據(jù)包協(xié)議(UDP)層之上,其目的是提供時間信息和實現(xiàn)流同步。RTP一般與UDP一起配合來實現(xiàn)數(shù)據(jù)傳輸?shù)墓δ堋DP只是用來傳輸數(shù)據(jù)包,不能對數(shù)據(jù)包傳輸?shù)臅r間順序進行干預(yù)。RTP的數(shù)據(jù)用UDP分組進行承載。在對RTP數(shù)據(jù)包進行承載時,若一幀的數(shù)據(jù)量很大,將被分割成幾個具有相同時間標(biāo)簽的包進行傳輸,而UDP多路復(fù)用技術(shù)可以讓RTP包進行多點傳輸,方便進行多媒體多點會話。在RTP中規(guī)定使用5%的帶寬傳輸實時傳輸控制協(xié)議(RTCP),RTCP可以監(jiān)控數(shù)據(jù)傳輸,提供數(shù)據(jù)傳輸質(zhì)量的反饋信息[8]。RTP和RTCP配合使用,共同提供流量控制和擁塞控制服務(wù),不僅可以得到最小的網(wǎng)絡(luò)傳輸開銷,而且可以對傳輸情況實現(xiàn)有效地反饋。

        經(jīng)過編碼的H.264視頻碼流分別被封裝上RTP包頭、UDP包頭和IP包頭,封裝之后的數(shù)據(jù)包通過無線網(wǎng)絡(luò)傳輸給接收顯示端。當(dāng)接收端收到數(shù)據(jù)包后將按照與封包順序相反的順序進行解包,把RTP包頭和視頻數(shù)據(jù)取出,然后根據(jù)RTP包頭的序列號進行排序,將視頻數(shù)據(jù)依次送到解碼器接口,解碼器完成對數(shù)據(jù)的解碼,最終進行播放顯示。

        3 視頻通信的實現(xiàn)

        使用Android終端的攝像頭作為視頻采集設(shè)備,在于SIP服務(wù)器進行成功通信建立連接之后,經(jīng)過編碼壓縮并進行RTP打包后進行傳輸,到達對端進行解碼播放。

        3.1 獲取Android許可

        SIP功能的實現(xiàn)通過JNI(Java本地編程接口)調(diào)用開源SIP協(xié)議棧PJSIP實現(xiàn),具體方法可見參考文獻[9]。

        首先,在AndroidManifest.xml文件中,要做允許使用SIP、Camera和WiFi的聲明:

        android:name=\"android.permission.USE_SIP\"/> 允許使用SIP

        android:name=\"android.permission.CONFIGURE_SIP\"/>

        允許對SIP進行配置

        android:name=\"android.permission.CAMERA\"/>

        允許使用Camera

        android:name=\"android.permission.ACCESS_WIFI_STATE\"/>

        允許使用WiFi

        聲明之后才可以在Android上使用相關(guān)的功能。

        3.2 視頻采集

        視頻采集部分包括攝像頭開啟、初始化以及關(guān)閉,通過調(diào)用Android系統(tǒng)的Camera來實現(xiàn)。攝像頭的參數(shù)主要有以下兩種:

        (1) 幀率:攝像頭每秒圖像包含的幀數(shù)。

        (2) 分辨率:采集圖像的分辨率。

        實現(xiàn)視頻數(shù)據(jù)采集功能的主要代碼如下:

        mCamera = Camera.open(); //獲取設(shè)備的 Camera

        Camera.Parameters parameters=camera.getParameters()

        //獲取攝像頭參數(shù)

        parameters.setPreviewSize(currentCapability.width,

        currentCapability.height)

        //根據(jù)當(dāng)前視頻大小設(shè)置預(yù)覽窗口大小

        camera.setParameters(parameters); //設(shè)置攝像頭服務(wù)

        視頻采集實現(xiàn)過程如圖3所示。

        3.3 視頻編碼與傳送

        采集獲得的視頻數(shù)據(jù)送入編碼庫進行編碼。編碼庫提供的編碼參數(shù)主要包括:視頻寬度,視頻高度,幀率。為了提高編解碼效率,使用NDK生成一個可以在Android平臺上調(diào)用的動態(tài)庫.SO,繼而調(diào)用由C語言實現(xiàn)的H.264算法[10]。

        圖3 視頻采集實現(xiàn)過程

        為便于在網(wǎng)絡(luò)中傳輸,將對編碼結(jié)果分片[11]。因為最終得到的H.264視頻編碼信息為NAL(網(wǎng)絡(luò)提取層),往往是比網(wǎng)絡(luò)的MTU(網(wǎng)絡(luò)傳輸最大包大?。┐蠛芏嗟模虼?,發(fā)送視頻數(shù)據(jù)之前,應(yīng)該進行數(shù)據(jù)分片操作,將每個發(fā)送的包控制在MTU大小之下。之后就可以進行RTP傳輸。RTP傳輸?shù)倪^程如圖4所示。

        圖4 RTP視頻傳輸過程

        收到開始指令后,首先獲取經(jīng)過編碼的H.264視頻數(shù)據(jù),進行RTP打包,生成數(shù)據(jù)包頭。數(shù)據(jù)包頭中提供了時間戳、包序列號、視頻類型等信息,添加完數(shù)據(jù)包頭進行發(fā)送。發(fā)送時建立發(fā)送端與接收端之間的RTP會話,設(shè)置好端口,之后根據(jù)RTP協(xié)議,對數(shù)據(jù)進行分包傳輸[12]。

        3.4 視頻通信測試

        搭建測試環(huán)境,使用基于Windows系統(tǒng)以及Kubuntu/Linux系統(tǒng)的專業(yè)SIP服務(wù)器miniSipServer作為SIP服務(wù)器軟件,設(shè)置好分機號碼。在電腦端使用免費的軟電話X?Lite作為101賬號終端;在手機端使用102賬號。兩個終端在miniSipServer上注冊成功,如圖5所示。

        視頻通信移動終端使用ZTE U985手機,Android系統(tǒng)為4.0,CPU頻率為1 536 MHz,內(nèi)存1 GB。視頻連接成功后,壓縮分辨率為CIF(352×288),幀率為14.99 f/s。視頻表現(xiàn)清晰、流暢。截取的X?Lite端視頻畫面如圖6所示。其中大屏為從手機端傳送過來的畫面,小屏為X?Lite端采集的視頻。

        圖5 SIP注冊成功

        圖6 視頻通信效果

        4 結(jié) 語

        通過對SIP協(xié)議、H.264視頻編解碼、RTC/RTCP網(wǎng)絡(luò)傳輸?shù)纫曨l通信相關(guān)技術(shù)的分析研究,成功地在Android平臺上實現(xiàn)了視頻通信,測試結(jié)果表明效果良好。隨著Android移動終端軟硬件配置越來越高,會實現(xiàn)更高質(zhì)量的視頻通信。通過企業(yè)通信網(wǎng)絡(luò)并借助于Android移動終端,企業(yè)只需以十分小的成本就可以改善通信條件,實現(xiàn)更加靈活方便的辦公。因而,基于Android的實時視頻通信值得進一步深入研究,在操作界面、與其他功能融合等方面做出改進。

        參考文獻

        [1] QADEER M A, SHAH K, GOEL U. Voice?video communication on mobile phones and PCs′ using asterisk EPBX [C]// 2012 International Conference on Communication Systems and Network Technologies. Rajkot, India: IEEE, 2012: 534?538.

        [2] 鄭理.基于WLAN技術(shù)的無線局域網(wǎng)的應(yīng)用[J].信息通信,2013(5):249?250.

        [3] 尹文剛,楊斌.Android平臺下基于WiFi的可視化VoIP通話系統(tǒng)設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,2012(8):70?72.

        [4] The Internet Engineering Task Force. SIP: session initiation protocol [EB/OL]. [2013?08?27]. http://www.ietf.org/rfc/rfc3261.txt.

        [5] Google. Android 2.3 APIs [EB/OL]. [2013?08?27]. http://developer.android.com/intl/zh?cn/about/versions/android?2.3.html.

        [6] 楊光平.基于Android的移動流媒體實時傳輸系統(tǒng)設(shè)計與實現(xiàn)[D].西安:西安電子科技大學(xué),2012.

        [7] MASSANDY D T, MUNI I R. Secured video streaming development on smartphones with Android platform [C]// Proceedings of 2012 7th International Conference on Telecommunication Systems, Services, and Applications. Bali, Indonesia: IEEE, 2012: 339?344.

        [8] The Internet Engineering Task Force. RTP: a transport protocol for real?time applications [EB/OL]. [2013?08?27]. http://www.ietf.org/rfc/rfc3550.txt.

        [9] 賀丹丹,施展.基于Android的VoIP系統(tǒng)的設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2011,34(6):28?31.

        [10] 許建東,彭宏.Android平臺上H.264視頻前端模塊的研究[J].杭州電子科技大學(xué)學(xué)報,2012,32(5):93?95.

        [11] 張永芹,龔建榮.H_264視頻在Android手機端的解碼與播放[J].中國多媒體通信,2012(4):63?65.

        [12] 邵長彬,張重陽,鄭世寶.基于Android的可視IP電話多媒體終端設(shè)計與實現(xiàn)[J].電視技術(shù),2011,35(6):62?65.

        性感美女脱内裤无遮挡| 男人的天堂在线无码视频| 九月色婷婷免费| 三级网站亚洲三级一区| 天天躁日日躁狠狠躁av麻豆| 少妇高潮惨叫正在播放对白| 亚洲女同精品一区二区久久| 亚洲大片一区二区三区四区| av剧情演绎福利对白| 女人高潮被爽到呻吟在线观看| 狼人国产精品亚洲| 在线视频一区二区三区中文字幕| 国产av久久在线观看| 天天综合网在线观看视频| 国产在线手机视频| 大量老肥熟女老女人自拍| 极品粉嫩小仙女高潮喷水网站| 成人区人妻精品一区二区不卡网站| 老熟妇仑乱一区二区视頻| 国产白浆精品一区二区三区| 国产夫妻自拍视频在线播放| 香蕉人人超人人超碰超国产| 澳门毛片精品一区二区三区| 日韩女同一区二区三区久久| 亚洲国产精品成人天堂| 免费a级毛片无码无遮挡| 人妻精品一区二区三区视频| 天堂一区二区三区精品| 国产福利永久在线视频无毒不卡| 亚洲av无码国产精品麻豆天美 | 国产女奸网站在线观看| 亚洲精品国产成人久久av盗摄| 亚洲日韩在线中文字幕综合| 超薄肉色丝袜一区二区| 男女在线免费视频网站| 中文字幕一区二区中出后入| 特级av毛片免费观看| 国产成人亚洲合集青青草原精品| 久草中文在线这里只有精品| 人禽交 欧美 网站| 国产精品入口牛牛影视|