您的位置:首页 > 运维架构

第30篇研究OpenWebRTC初探(二)

2016-12-13 22:34 447 查看
关键词:OpenWebRTC特点, OpenWebRTC背景, IOS一对一bug处理,
php多维数组

一、OpenWebRTC特点

1.1灵活和模块化

OpenWebRTC的模块化架构使它便于修改和扩展。WebRTC标准仍在发展, OpenWebRTC的灵活性使它很快的适应WebRTC标准的变化和新特性。



1.2 基于Gstreamer

在其他大项目中,OpenWebRTC建立在被广泛使用和功能强大的GStreamer多媒体框架之上。



1.3 H.264 and VP8

OpenWebRTC支持H.264和VP8视频编码,OpenWebRTC兼容大多数视频通信服务。



1.4 跨平台

OpenWebRTC支持iOS、Android、Mac OS X和Linux内建。不支持Windows吗?不,可以随时开始,它不需要做太多的工作,就能运行。



1.5互操作性

在app上构建OpenWebRTC将具有互操作性,并支持主流的浏览器像Chrome 和Firefox。但OpenWebRTC并非支持WebRTC的所有标准,可以看下看到路线图(https://github.com/EricssonResearch/openwebrtc/issues)。



路线图如下:



1.6 开放的证书

宽松的BSD 2-clause允许你按照你自己的想法使用代码,并且有很少的限制。



二、OpenWebRTC的背景

OpenWebRTC建立的信念是:配合WebRTC标准超越了纯浏览器环境和原生app,它能实现相同的协议和API,将成为WebRTC生态系统的一个重要组成部分。在移动平台上尤其如此,原生app部署通常是优于纯web apps的。原生OpenWebRTC apps即能与其它的原生apps交互,又能与支持WebRTC的浏览器交互。

拥有独立的、可互操作的实现对任何标准的健康很重要,当然WebRTC也不例外。OpenWebRTC的雄心是紧跟WebRTC标准,继续发展。大量的API层因此用JS实现,使其更快速修改和扩展新功能(其中一个候选的是ORTC:https://www.w3.org/community/ortc/)。

OpenWebRTC的初始版本是在爱立信内部开发的基础上实现的。OpenWebRTC和Bowser都在2014年10月公开了源代码并且宣布是免费的。在公开发布之前,OpenWebRTC被用来建立这样的几个研究原型,像语音通话等。

三、php多维数组

3.1 二维数组

一个数组中的值可以是另一个数组,另一个数组的值也可以是一个数组。依照这种方式,我们可以创建二维或者三维数组,看个例子:



3.2多维数组

多维数组是包含一个或多个数组的数组。在多维数组中,主数组中的每一个元素也可以是一个数组,子数组中的每一个元素也可以是一个数组。看个多维数组的例子:



四、IOS一对一bug处理

 4.1 今天和同事测试

苹果手机建个房间,Chrome能进去,但反之不成立。

1)     PC(chrome)开房间VS手机(iphone 5S)进,报错如下:



详细bug信息:----------- RTCMultiConnection.min.js:1259

{}

 answer v=0

o=- 14816327991292186001 IN IP4 127.0.0.1

s=-

t=0 0

a=msid-semantic:WMSUN2eJzVghiTY7CaCnz6t18WZvlPBAWi2j5JJ

m=audio 9UDP/TLS/RTP/SAVPF 111 0 8

c=IN IP4 0.0.0.0

a=rtcp-mux

a=sendrecv

a=rtpmap:111opus/48000/2

a=rtpmap:0 PCMU/8000

a=rtpmap:8 PCMA/8000

a=fmtp:111minptime=10;useinbandfec=1; stereo=1; sprop-stereo=1;maxaveragebitrate=1048576; maxplaybackrate=1048576; stereo=1; sprop-stereo=1;maxaveragebitrate=1048576; maxplaybackrate=1048576

a=maxptime:3

a=maxptime:3

a=ssrc:615683320cname:A1PYzkc/65D5Fqhe

a=msid:UN2eJzVghiTY7CaCnz6t18WZvlPBAWi2j5JJvGtic1qmKKgiWu+9KCVK8cFBKIE09wOVEs70

a=ice-ufrag:C2VF

a=ice-pwd:pVO/3pQ7DL3P/3Uq6UQIUI

a=fingerprint:sha-25681:A2:D4:56:FA:93:2C:E4:30:16:BF:4A:9B:97:5E:65:57:1B:77:14:99:1A:DA:75:C9:24:33:F5:E0:FC:74:46

a=setup:active

m=video 9UDP/TLS/RTP/SAVPF 100 107 96 97 99 98

c=IN IP4 0.0.0.0

a=rtcp-mux

a=sendrecv

a=rtpmap:100 VP8/90000

a=rtpmap:107 H264/90000

a=rtpmap:96 rtx/90000

a=rtpmap:97 rtx/90000

a=rtpmap:99 rtx/90000

a=rtpmap:98 rtx/90000

a=fmtp:100x-google-min-bitrate=4194304

a=fmtp:107level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f

a=fmtp:96 apt=100

a=fmtp:100x-google-min-bitrate=4194304; x-google-max-bitrate=4194304

a=fmtp:100x-google-min-bitrate=4194304; x-google-max-bitrate=4194304

a=fmtp:97 apt=101

a=fmtp:99 apt=107

a=fmtp:98 apt=116

a=rtcp-fb:100 nack

a=rtcp-fb:107 nack

a=rtcp-fb:100 nack pli

a=rtcp-fb:107 nack pli

a=rtcp-fb:100 ccm fir

a=rtcp-fb:107 ccm fir

a=ssrc:3775517400cname:A1PYzkc/65D5Fqhe

a=msid:UN2eJzVghiTY7CaCnz6t18WZvlPBAWi2j5JJtSZuY5Vaac7oq9yycWXkf6hG/DTUAIQirloM

a=ice-ufrag:Keef

a=ice-pwd:bJXRTp/CvzZlr7eRUWeI8l

a=fingerprint:sha-25681:A2:D4:56:FA:93:2C:E4:30:16:BF:4A:9B:97:5E:65:57:1B:77:14:99:1A:DA:75:C9:24:33:F5:E0:FC:74:46

a=setup:active

m=application 9DTLS/SCTP 5000

c=IN IP4 0.0.0.0

a=recvonly

a=ice-ufrag:GmZz

a=ice-pwd:RjHeEH0so977ffe95wZHv9

a=fingerprint:sha-25681:A2:D4:56:FA:93:2C:E4:30:16:BF:4A:9B:97:5E:65:57:1B:77:14:99:1A:DA:75:C9:24:33:F5:E0:FC:74:46

a=setup:active

a=sctpmap:5000webrtc-datachannel 1024

2)     手机(iphone 5S)开房间VS PC(chrome)进房间,结果如下:





注:就是说苹果手机开房间,电脑能连上,反之则报错。

2016年12月13日星期二
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息