《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于WebRTC的Android移動端無線視頻傳輸
基于WebRTC的Android移動端無線視頻傳輸
胡 勛,周淵平
(四川大學 電子信息學院,四川 成都 610065)
摘要: 視頻傳輸技術在現代社會廣泛應用,人們對其的要求也越來越高,其發展的趨勢是方便、快捷、隨時隨地。傳統的視頻傳輸過于依賴線路,線路的走向限制了傳輸的很多可能,所以無線傳輸才是發展的方向。本文提出了一種基于WebRTC的Android移動端視頻傳輸技術,介紹了信令與WebRTC連接實現機制,以及穿透的具體過程。
關鍵詞: 信令 安卓 WebRTC
Abstract:
Key words :

  摘  要: 視頻傳輸技術在現代社會廣泛應用,人們對其的要求也越來越高,其發展的趨勢是方便、快捷、隨時隨地。傳統的視頻傳輸過于依賴線路,線路的走向限制了傳輸的很多可能,所以無線傳輸才是發展的方向。本文提出了一種基于WebRTC的Android移動端視頻傳輸技術,介紹了信令與WebRTC連接實現機制,以及穿透的具體過程。

  關鍵詞: 信令;安卓;WebRTC

0 引言

  本文提出了一種在移動端上(Android)的視頻傳輸技術,選取了兩臺Android設備作為測試設備,方便快捷,而且可攜帶性強。移動智能終端作為監控端也是一個最佳的應用平臺。隨著谷歌Android的飛速發展[1],越來越多的人選擇Android平臺來觀察視頻數據。

1 技術簡介

 ?。?)Android系統

  Android是基于Linux開放性內核的操作系統,也是一個開放的移動終端操作系統平臺,為移動設備提供了一個包含了操作系統及應用程序的軟件疊層架構。Android作為Google最具創新的產品之一[2],越來越多地被移動終端廠商使用和二次開發。Android具有很多特性,最大的特性是開放性,還有就是在其平臺上開發的應用程序權限由開發人員決定。

 ?。?)WebRTC

  WebRTC是Google于2011年6月3日開源的即時通訊項目[3]。它是一個支持網頁瀏覽器進行實時語音對話或視頻對話的技術,其出現可以幫助Web瀏覽器、個人電腦或手機實現實時多媒體通信功能。WebRTC提供了各種實現視頻會議的核心技術,包括音視頻的采集、編解碼、信號優化和處理以及網絡傳輸等。

