关键词: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日星期二