Android IOS WebRTC 音视频开发总结(三九)-- win10升级为何要p2p
本文主要介绍webrtc p2p的应用场景,文章来自博客园RTC.Blacker,支持原创,转载请说明出处。
P2P最简单的解释就是两个客户端之间直接进行数据交互,不经过服务端转发.
最早接触P2P是在大学里,那年代硬件和网络带宽都很昂贵(512内存已经是很高档的配置,在线直播是不敢想像的),
所以QQ这些应用软件为了节省服务端资源,文本聊天都是直接P2P的,那时候BT这些软件很受欢迎,因为他不是从服务端去下载资源,
而是直接去相邻的机器里获取,所以下载速度很快,当然带来的问题就是客户端网络负载很大,所以很多地方会禁用BT。
现在硬件成本和带宽成本大大降低,所以很多即时通讯软件的消息都是通过服务端进行转发,而且是基于TCP,
既降低了开发难度,又带来了很好的便捷与扩展,比如你现在通过QQ或微信聊天的内容都会存储在腾讯的服务端上,
当然绝大部分情况下他们不会去查聊天记录,但是如果有人作奸犯科,是很容易被查处出来的。
因为QQ的聊天记录都是存储在腾讯的服务端,对一些大企业来说很不方便,一方面他们的内网与外面是隔开的,
另一方面他们不希望内部聊天记录放在别人的服务器上,所以很多企业都有自己的IM,比如微软的lync。
看到这里你是不是觉得p2p已经没有太大用途了,全部都通过服务端来转发就可以了,答案是No,看下图:

这是win10的升级配置项,说明了两个问题:
1、如果你的电脑升级到win10,你的电脑从别人那里下载升级包的同时,也作为主机给别人提供升级包的下载,所以从升级开始,
你的网速就会变慢,因为你要提供东西给别人下载,听到这里你是不是不太想升级了。
2、微软这么做也是迫于无奈,操作系统十多G的东西,每个人都连他们的服务端去下载,速度慢不说,另一个就是他们得部署很多服务端,
即使服务端部署好了,后期的带宽成本也是一笔很大的支出,所以说有时候有钱也不能任性(如果不相信请接着看下面的分析)。
从网上看视频直播的时候我们会发现有时候会延误很多,比如看NBA,别人家已经进球了我们这边才刚发球,
看世界杯,别人家已经欢呼好久了,我们这边还没射门,知道延迟为什么会那么大吗?原因有两个:
1、现在的直播基本上都是采用Adobe的RTMP协议,他是基于TCP的,所以2秒内延迟是很正常的,所以视频会议都会采用UDP。
2、为了节省带宽成本,视频运营商会采用P2P技术,也就是说不管你看的是点播还是直播,你的视频媒体流可能是来自于你附近的用户,
而不是直接来自视频厂商的服务端,他们要这么做也是没办法,因为他们的带宽成本也很高,下面是乐视的财务报告:

看完上图我们可以得出如下结论:
1、换成任何人来做微软CEO,win10的升级方案都会优先P2P,而且默认就是P2P.
2、多媒体行业除了同行竞争激烈外,内容采购、带宽、人工都是很大的支出,说到底这行业就是烧钱的,难怪优酷和土豆会合并(都撑得很难受),
插个“广告”——既然blacker已经帮你分析这么多了,下次通过搜狐、优酷、乐视、腾讯等客户端看视频的时候可以考虑办个会员,大家都不容易,
另外需要转载我这些原创作品的时候,请说明出处,blacker也不容易,呵呵。
再回到webrtc,因为P2P是个好东西,webrtc里面又有p2p模块,所以很多人希望直接用webrtc p2p,怎么用呢? 下面这个链接里面又有多例子:
1、p2p文本发送:http://webrtc.github.io/samples/src/content/datachannel/basic/
2、p2p文件发送:http://webrtc.github.io/samples/src/content/datachannel/filetransfer/
3、p2p数据发送:http://webrtc.github.io/samples/src/content/datachannel/datatransfer/
Android IOS WebRTC 音视频开发总结(三九)-- win10升级为何要p2p的更多相关文章
- Android IOS WebRTC 音视频开发总结(四六)-- 从另一个角度看国内首届WebRTC大会
文章主要从开发者角度谈国内首届WebRTC大会,支持原创,文章来自博客园RTC.Blacker,支持原创,转载必须说明出处,更多详见www.rtc.help. -------------------- ...
- 转:Android IOS WebRTC 音视频开发总结 (系列文章集合)
随笔分类 - webrtc Android IOS WebRTC 音视频开发总结(七八)-- 为什么WebRTC端到端监控很关键? 摘要: 本文主要介绍WebRTC端到端监控(我们翻译和整理的,译 ...
- Android IOS WebRTC 音视频开发总结(八十五)-- 使用WebRTC广播网络摄像头视频(下)
本文主要介绍WebRTC (我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:bl ...
- Android IOS WebRTC 音视频开发总结(八十三)-- 使用WebRTC广播网络摄像头视频(上)
本文主要介绍WebRTC (我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:bl ...
- Android IOS WebRTC 音视频开发总结(六)-- iOS开发之含泪经验
前段时间在搞webrtc iOS开发,所以将标题改为了Android IOS WebRTC 音视频开发总结, 下面都是开发过程中的经验总结,转载请说明出处(博客园RTC.Blacker): 1. IO ...
- Android IOS WebRTC 音视频开发总结(二四)-- p2p调用堆栈
本文主要分析webrtc音视频点对点部分的代码结构,文章来自博客园RTC.Blacker,转载请说明出处. 前段时间在查一个偶尔断线的问题(这种问题最蛋疼,不好重现,只能凭经验去搞),所以理了下web ...
- Android IOS WebRTC 音视频开发总结(二三)-- hurtc使用说明
本文主要介绍如何测试基于浏览器和手机的视频通话程序,转载请说明出处,文章来自博客园RTC.Blacker,更多详见www.blackerteam.com 很多人想测试浏览器(包括浏览器版本和桌面e ...
- Android IOS WebRTC 音视频开发总结(四八)-- 从商业和技术的角度看视频行业的机会
本文主要从不同角度介绍视频行业的机会,文章来自博客园RTC.Blacker,支持原创,转载必须说明出处,欢迎关注个人微信公众号blacker ----------------------------- ...
- Android IOS WebRTC 音视频开发总结(六十)-- 您为什么招不到适合的音视频人才
本文主要介绍音视频行业招聘现状,文章最早发表在我们的微信公众号上,详见这里,欢迎关注微信公众号blackerteam,更多详见www.blackerteam.com 有过音视频人才招聘经验的应该都深有 ...
随机推荐
- 转--2014年最新810多套android源码2.46GB免费一次性打包下载
转载自:http://www.eoeandroid.com/thread-497046-1-1.html 感谢该博客主人无私奉献~~ 下面的源码是从今年3月份开始不断整理源码区和其他网站上的安卓例子源 ...
- JAVA 图形界面 JFrame容器
一.图像化界面必须引入包 //引入图形化界面包 import java.awt.*; import javax.swing.*; 二.源代码 //窗口 import java.awt.*; impor ...
- laravel加入验证码类几种方法 && Laravel引入第三方库的方法
1,使用require , inlcude 的方法将验证码类文件包含进来,再进行new 2,将验证码类文件放于Http目录下面,也就是和控制器controller放在一个目录下面,在验证码类文件中加上 ...
- jQuery实现的鼠标滑过切换图片代码实例
jQuery实现的鼠标滑过切换图片代码实例:有时候网页需要这样的简单效果,那就是当鼠标滑过默认图片的时候,能够实现图片的切换,可能在实际应用中,往往没有这么简单,不过大家可以自行扩展一下,下面简单介绍 ...
- [ActionScript 3.0] AS3 判断字符串是否为数字
trace(isNaN(Number("0")));//false trace(isNaN(Number("123")));//false trace(isNa ...
- 将Word文档发给别人时如何限制别人只能修改文档部分内容
将Word文档发给别人时如何限制别人只能修改文档部分内容 转自:互联网.时间:2014-04-16 作者:snow 来源:互联网 在很多情况下我们都不希望别人修改我们的文档内容,特别实在将W ...
- java生产随机字符串
public static String getRandomString(int length) { //length表示生成字符串的长度 String base = "abcdefghij ...
- Android Eclipse 里面依赖工程无法关联源码解决方案
android开发中,debug调试是一种非常实用快速定位问题的办法.eclipse中多工程依赖状态下会偶现无法debug的困扰,debug中的代码执行时会报出如下错误 The JAR of thi ...
- SQL执行的原理以及一些常见的关键字
sql语句在面试里面问道的问题: sql的解析的顺序 1.where里面的条件是从右向左扫描解析 2.from里面的大表在前,小表在后,解析的顺序是从右向左解析. 3.left/right/inner ...
- 玩转JS插件系列
说明:本系列文章只是通过学习JS插件源码来巩固自己的JS知识,不涉及任何商业目的,如有侵犯版权请尽快告知 一.UI 背景 对话框和灯箱 筛选及排序 反馈 弹出层 悬停 布局 图表 加载 圆边 滚动 标 ...