2 系統設計及實現

  系統設計主要包含三個部分:音視頻模塊、信令服務和打洞服務。

  2.1 音視頻模塊

  VoiceEngine(WebRTC音頻引擎)是包含一系列音頻多媒體處理的框架,包括從視頻采集卡到網絡傳輸端等整個解決方案。ISAC(Internet Speech Audio Codec)是針對VoIP和音頻流的寬帶和超寬帶音頻編解碼器,是WebRTC音頻引擎的默認編解碼器。NetEQ for Voice是針對音頻的語音信號處理算法、自適應抖動控制算法以及語音包丟失隱藏算法。能夠快速且高解析度地適應不斷變化的網絡環境,確保音質優美且緩沖延遲最小,能夠有效地處理由于網絡抖動和語音包丟失對語音質量產生的影響。VideoEngine(WebRTC視頻處理引擎),是包含一系列視頻處理的整體框架,是從攝像頭采集視頻到視頻信息網絡傳輸再到視頻顯示整個完整過程的解決方案。VP8視頻圖像編解碼器是WebRTC視頻引擎的默認編解碼器,VP8適合實時通信應用場景,因為它主要是針對低延時而設計的編解碼器。Video Jitter Buffer(視頻抖動緩沖器),可以降低由于視頻抖動和視頻信息包丟失帶來的不良影響。對音視頻模塊VoiceEngine和VideoEngine進行編譯使用,首先要到Google上下載安卓NDK,然后還要安裝其他一些工具。以下對兩個庫文件簡單解釋,voe_audio_processingadds消噪(NS):自動增益控制和回聲控制;voe_rtp_rtcp:增加了RTCP發送器報告、RTP/RTCP統計、前向糾錯(FEC)和RTP實時捕捉。

  2.2 信令服務

  信令服務的作用是在通信雙方都不知道對方的IP以及端口的情況下建立連接。由服務器建立連接來實現。WebRTC實現了兩個API,分別是:MediaStream:通過MediaStream的API能夠通過設備的攝像頭及話筒獲得視頻、音頻的同步流;RTCPeerConnection:RTCPeerConnection是WebRTC用于構建點對點之間穩定、高效的流傳輸的組件。WebRTC使用RTCPeerConnection傳遞數據,但傳遞數據之前,需要一種機制來協調通信并發送控制信息,而這種機制就是信令機制。WebRTC并沒有制定任何信令的機制和協議,所以可以靈活選擇任何信令協議[4]。Openfire是一種開源的實時協作(RTC)服務器,本文設計用它作為信令服務器。

  信令交換的信息有:(1)用來控制通信開啟或者關閉的連接控制消息;(2)媒體流元數據,比如解碼器、解碼器的配置、帶寬、媒體類型等;(3)發生錯誤時彼此告知的消息;(4)外界所看到的網絡上的數據,如IP地址、端口等;(5)用來建立安全連接的關鍵數據。

  具體的連接建立方式由一種叫JSEP(JavaScript Session Establishment Protocol)的協議來規定,使用JSEP的原因在于在JSEP中需要交換的關鍵信息是多媒體會話描述(Multimedia Session Description)。JSEP將客戶端之間傳遞的信令分為兩種:offer信令和answer信令。它們主要內容的格式都遵循會話描述協議(Session Description Protocal,SDP)。通過offer和answer交換SDP描述符,流程如下:

 ?。?)A和B雙方建立一個RTCPeerConnection實例。

  (2)A通過createOffer()方法建立一個包含A的SDP描述符的offer信令。

 ?。?)A通過setLocalDescription()方法,將A的SDP描述符交給A的RTCPeerConnection實例。

  (4)A將offer信令通過服務器發送給B。

  (5)B將A的offer信令中所包含的SDP描述符提取出來,并通過setRemoteDescription()方法交給B的RTCPeerConnection實例。

  (6)B通過createAnswer()方法建立一個包含B的SDP描述符的answer信令。

  (7)B通過setLocalDescription()方法將B的SDP描述符交給B的RTCPeerConnection實例。

  (8)B將answer信令通過服務器發送給A。

 ?。?)A接收到B的answer信令后,將其中B的SDP描述符提取出來,調用setRemoteDescripttion()方法交給B的RTCPeerConnection實例。通過這一系列的信令交換之后,A和B所創建的RTCPeerConnection實例都包含了A和B的SDP描述符了。

  2.3 打洞服務

  打洞服務就是為了獲取連接兩端設備的網絡地址[5]。要實現P2P視頻傳輸,實際應用中不可能讓用戶自己去設置對方的IP和音視頻端口,而且即使設置了對方的IP和端口也不一定能運行,因為P2P視頻傳輸過程中,如果雙方不在同一個網段則還需穿透NAT。

  打洞原理:主要思路就是通過STUN服務器獲取自己的IP、Port及NAT信息,然后通過信令服務器交換這些信息,最后兩客戶端根據各自得到的IP、Port、NAT信息進行相應的穿透。STUN是一種網絡協議,可以讓處于NAT后的客戶端找出自己所處的公網IP地址,而且可以獲取自己的NAT類型,以及一些相關的端口信息,這些信息用來在兩個處于NAT之后的主機建立UDP通信。STUN由RFC 5389定義,是一個客戶機-服務器協議,由于每個peer可能處于不同的網絡中,所以每個peer都需要NAT穿越,確保雙方都可訪問對方的IP地址和端口以及STUN服務器。在RTCPeerConnection中,使用ICE框架來保證RTCPeerConnection能實現NAT穿越。ICE(Interactive Connectivity Establishment),交互式連接建立,是一種綜合性的NAT穿越技術,可以整合各種NAT穿越技術,如STUN、TURN(Traversal Using Relay NAT,中繼NAT實現的穿透)。ICE會先使用STUN,如果失敗,ICE就會使用一個中繼的TURN服務器。圖1為iceServers配置信息。

