本文主要介绍在线教育这个行业,文章最早发表在我们的微信公众号上,支持原创,详见这里

欢迎关注微信公众号blackerteam,更多详见www.rtc.help

先简单介绍什么是p2p?

p是peer的缩写,p2p就是点对点,两个客户端直接进行数据交互,不需要经过服务器转发(relay),这种方式能大大减轻服务端的负载,所以特别视适合大数据的传输,比如视频流,大文件。

之前很多朋友在问p2p成功率大概是多少?

其实这个问题不太好回答但又好回答:不太好回答是因为不同区域网络状况不一样所以很难有统一的答案;好回答是因为如果遵循ICE协议,基本上能打洞成功的网络他都能p2p,不能打洞成功的网络基本上都是跟路由器类型有关,与技术无关。

根据google官方文档,92%的情况下都可以p2p,看到这里很多朋友很高兴,心理有底了,在国内70~80%的成功率是可以期待的,以前做的文件传输也可以用p2p了,其实微软的win10升级也是这么搞的,p2p优先,节省宝贵的服务端资源嘛。

知道了p2p成功率,我们再来看1对1的视频通话,如果支持p2p那理论上一台普通的阿里云服务器其实就可以支持比较高的并发了,因为大部分的视频流都不需要经过服务器relay,但这时候有人可能会问:“和relay相比,p2p效果怎样?”

这个问题其实也不好回答,因为某些极端情况下p2p有可能不如服务器relay,但我们可以参考qq和whatsapp的做法。

根据我们之前的测试,qq现在1对1视频通话打洞逻辑和成功率基本上跟webrtc一样(当时模拟了各种网络状况,联通、电信、移动、全锥、对称等等),p2p优先,失败时才启用relay。whatsapp其实也差不多,只不过为了加快连接的建立,他采用relay优先,p2p建立后就会切换过来,对这部分感兴趣的朋友可以去查看我们博客上的相关文章。

所以了解了p2p,qq,whatsapp的这些逻辑之后,你下次跟朋友视频就不用担心qq后台录音录像的问题了,这些东西太占资源了,最起码他们现阶段不会去做,如果要这么做他们就不会使用p2p了。

看到这里一些朋友就会问,既然大部分视频通话可以p2p解决,那采用第三方厂商方案的时候直接按用户数计费是不是不合理?因为p2p下根本不需要占用服务端太多资源。

是的,没错,所以很多厂商的服务支持私有云部署,也就是我们自己提供服务器,他们负责部署,这样我们既不用担心数据安全性,又可以节省成本,还可以满足自身其他业务需求!

当然说到私有云部署就必然要涉及到分布式部署甚至是全球部署,至于是否需要分布式部署,怎么分布式部署我们下回分享。

喜欢相关文章请转发此文,或扫描下方二维码关注我们的微信公众号:blackerteam

