Chrome的webrtc‑internals工具显示终端应用程序的方法与流程

文档序号:11250774阅读:2151来源:国知局
Chrome的webrtc‑internals工具显示终端应用程序的方法与流程

本发明涉及一种通讯数据处理方法,具体的说,是涉及一种chrome的webrtc-internals工具显示终端应用程序的方法。



背景技术:

webrtc作为三方的开源库,拥有非常强大而完善的统计数据收集机制,开发者在基于webrtc开发即时通讯的应用时,通过webrtc现有的统计数据基于就能满足对发生问题的跟踪与定位。

chrome的webrtc-internals工具,主要是用来实时显示基于webrtc网页版的即时通讯运行时的统计数据,以方便跟踪和定位webrtc的问题,其主要的流程如下图1所示,(1)在chrome浏览器中,打开一个标签(标签1)运行网页版的即时通讯。这是webrtc统计数据的生产与收集的模块。(2)在chrome浏览器中,再打开一个标签(标签2)在网址栏中输入chrome://webrtc-internals/运行webrtc-internals工具。在标签2的网页中,将实时的显示标签1中的webrtc在进行即时通讯时的统计数据,这是webrtc统计数据显示的模块,webrtc-internals显示的数据,主要是与webrtc库中的模块进行进程间通信(ipc)获得。

webrtc作为开源的三方库,不仅可被网页版的javascript程序调用,也可以被终端应用程序集成调用。而chrome提供的webrtc-internals工具只能显示基于网页版的webrtc统计数据,无法显示终端应用程序集成的webrtc统计数据。



技术实现要素:

针对上述现有技术中的不足,本发明提供一种能够将终端应用程序集成的webrtc统计数据在webrtc-internals中实时显示的chrome的webrtc-internals工具显示终端应用程序的方法。

本发明所采取的技术方案是:

一种chrome的webrtc-internals工具显示终端应用程序的方法,包括即时通讯应用程序模块和chrome浏览器模块;即时通讯应用程序模块包括;webrtc库和统计数据模块,统计数据模块是设置有获取统计数据接口模块;chrome浏览器模块包括webrtc-internals模块和网页渲染显示模块,webrtc库中包括有与webrtc-internals模块进行通讯的数据交互模块。

所述数据交互模块包括:命名管道a和命名管道b;命名管道a与统计数据接口模块相通讯;命名管道b与webrtc-internals模块相通讯。

所述即时通讯应用程序模块调用webrtc库进行数据处理;webrtc中的统计数据模块会统计webrtc的统计数据;

线程处理模块完成各自工作后,都会更新相应的统计数据到统计信息暂存模块的对象中;

主线程模块则周期性更新统计信息代理模块对象,统计信息代理模块对象从统计信息暂存模块对象中拉取数据,保存在自己的统计信息成员变量中;

统计信息代理模块对象获取统计数据接口线程调用流程到达统计信息代理模块对象,获取统计数据而返;返回到命名管道a中,由管道a与管道b进行通讯,把统计数据传送至管道b;

webrtc-internals工具定时的调用命名管道b的接口请求webrtc的统计数据;命名管道b收到请求后,会与即时通讯应用程序中的命名管道a进行通讯,命名管道a会调用webrtc库中获取统计数据的接口以获取webrtc的统计数据,并返回到命名管道b中,最后传给chrome浏览器渲染显示。

所述即时通讯应用程序模块调用webrtc库进行数据处理的数据为进行音频或视频数据。

所述线程处理模块包括:网络模块、解码模块和渲染显示模块。

所述周期性更新统计信息代理模块对象的主线程模块为视频处理主线程模块。

所述周期性更新统计信息代理模块对象的主线程模块为音频处理主线程模块。

本发明相对现有技术的有益效果:

本发明chrome的webrtc-internals工具显示终端应用程序的方法,webrtc-internals工具不仅能显示基于网页版的webrtc统计数据,而且能显示终端应用程序集成的webrtc统计数据。

附图说明

图1是现有技术chrome的webrtc-internals工具实时显示基于webrtc网页版的即时通讯运行时的统计数据的流程图;

图2是本发明chrome的webrtc-internals工具实时显示基于webrtc网页版的即时通讯运行时的统计数据的流程图;

图3是本发明的视频数据的更新与获取流程图;

图4是本发明chrome的webrtc-internals工具显示终端应用程序的方法的ebrtc架构图;