001.jpg

  在iceServers配置對象(RTCPeerConnection constructor)中設置STUN and/or TURN服務器地址信息,包括IP地址、端口號等。有了這些信息ICE會自動啟動。STUN服務架設在外網,它有一個簡單的任務:獲取一個發送請求的設備(運行在NAT后邊的應用)的IP和端口,然后返回這個地址。換句話說,應用使用STUN服務器發現它的外網IP和端口,這個過程確保了一個WebRTC端獲得它自己的公共地址,然后通過signaling機制發送這個信息給另一端,這樣就可以建立起一個直接連接。在實際應用中,不同的NATs有不同的工作方式,可能有多個NAT層,但是原理是一樣的,原理如下:

 ?。?)A通過公共IP與服務器建立連接。

 ?。?)A發送一個加入某房間的信令,并設置房間號,信令中需要包含該房間的編號。

 ?。?)若有新用戶B加入,B會向服務器發送一個請求信令(new_peer),信令中包含新加入的用戶B的信息以及房間號。

  (4)若房間號相同,則建立A和B的通信連接。

  系統框架如圖2所示。

002.jpg

  圖2中兩個peer分別指兩個終端用戶,NAT的用途是作為穿透使用,turnserver是由一個STUN服務器加上中繼功能構成,當建立一個基于UDP的連接失敗了,ICE就會使用一個中繼的TURN服務器也就是Relay server。

3 測試及結果

003.jpg

  在本次測試中,采用的兩臺Android手機分別是三星平板和魅族手機。如圖3所示兩臺Android平臺(一臺是安卓手機,一臺是安卓平板)正在進行視頻傳輸,從屏幕中既可以觀察遠端傳過來的情況又可以觀察自己要傳出去的視頻情況。

4 結論

  本文采用WebRTC音視頻技術,利用NAT穿透和信令服務的搭建,實現了移動終端的無線視頻傳輸。NAT穿透在實現跨網功能上起到了巨大的作用,對于安卓移動端具有良好的應用價值。

參考文獻

  [1] 李寧.Android開發權威指南[M].北京:人民郵電出版社,2011.

  [2] 丁鶴洋,李太君,徐瑛.3G無線視頻監控系統的設計與實現[J].通信技術,2012,45(2):68-70.

  [3] 鄒勇.基于XMPP和Webrtc的web實時通訊[D].南京:南京大學,2012.

  [4] 王璐.Web模式下基于XMPP的即時通信系統的設計與實現[D].北京:北京郵電大學,2010.

  [5] 楊佳勝.基于Android終端的視頻通話系統設計與實現[D].大連:大連理工大學,2011.