Android IOS WebRTC 音视频开发总结(六九)-- qq视频通话都是p2p,我们还怕啥?的更多相关文章

  1. Android IOS WebRTC 音视频开发总结(九)-- webrtc入门001

    下面这篇介绍webrtc的文章不错,我花了大半天翻译了一下. 翻译的时候不是逐字逐句的,而是按照自己的理解翻译的,同时为了便于理解,也加入一些自己组织的语言. 本文主要介绍webrtc的信令,stun ...

  2. 转:Android IOS WebRTC 音视频开发总结 (系列文章集合)

    随笔分类 - webrtc   Android IOS WebRTC 音视频开发总结(七八)-- 为什么WebRTC端到端监控很关键? 摘要: 本文主要介绍WebRTC端到端监控(我们翻译和整理的,译 ...

  3. Android IOS WebRTC 音视频开发总结(六)-- iOS开发之含泪经验

    前段时间在搞webrtc iOS开发,所以将标题改为了Android IOS WebRTC 音视频开发总结, 下面都是开发过程中的经验总结,转载请说明出处(博客园RTC.Blacker): 1. IO ...

  4. Android IOS WebRTC 音视频开发总结(八十五)-- 使用WebRTC广播网络摄像头视频(下)

    本文主要介绍WebRTC (我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:bl ...

  5. Android IOS WebRTC 音视频开发总结(八十三)-- 使用WebRTC广播网络摄像头视频(上)

    本文主要介绍WebRTC (我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:bl ...

  6. Android IOS WebRTC 音视频开发总结(四六)-- 从另一个角度看国内首届WebRTC大会

    文章主要从开发者角度谈国内首届WebRTC大会,支持原创,文章来自博客园RTC.Blacker,支持原创,转载必须说明出处,更多详见www.rtc.help. -------------------- ...

  7. Android IOS WebRTC 音视频开发总结(八十一)-- WebRTC靠谱吗?有没有适合的SDK推荐?

    作者:blaker,最早发表在我们的微信公众和[编风网],详见[这里] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:blackerteam 或 webrtcorgcn) ...

  8. Android IOS WebRTC 音视频开发总结(二四)-- p2p调用堆栈

    本文主要分析webrtc音视频点对点部分的代码结构,文章来自博客园RTC.Blacker,转载请说明出处. 前段时间在查一个偶尔断线的问题(这种问题最蛋疼,不好重现,只能凭经验去搞),所以理了下web ...

  9. Android IOS WebRTC 音视频开发总结(二三)-- hurtc使用说明

    本文主要介绍如何测试基于浏览器和手机的视频通话程序,转载请说明出处,文章来自博客园RTC.Blacker,更多详见www.blackerteam.com   很多人想测试浏览器(包括浏览器版本和桌面e ...

  10. Android IOS WebRTC 音视频开发总结(六十)-- 您为什么招不到适合的音视频人才

    本文主要介绍音视频行业招聘现状,文章最早发表在我们的微信公众号上,详见这里,欢迎关注微信公众号blackerteam,更多详见www.blackerteam.com 有过音视频人才招聘经验的应该都深有 ...

随机推荐

  1. C++异常处理的问题

    一般在C语言中,是通过返回值或者设置errno的方式来标识错误的 但在C++里面,构造函数是没有返回值的,于是发明了异常的方式:为了正确的向使用者表明 异常抛出的原因,你必须弄清楚异常抛出的原因(比如 ...

  2. reverse-XNUCA-babyfuscator

    上一次线上赛的一道题目 链接:http://pan.baidu.com/s/1qY9ztKC 密码:xlr2 这是一道代码混淆的题目,因为当时还不知道angr这样一个软件,所以我就用了自己的一种思路 ...

  3. MVC 3.0 上传多张图片到服务器

    View关键代码: @using (Html.BeginForm("Create", "Activity", FormMethod.Post, new { en ...

  4. 浅谈SEO-提交(一)

    前段时间,花了点时间研究了下SEO,Search Engine Optimization,百度百科这样描述: 中文意译为“搜索引擎优化”.SEO是指通过对网站内部调整优化及站外优化,使网站满足搜索引擎 ...

  5. html table动态合并单元格 js方法

    <script> $(document).ready(function(){ function mc(tableId, startRow, endRow, col) { var tb = ...

  6. 2016年12-09php函数

    php函数 函数名,参数列表,函数体 php时弱类型语言返回类型可以没有function 函数名(){} 1.简单函数四要素:返回类型,函数名,参数列表,函数体 function Show(){ ec ...

  7. http_build_query()就是将一个数组转换成url 问号?后面的参数字符串,并且会自动进行urlencode处理,及它的逆向函数

    http_build_query()就是将一个数组转换成url 问号?后面的参数字符串,并且会自动进行urlencode处理 例如: $data = array( 'foo'=>'bar', ' ...

  8. VS 2013 打包程序教程

    简述 如果你只是想要在他人的机子上运行你的程序而不想安装,有一种简单的方法,只要使用本教程的“步骤—3.生成Release 文件夹”即可.但是有一点需要注意,如果你在程序中调用了其他的dll,那么你需 ...

  9. web安全之sql注入实例(5.0之前的)

    web安全之sql(5.0之前)注入实例 5.0之前的数据库没有information库. 所以这里需要运用的是load_file()函数来获取信息. 1.判断是否有sql注入,用and 1=1 和 ...

  10. SCRUM项目 6.0

    6.0----------------------------------------------------- sprint演示 1.坚持所有的sprint都结束于演示. 团队的成果得到认可,会感觉 ...