图5是本发明chrome的webrtc-internals工具显示终端应用程序的方法的webrtc实现的网页间即时通讯的框架图。

具体实施方式

以下参照附图及实施例对本发明进行详细的说明:

附图1-5可知,一种chrome的webrtc-internals工具显示终端应用程序的方法,包括即时通讯应用程序模块和chrome浏览器模块;即时通讯应用程序模块包括;webrtc库和统计数据模块,统计数据模块是设置有获取统计数据接口模块;chrome浏览器模块包括webrtc-internals模块和网页渲染显示模块,webrtc库中包括有与webrtc-internals模块进行通讯的数据交互模块。

所述数据交互模块包括:命名管道a和命名管道b;命名管道a与统计数据接口模块相通讯;命名管道b与webrtc-internals模块相通讯。

把命名管道的通讯模块分别集成到webrtc自带的peerconnection_client测试程序和chrome的webrtc-internals工具,运行webrtc测试程序时,通过chrome打开webrtc-internals的测试工具,显示指定字符串的内容。

所述即时通讯应用程序模块调用webrtc库进行数据处理;webrtc中的统计数据模块会统计webrtc的统计数据;

下面以即时应用通讯应用程序在与远端进行视频通话时为例,说明webrtc收集视频相关信息的收集流程。

三个线程处理模块完成各自工作后,都会更新相应的统计数据到统计信息暂存模块的对象中;

主线程模块则周期性更新统计信息代理模块对象,统计信息代理模块对象从统计信息暂存模块对象中拉取数据,保存在自己的统计信息成员变量中;

统计信息代理模块对象获取统计数据接口线程调用流程到达统计信息代理模块对象,获取统计数据而返;返回到命名管道a中,由管道a与管道b进行通讯,把统计数据传送至管道b;

工作线程、更新线程和拉取线程共同协同工作完成统计数据的产生、更新和拉取。

chrome浏览器上输入chrome://webrtc-internals/;

webrtc-internals工具定时的调用命名管道b的接口请求webrtc的统计数据;命名管道b收到请求后,会与即时通讯应用程序中的命名管道a进行通讯,命名管道a会调用webrtc库中获取统计数据的接口以获取webrtc的统计数据,并返回到命名管道b中,最后传给chrome浏览器渲染显示。

所述即时通讯应用程序模块调用webrtc库进行数据处理的数据为进行音频或视频数据。

所述线程处理模块包括:网络模块、解码模块和渲染显示模块。

所述周期性更新统计信息代理模块对象的主线程模块为视频处理主线程模块。

所述周期性更新统计信息代理模块对象的主线程模块为音频处理主线程模块

本发明的技术方案,通过在webrtc库中新增与webrtc-internals工具的数据交互模块,使得终端应用程序集成的webrtc统计数据也能在webrtc-internals中实时显示。

