本發(fā)明涉及一種通訊數(shù)據(jù)處理方法,具體的說,是涉及一種chrome的webrtc-internals工具顯示終端應用程序的方法。
背景技術:
webrtc作為三方的開源庫,擁有非常強大而完善的統(tǒng)計數(shù)據(jù)收集機制,開發(fā)者在基于webrtc開發(fā)即時通訊的應用時,通過webrtc現(xiàn)有的統(tǒng)計數(shù)據(jù)基于就能滿足對發(fā)生問題的跟蹤與定位。
chrome的webrtc-internals工具,主要是用來實時顯示基于webrtc網(wǎng)頁版的即時通訊運行時的統(tǒng)計數(shù)據(jù),以方便跟蹤和定位webrtc的問題,其主要的流程如下圖1所示,(1)在chrome瀏覽器中,打開一個標簽(標簽1)運行網(wǎng)頁版的即時通訊。這是webrtc統(tǒng)計數(shù)據(jù)的生產(chǎn)與收集的模塊。(2)在chrome瀏覽器中,再打開一個標簽(標簽2)在網(wǎng)址欄中輸入chrome://webrtc-internals/運行webrtc-internals工具。在標簽2的網(wǎng)頁中,將實時的顯示標簽1中的webrtc在進行即時通訊時的統(tǒng)計數(shù)據(jù),這是webrtc統(tǒng)計數(shù)據(jù)顯示的模塊,webrtc-internals顯示的數(shù)據(jù),主要是與webrtc庫中的模塊進行進程間通信(ipc)獲得。
webrtc作為開源的三方庫,不僅可被網(wǎng)頁版的javascript程序調用,也可以被終端應用程序集成調用。而chrome提供的webrtc-internals工具只能顯示基于網(wǎng)頁版的webrtc統(tǒng)計數(shù)據(jù),無法顯示終端應用程序集成的webrtc統(tǒng)計數(shù)據(jù)。
技術實現(xiàn)要素:
針對上述現(xiàn)有技術中的不足,本發(fā)明提供一種能夠將終端應用程序集成的webrtc統(tǒng)計數(shù)據(jù)在webrtc-internals中實時顯示的chrome的webrtc-internals工具顯示終端應用程序的方法。
本發(fā)明所采取的技術方案是:
一種chrome的webrtc-internals工具顯示終端應用程序的方法,包括即時通訊應用程序模塊和chrome瀏覽器模塊;即時通訊應用程序模塊包括;webrtc庫和統(tǒng)計數(shù)據(jù)模塊,統(tǒng)計數(shù)據(jù)模塊是設置有獲取統(tǒng)計數(shù)據(jù)接口模塊;chrome瀏覽器模塊包括webrtc-internals模塊和網(wǎng)頁渲染顯示模塊,webrtc庫中包括有與webrtc-internals模塊進行通訊的數(shù)據(jù)交互模塊。
所述數(shù)據(jù)交互模塊包括:命名管道a和命名管道b;命名管道a與統(tǒng)計數(shù)據(jù)接口模塊相通訊;命名管道b與webrtc-internals模塊相通訊。
所述即時通訊應用程序模塊調用webrtc庫進行數(shù)據(jù)處理;webrtc中的統(tǒng)計數(shù)據(jù)模塊會統(tǒng)計webrtc的統(tǒng)計數(shù)據(jù);
線程處理模塊完成各自工作后,都會更新相應的統(tǒng)計數(shù)據(jù)到統(tǒng)計信息暫存模塊的對象中;
主線程模塊則周期性更新統(tǒng)計信息代理模塊對象,統(tǒng)計信息代理模塊對象從統(tǒng)計信息暫存模塊對象中拉取數(shù)據(jù),保存在自己的統(tǒng)計信息成員變量中;
統(tǒng)計信息代理模塊對象獲取統(tǒng)計數(shù)據(jù)接口線程調用流程到達統(tǒng)計信息代理模塊對象,獲取統(tǒng)計數(shù)據(jù)而返;返回到命名管道a中,由管道a與管道b進行通訊,把統(tǒng)計數(shù)據(jù)傳送至管道b;
webrtc-internals工具定時的調用命名管道b的接口請求webrtc的統(tǒng)計數(shù)據(jù);命名管道b收到請求后,會與即時通訊應用程序中的命名管道a進行通訊,命名管道a會調用webrtc庫中獲取統(tǒng)計數(shù)據(jù)的接口以獲取webrtc的統(tǒng)計數(shù)據(jù),并返回到命名管道b中,最后傳給chrome瀏覽器渲染顯示。
所述即時通訊應用程序模塊調用webrtc庫進行數(shù)據(jù)處理的數(shù)據(jù)為進行音頻或視頻數(shù)據(jù)。
所述線程處理模塊包括:網(wǎng)絡模塊、解碼模塊和渲染顯示模塊。
所述周期性更新統(tǒng)計信息代理模塊對象的主線程模塊為視頻處理主線程模塊。
所述周期性更新統(tǒng)計信息代理模塊對象的主線程模塊為音頻處理主線程模塊。
本發(fā)明相對現(xiàn)有技術的有益效果:
本發(fā)明chrome的webrtc-internals工具顯示終端應用程序的方法,webrtc-internals工具不僅能顯示基于網(wǎng)頁版的webrtc統(tǒng)計數(shù)據(jù),而且能顯示終端應用程序集成的webrtc統(tǒng)計數(shù)據(jù)。
附圖說明
圖1是現(xiàn)有技術chrome的webrtc-internals工具實時顯示基于webrtc網(wǎng)頁版的即時通訊運行時的統(tǒng)計數(shù)據(jù)的流程圖;
圖2是本發(fā)明chrome的webrtc-internals工具實時顯示基于webrtc網(wǎng)頁版的即時通訊運行時的統(tǒng)計數(shù)據(jù)的流程圖;
圖3是本發(fā)明的視頻數(shù)據(jù)的更新與獲取流程圖;
圖4是本發(fā)明chrome的webrtc-internals工具顯示終端應用程序的方法的ebrtc架構圖;
圖5是本發(fā)明chrome的webrtc-internals工具顯示終端應用程序的方法的webrtc實現(xiàn)的網(wǎng)頁間即時通訊的框架圖。
具體實施方式
以下參照附圖及實施例對本發(fā)明進行詳細的說明:
附圖1-5可知,一種chrome的webrtc-internals工具顯示終端應用程序的方法,包括即時通訊應用程序模塊和chrome瀏覽器模塊;即時通訊應用程序模塊包括;webrtc庫和統(tǒng)計數(shù)據(jù)模塊,統(tǒng)計數(shù)據(jù)模塊是設置有獲取統(tǒng)計數(shù)據(jù)接口模塊;chrome瀏覽器模塊包括webrtc-internals模塊和網(wǎng)頁渲染顯示模塊,webrtc庫中包括有與webrtc-internals模塊進行通訊的數(shù)據(jù)交互模塊。
所述數(shù)據(jù)交互模塊包括:命名管道a和命名管道b;命名管道a與統(tǒng)計數(shù)據(jù)接口模塊相通訊;命名管道b與webrtc-internals模塊相通訊。
把命名管道的通訊模塊分別集成到webrtc自帶的peerconnection_client測試程序和chrome的webrtc-internals工具,運行webrtc測試程序時,通過chrome打開webrtc-internals的測試工具,顯示指定字符串的內容。
所述即時通訊應用程序模塊調用webrtc庫進行數(shù)據(jù)處理;webrtc中的統(tǒng)計數(shù)據(jù)模塊會統(tǒng)計webrtc的統(tǒng)計數(shù)據(jù);
下面以即時應用通訊應用程序在與遠端進行視頻通話時為例,說明webrtc收集視頻相關信息的收集流程。
三個線程處理模塊完成各自工作后,都會更新相應的統(tǒng)計數(shù)據(jù)到統(tǒng)計信息暫存模塊的對象中;
主線程模塊則周期性更新統(tǒng)計信息代理模塊對象,統(tǒng)計信息代理模塊對象從統(tǒng)計信息暫存模塊對象中拉取數(shù)據(jù),保存在自己的統(tǒng)計信息成員變量中;
統(tǒng)計信息代理模塊對象獲取統(tǒng)計數(shù)據(jù)接口線程調用流程到達統(tǒng)計信息代理模塊對象,獲取統(tǒng)計數(shù)據(jù)而返;返回到命名管道a中,由管道a與管道b進行通訊,把統(tǒng)計數(shù)據(jù)傳送至管道b;
工作線程、更新線程和拉取線程共同協(xié)同工作完成統(tǒng)計數(shù)據(jù)的產(chǎn)生、更新和拉取。
chrome瀏覽器上輸入chrome://webrtc-internals/;
webrtc-internals工具定時的調用命名管道b的接口請求webrtc的統(tǒng)計數(shù)據(jù);命名管道b收到請求后,會與即時通訊應用程序中的命名管道a進行通訊,命名管道a會調用webrtc庫中獲取統(tǒng)計數(shù)據(jù)的接口以獲取webrtc的統(tǒng)計數(shù)據(jù),并返回到命名管道b中,最后傳給chrome瀏覽器渲染顯示。
所述即時通訊應用程序模塊調用webrtc庫進行數(shù)據(jù)處理的數(shù)據(jù)為進行音頻或視頻數(shù)據(jù)。
所述線程處理模塊包括:網(wǎng)絡模塊、解碼模塊和渲染顯示模塊。
所述周期性更新統(tǒng)計信息代理模塊對象的主線程模塊為視頻處理主線程模塊。
所述周期性更新統(tǒng)計信息代理模塊對象的主線程模塊為音頻處理主線程模塊
本發(fā)明的技術方案,通過在webrtc庫中新增與webrtc-internals工具的數(shù)據(jù)交互模塊,使得終端應用程序集成的webrtc統(tǒng)計數(shù)據(jù)也能在webrtc-internals中實時顯示。
webrtc,名稱源自網(wǎng)頁實時通信(webreal-timecommunication)的縮寫,是一個支持網(wǎng)頁瀏覽器進行實時語音對話或視頻對話的api。
(1)webrtc的目的
webrtc項目的最終目的主要是讓web開發(fā)者能夠基于瀏覽器(chrome、firefox等)輕易快捷開發(fā)出豐富的實時多媒體應用,而無需下載安裝任何插件,web開發(fā)者也無需關注多媒體的數(shù)字信號處理過程,只需編寫簡單的javascript程序即可實現(xiàn)。
(2)webrtc架構圖
如圖4架構圖說明:
a.網(wǎng)絡接口:是網(wǎng)頁開發(fā)者的接口層
b.webrtcc++接口:是面向瀏覽器廠商的接口層
c.音頻捕獲/播放、視頻捕獲、網(wǎng)絡輸入/輸出:是各瀏覽器廠商可以自己定義的接口
(3)webrtc架構組件包括:
a.網(wǎng)頁應用
網(wǎng)頁開發(fā)者開發(fā)的程序,網(wǎng)頁開發(fā)者可以基于集成webrtc的瀏覽器提供的網(wǎng)頁接口開發(fā)基于視頻、音頻的實時通信應用。
b.網(wǎng)絡接口
面向第三方開發(fā)者的webrtc標準api(javascript),使開發(fā)者能夠容易地開發(fā)出類似于網(wǎng)絡視頻聊天的web應用。
c.webrtcc++接口
本地c++接口層,使瀏覽器廠商容易實現(xiàn)webrtc標準的網(wǎng)絡接口,抽象地對數(shù)字信號過程進行處理。
(d)transport/session(傳輸/會話層)
會話層組件采用了libjingle庫的部分組件實現(xiàn),無須使用xmpp/jingle協(xié)議。
●rtpstack協(xié)議棧
realtimeprotocol
●p2pstun/turn/ice
p2p即端到端,可以通過stun(simpletraversalofudpthroughnats,即簡單的用udp穿透nat),turn(traversalusingrelaysaroundnat,即使用中繼穿透nat)和ice(interactiveconnectivityestablishment,即交互式連通建立方式)組件來建立不同類型網(wǎng)絡間的呼叫連接。
●會話管理(sessionmanagement)
一個抽象的會話層,提供會話建立和管理功能。該層協(xié)議留給應用開發(fā)者自定義實現(xiàn)。
(5)音頻引擎(voiceengine)
音頻引擎是包含一系列音頻多媒體處理的框架,包括從視頻采集卡到網(wǎng)絡傳輸端等整個解決方案。
ps:voiceengine是webrtc極具價值的技術之一,是google收購gips公司后開源的。在voip上,技術業(yè)界領先,后面的文章會詳細了解。
a.isac
internetspeechaudiocodec
針對voip和音頻流的寬帶和超寬帶音頻編解碼器,是webrtc音頻引擎的默認的編解碼器
采樣頻率:16khz,24khz,32khz;(默認為16khz)
自適應速率為10kbit/s~52kbit/;
自適應包大小:30~60ms;
算法延時:frame+3ms
b.ilbc
internetlowbitratecodec
voip音頻流的窄帶語音編解碼器
采樣頻率:8khz;
20ms幀比特率為15.2kbps
30ms幀比特率為13.33kbps
標準由ietfrfc3951和rfc3952定義
c.(音頻網(wǎng)絡均衡)neteqforvoice
針對音頻軟件實現(xiàn)的語音信號處理元件
neteq算法:自適應抖動控制算法以及語音包丟失隱藏算法。使其能夠快速且高解析度地適應不斷變化的網(wǎng)絡環(huán)境,確保音質優(yōu)美且緩沖延遲最小。
ps:neteq也是webrtc中一個極具價值的技術,對于提高voip質量有明顯效果,加以aec\nr\agc等模塊集成使用,效果更好。
d.acousticechocanceler(aec)
回聲消除器是一個基于軟件的信號處理元件,能實時的去除mic采集到的回聲。
e.noisereduction(nr)
噪聲抑制也是一個基于軟件的信號處理元件,用于消除與相關voip的某些類型的背景噪聲(嘶嘶聲,風扇噪音等等...)。
(6)視頻引擎(videoengine)
webrtc視頻處理引擎
videoengine是包含一系列視頻處理的整體框架,從攝像頭采集視頻到視頻信息網(wǎng)絡傳輸再到視頻顯示整個完整過程的解決方案。
a.vp8
視頻圖像編解碼器,是webrtc視頻引擎的默認的編解碼器。
vp8適合實時通信應用場景,因為它主要是針對低延時而設計的編解碼器。
ps:vpx編解碼器是google收購on2公司后開源的,vpx現(xiàn)在是webm項目的一部分,而webm項目是google致力于推動的html5標準之一
b.視頻抖動(videojitterbuffer)
視頻抖動緩沖器,可以降低由于視頻抖動和視頻信息包丟失帶來的不良影響。
c.圖像增強(imageenhancements)
圖像質量增強模塊
對網(wǎng)絡攝像頭采集到的圖像進行處理,包括明暗度檢測、顏色增強、降噪處理等功能,用來提升視頻質量。
(7)webrtc的運行時信息
a.發(fā)送端采集統(tǒng)計:對應于媒體數(shù)據(jù)的產(chǎn)生,包括幀率,幀大小,媒體數(shù)據(jù)源的時鐘頻率,編解碼器名稱,等等。
b.發(fā)送端rtp統(tǒng)計:對應于媒體數(shù)據(jù)的發(fā)送,包括發(fā)送數(shù)據(jù)包數(shù),發(fā)送字節(jié)數(shù),往返時間rtt,等等。
c.接收端rtp統(tǒng)計:對應于媒體數(shù)據(jù)的接收,包括接收數(shù)據(jù)包數(shù),接收字節(jié)數(shù),丟棄數(shù)據(jù)包數(shù),丟失數(shù)據(jù)包數(shù),網(wǎng)絡抖動jitter,等等。
d.接收端渲染統(tǒng)計:對應于媒體數(shù)據(jù)的渲染,包括丟棄幀數(shù),丟失幀數(shù),渲染幀數(shù),渲染延遲,等等。
另外還有一些雜項統(tǒng)計,如datachannel度量,網(wǎng)絡接口度量,證書統(tǒng)計等等。在眾多信息中,有一些反映webrtc運行狀態(tài)的核心度量,包括往返時間rtt,丟包率和接收端延遲等,分別表述如下:
往返時間rtt:表示數(shù)據(jù)在網(wǎng)絡上傳輸所用的時間,一般通過rtcp的sr/rr數(shù)據(jù)包中的相關域進行計算。該度量直接反映網(wǎng)絡狀況的好壞。
丟包率影響接收端音視頻質量,在嚴重的情況下可能導致聲音跳變或者視頻馬賽克,從側面反映網(wǎng)絡狀況的好壞。
音視頻數(shù)據(jù)到達接收端之后,要經(jīng)歷收包、解碼、渲染等過程,該過程會帶來延遲。接收端延遲是數(shù)據(jù)從采集到渲染單向延遲的重要組成部分。
通過以上分析可知,webrtc返回信息包含數(shù)據(jù)管線的各個階段的統(tǒng)計信息,從數(shù)據(jù)采集、編碼到發(fā)送,再到數(shù)據(jù)接收、解碼和渲染。這為監(jiān)控webrtc應用的運行狀態(tài)提供第一手數(shù)據(jù)。
(8)通過webrtc實現(xiàn)的網(wǎng)頁間即時通訊的框架圖。
開始視頻通話前發(fā)起端和接收端需要一些交互,如通知對方開始視頻,接收視頻,視頻參數(shù)協(xié)商(sdp信息),nat地址交換,這個過程我們稱之為信令交互,webrtc沒有定義標準信令格式,既可以使用sip(sessioninitiationprotocol)也可以使用xmpp(extensiblemessagingpresenceprotocol),還可以使用自定義的信令格式,最簡單的方式就是使用websocket或xmlhttprequest,自定義格式完成信令交互過程。
以上所述,僅是本發(fā)明的較佳實施例而已,并非對本發(fā)明的結構作任何形式上的限制。凡是依據(jù)本發(fā)明的技術實質對以上實施例所作的任何簡單修改、等同變化與修飾,均屬于本發(fā)明的技術方案范圍內。