此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产综合视频| 欧美人牲a欧美精品| 国产欧美在线观看| 国产美女精品视频| 亚洲一区二区三区四区中文| 亚洲欧洲精品一区二区三区波多野1战4| 欧美在现视频| 国产精品a久久久久久| 国产精品久久久久久影院8一贰佰| 亚洲人久久久| 国产精品v日韩精品| 欧美视频在线播放| 日韩视频在线观看国产| 久久综合五月天婷婷伊人| 国产精品美女久久久浪潮软件| 性欧美18~19sex高清播放| 久久久久九九视频| 国产一区二区黄| 久久精品视频网| 在线日韩一区二区| 在线看片第一页欧美| 欧美激情一区| 久久久久看片| 国产日韩欧美制服另类| 精品二区视频| 亚洲欧美怡红院| 久久久精品国产99久久精品芒果| 国产精品久久久久9999高清| 亚洲小说区图片区| 久久全国免费视频| 亚洲片国产一区一级在线观看| 91久久久国产精品| 久久婷婷蜜乳一本欲蜜臀| 欧美中文字幕在线播放| 国产精品看片你懂得| 一本色道久久综合| 在线日韩日本国产亚洲| 亚洲欧美日本国产专区一区| 国模精品一区二区三区色天香| 麻豆精品在线观看| 亚洲日本中文字幕免费在线不卡| 欧美一级视频| 欧美久久婷婷综合色| 欧美日韩在线精品一区二区三区| 久久久久久网址| 国产免费观看久久| 国产精品午夜春色av| 午夜精品久久久久久久99热浪潮| 一区二区欧美视频| 影音先锋久久精品| 久久国产综合精品| 一区二区日韩| 久久久久天天天天| 亚洲第一天堂无码专区| 国产一区二区在线免费观看| 亚洲人体大胆视频| 亚洲人成人77777线观看| 欧美国内亚洲| 欧美精品手机在线| 99re这里只有精品6| 国产精品一区免费视频| 亚洲精品视频在线看| 性欧美xxxx大乳国产app| 久久久999成人| 最新高清无码专区| 久久精品成人| 国产精品影片在线观看| 樱桃国产成人精品视频| 欧美午夜在线一二页| 亚洲国产免费| 伊人影院久久| 欧美日韩美女在线| 欧美日韩国产在线观看| 国产精品一区二区三区成人| 激情小说亚洲一区| 久久九九久精品国产免费直播| 亚洲国产视频一区| 国产嫩草一区二区三区在线观看| 欧美日韩播放| 亚洲人成网站影音先锋播放| 一区二区高清视频在线观看| 这里只有精品视频| 欧美成人69av| 欧美在线一二三区| 亚洲区一区二区三区| 欧美激情中文字幕乱码免费| 国产一区二区在线免费观看| 久久青草欧美一区二区三区| 日韩视频在线观看免费| 在线观看91精品国产麻豆| 欧美午夜理伦三级在线观看| 亚洲欧美精品中文字幕在线| 一区二区久久久久久| 久久另类ts人妖一区二区| 欧美日韩国产成人在线观看| 99国产精品久久久久久久成人热| 亚洲精品视频一区| 欧美在线观看视频| 欧美日本一道本在线视频| 欧美ed2k| 久久婷婷人人澡人人喊人人爽| 欧美午夜免费电影| 国产偷自视频区视频一区二区| 一本一本久久a久久精品综合麻豆| 久久久777| 久久视频精品在线| 99视频精品在线| 久久xxxx精品视频| 夜夜狂射影院欧美极品| 国产亚洲精品aa| 国产精品爽爽ⅴa在线观看| 免费在线播放第一区高清av| 欧美色另类天堂2015| 久久人人爽爽爽人久久久| 久久精品国产一区二区三区| 在线视频欧美日韩| 久久亚洲综合| 国产精品推荐精品| 亚洲精品乱码久久久久久蜜桃91| 久久激五月天综合精品| 99天天综合性| 欧美国产一区二区| 国产亚洲欧美一区二区三区| 国产精品国产三级国产专播精品人| 欧美黄污视频| 国产精品爱啪在线线免费观看| 激情六月婷婷久久| 欧美激情bt| 免费欧美高清视频| 欧美激情女人20p| 亚洲高清久久久| 激情欧美亚洲| 亚洲欧美日韩一区| 最新日韩中文字幕| 性欧美1819sex性高清| 国产精品国产馆在线真实露脸| 欧美日本韩国一区二区三区| 国产精品无码专区在线观看| 欧美日韩黄色一区二区| 国产偷自视频区视频一区二区| 欧美理论片在线观看| 一区在线播放| 国产精品久久久久aaaa九色| 国产夜色精品一区二区av| 欧美日韩在线综合| 亚洲毛片在线| 亚洲欧美日韩中文在线制服| 国产一区二区精品在线观看| 好吊视频一区二区三区四区| 久久超碰97人人做人人爱| 亚洲电影第三页| 欧美精品入口| 久久婷婷成人综合色| 日韩视频不卡中文| 欧美尤物一区| 久久尤物视频| 亚洲婷婷在线| 亚洲精品乱码| 激情综合五月天| 欧美日韩免费| 国产精品腿扒开做爽爽爽挤奶网站| 国产午夜精品一区理论片飘花| 亚洲女同性videos| 欧美成人国产| 麻豆国产精品一区二区三区| 麻豆9191精品国产| 欧美在线视频一区二区三区| 欧美成年人视频| 久久夜色精品国产欧美乱| 国产精品久久国产愉拍| 99re视频这里只有精品| 亚洲电影在线看| 久久动漫亚洲| 国产美女一区| 欧美午夜一区二区福利视频| 一区二区三区精品在线| 久久精品夜色噜噜亚洲aⅴ| 在线国产精品播放| 午夜精品一区二区三区四区| 亚洲区一区二| 精品动漫3d一区二区三区免费| 国产精品一卡二| 老司机67194精品线观看| 久久久久国产一区二区三区四区| 国产精品一国产精品k频道56| 久久激情五月激情| 欧美日韩美女在线| 欧美精品www| 亚洲视频日本| 欧美日韩无遮挡| 性欧美在线看片a免费观看| 久久综合色88| 一区二区三区中文在线观看| 亚洲电影免费观看高清完整版在线观看| 国产精品久久久一区二区| 欧美阿v一级看视频| 久久久久9999亚洲精品| 99精品国产福利在线观看免费| 亚洲电影有码| 先锋a资源在线看亚洲| 亚洲欧洲精品一区二区| 欧美三日本三级三级在线播放| 国内视频一区| 国产精品ⅴa在线观看h| 久久婷婷麻豆| 开元免费观看欧美电视剧网站| 欧美大片在线看免费观看| 国产精品无人区| 欧美日韩国产在线播放网站| 日韩性生活视频| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美精品一区二区三区久久久竹菊| 欧美日韩精品久久久| 樱桃国产成人精品视频| 欧美成人一区二区三区片免费| 亚洲一区黄色| 国产欧美在线| 欧美区在线播放| 一区二区不卡在线视频 午夜欧美不卡'| 在线视频国产日韩| 亚洲制服欧美中文字幕中文字幕| 欧美体内谢she精2性欧美| 亚洲欧美日韩国产中文在线| 亚洲人成高清| 欧美激情乱人伦| 国内精品伊人久久久久av影院| 在线精品亚洲| 欧美午夜精品一区二区三区| 欧美日韩三级在线| 影音先锋另类| 久久久久久久尹人综合网亚洲| 亚洲高清网站| 国产亚洲欧美一区在线观看| 国产一区二区三区精品久久久| 亚洲第一精品夜夜躁人人爽| 久久精品一区四区| 一本一本久久a久久精品综合妖精| 国产日韩欧美在线| 亚洲国产欧美日韩| 久久精品视频99| 欧美日韩在线直播| 亚洲国产成人不卡| 红桃视频国产一区| 久久综合色婷婷| 亚洲第一免费播放区| 欧美.日韩.国产.一区.二区| 狠狠色香婷婷久久亚洲精品| 校园激情久久| 欧美国产一区二区三区激情无套| 亚洲欧美日韩高清| 久久躁狠狠躁夜夜爽| 一区二区三区日韩精品视频| 久久精品国产一区二区三区免费看| 一区二区三区在线看| 国产精品资源| 亚洲免费网站| 久久久久国产一区二区三区| 欧美精品一区在线观看| 免费成人高清| 亚洲影院免费观看| 免费精品视频| 韩国在线视频一区| 亚洲国产精品精华液2区45| 亚洲精品久久视频| 亚洲系列中文字幕| 国产婷婷色一区二区三区| 亚洲永久免费精品| 怡红院av一区二区三区| 国产农村妇女毛片精品久久麻豆| 欧美午夜精品久久久久久孕妇| 久久亚洲国产成人| 欧美日韩亚洲国产一区| 香蕉av777xxx色综合一区| 亚洲欧美在线aaa| 亚洲国产91| 在线天堂一区av电影| 亚洲电影免费在线观看| 久久久久久自在自线| 激情久久婷婷| 欧美成va人片在线观看| 麻豆成人在线| 欧美精品一区二区三区四区| 国模叶桐国产精品一区| 国产精品一区二区久激情瑜伽| 亚洲另类一区二区| 亚洲精品美女在线观看播放| 亚洲精品国精品久久99热一| 久久国内精品自在自线400部| 一本一本久久a久久精品牛牛影视| 欧美午夜性色大片在线观看| 亚洲人成毛片在线播放| 久久久久久国产精品一区| 欧美日韩国产高清| 国产精品视频1区| 99国产精品99久久久久久| 亚洲影院色在线观看免费| 国产精品高清免费在线观看| 欧美伊久线香蕉线新在线| 亚洲国产精品精华液网站| 欧美激情第三页| 欧美高清视频www夜色资源网| 狠狠色综合播放一区二区| 欧美图区在线视频| 亚洲精品中文字| 在线观看成人av| 国产精品久久久久久妇女6080| 国内精品福利| 国产精品免费区二区三区观看| 在线不卡欧美| 欧美午夜精品理论片a级按摩| 午夜在线成人av| 久久久www免费人成黑人精品| 国产乱理伦片在线观看夜一区| 欧美午夜不卡影院在线观看完整版免费| 一本久道久久综合狠狠爱| 国产精品外国| 99ri日韩精品视频| 国产美女扒开尿口久久久| 欧美一区在线视频| 在线亚洲一区| 在线观看国产日韩| 在线免费一区三区| 久久成人免费日本黄色| 久久精品国产清自在天天线| 久久久久久久国产| 国产中文一区| 欧美午夜在线| 欧美精品三级|