webrtc,名称源自网页实时通信(webreal-timecommunication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的api。

(1)webrtc的目的

webrtc项目的最终目的主要是让web开发者能够基于浏览器(chrome、firefox等)轻易快捷开发出丰富的实时多媒体应用,而无需下载安装任何插件,web开发者也无需关注多媒体的数字信号处理过程,只需编写简单的javascript程序即可实现。

(2)webrtc架构图

如图4架构图说明:

a.网络接口:是网页开发者的接口层

b.webrtcc++接口:是面向浏览器厂商的接口层

c.音频捕获/播放、视频捕获、网络输入/输出:是各浏览器厂商可以自己定义的接口

(3)webrtc架构组件包括:

a.网页应用

网页开发者开发的程序,网页开发者可以基于集成webrtc的浏览器提供的网页接口开发基于视频、音频的实时通信应用。

b.网络接口

面向第三方开发者的webrtc标准api(javascript),使开发者能够容易地开发出类似于网络视频聊天的web应用。

c.webrtcc++接口

本地c++接口层,使浏览器厂商容易实现webrtc标准的网络接口,抽象地对数字信号过程进行处理。

(d)transport/session(传输/会话层)

会话层组件采用了libjingle库的部分组件实现,无须使用xmpp/jingle协议。

●rtpstack协议栈

realtimeprotocol

●p2pstun/turn/ice

p2p即端到端,可以通过stun(simpletraversalofudpthroughnats,即简单的用udp穿透nat),turn(traversalusingrelaysaroundnat,即使用中继穿透nat)和ice(interactiveconnectivityestablishment,即交互式连通建立方式)组件来建立不同类型网络间的呼叫连接。

●会话管理(sessionmanagement)

一个抽象的会话层,提供会话建立和管理功能。该层协议留给应用开发者自定义实现。

(5)音频引擎(voiceengine)

音频引擎是包含一系列音频多媒体处理的框架,包括从视频采集卡到网络传输端等整个解决方案。

ps:voiceengine是webrtc极具价值的技术之一,是google收购gips公司后开源的。在voip上,技术业界领先,后面的文章会详细了解。

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.(音频网络均衡)neteqforvoice

针对音频软件实现的语音信号处理元件

neteq算法:自适应抖动控制算法以及语音包丢失隐藏算法。使其能够快速且高解析度地适应不断变化的网络环境,确保音质优美且缓冲延迟最小。

ps:neteq也是webrtc中一个极具价值的技术,对于提高voip质量有明显效果,加以aec\nr\agc等模块集成使用,效果更好。

d.acousticechocanceler(aec)

回声消除器是一个基于软件的信号处理元件,能实时的去除mic采集到的回声。

e.noisereduction(nr)

噪声抑制也是一个基于软件的信号处理元件,用于消除与相关voip的某些类型的背景噪声(嘶嘶声,风扇噪音等等...)。

(6)视频引擎(videoengine)

webrtc视频处理引擎

videoengine是包含一系列视频处理的整体框架,从摄像头采集视频到视频信息网络传输再到视频显示整个完整过程的解决方案。

a.vp8

视频图像编解码器,是webrtc视频引擎的默认的编解码器。

vp8适合实时通信应用场景,因为它主要是针对低延时而设计的编解码器。

ps:vpx编解码器是google收购on2公司后开源的,vpx现在是webm项目的一部分,而webm项目是google致力于推动的html5标准之一

b.视频抖动(videojitterbuffer)

视频抖动缓冲器,可以降低由于视频抖动和视频信息包丢失带来的不良影响。

c.图像增强(imageenhancements)

图像质量增强模块

对网络摄像头采集到的图像进行处理,包括明暗度检测、颜色增强、降噪处理等功能,用来提升视频质量。

(7)webrtc的运行时信息

a.发送端采集统计:对应于媒体数据的产生,包括帧率,帧大小,媒体数据源的时钟频率,编解码器名称,等等。

b.发送端rtp统计:对应于媒体数据的发送,包括发送数据包数,发送字节数,往返时间rtt,等等。

c.接收端rtp统计:对应于媒体数据的接收,包括接收数据包数,接收字节数,丢弃数据包数,丢失数据包数,网络抖动jitter,等等。

d.接收端渲染统计:对应于媒体数据的渲染,包括丢弃帧数,丢失帧数,渲染帧数,渲染延迟,等等。

另外还有一些杂项统计,如datachannel度量,网络接口度量,证书统计等等。在众多信息中,有一些反映webrtc运行状态的核心度量,包括往返时间rtt,丢包率和接收端延迟等,分别表述如下:

往返时间rtt:表示数据在网络上传输所用的时间,一般通过rtcp的sr/rr数据包中的相关域进行计算。该度量直接反映网络状况的好坏。

丢包率影响接收端音视频质量,在严重的情况下可能导致声音跳变或者视频马赛克,从侧面反映网络状况的好坏。

音视频数据到达接收端之后,要经历收包、解码、渲染等过程,该过程会带来延迟。接收端延迟是数据从采集到渲染单向延迟的重要组成部分。

通过以上分析可知,webrtc返回信息包含数据管线的各个阶段的统计信息,从数据采集、编码到发送,再到数据接收、解码和渲染。这为监控webrtc应用的运行状态提供第一手数据。

(8)通过webrtc实现的网页间即时通讯的框架图。

开始视频通话前发起端和接收端需要一些交互,如通知对方开始视频,接收视频,视频参数协商(sdp信息),nat地址交换,这个过程我们称之为信令交互,webrtc没有定义标准信令格式,既可以使用sip(sessioninitiationprotocol)也可以使用xmpp(extensiblemessagingpresenceprotocol),还可以使用自定义的信令格式,最简单的方式就是使用websocket或xmlhttprequest,自定义格式完成信令交互过程。

以上所述,仅是本发明的较佳实施例而已,并非对本发明的结构作任何形式上的限制。凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均属于本发明的技术方案范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1