Android IOS WebRTC 音视频开发总结(四五)-- ORTC背后的真相
本文主要介绍ORTC(Object Real-time Communication),支持原创,文章来自博客园RTC.Blacker,支持原创,转载必须说明出处,更多详见www.rtc.help。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
一个WebRTC就已经搞得我们晕头转向的,现在又弄出个ORTC(去年已经提出这个概念了),他们之间有什么关系和差别呢?
直白一点说就是:一些浏览器厂商刚开始不太愿意配合搞HTML5中的RTC规范(比如微软,因为动了他的奶酪),google和firefox就只能自己先搞了,
搞了两年其他人看到这个东西是个趋势,也有点想参与了,但不好意思说出来,所以就开始挑WebRTC的问题,比如:
1,sdp格式晦涩难懂——这是事实,我每次都要对着文档去查。
2,太多高层次的API,以及没有严格的标准规范,火狐和chome一些写法还搞得不一样。
3,无法真正解决历史遗留系统得兼容性问题。
4,要求没有得到应答。
5,等等等等。
正因为存在这么多问题,所以之前那些不怎么积极的厂商就可以名正言顺的插进来一起搞了,各家都派个代表进来,成立个标准组织,制订些新的标准,就这样ORTC就诞生了,其实也可以称作是WebRTC2.0或WebRTC3.0,只不过进来的门派多了,规格要提高,干脆改个全新的名字,这样ORTC就诞生了.
下面我们看看WebRTC和ORTC各自的官网对比:

--------------------------------------------------

--------------------------------------------------
从官网上我们可以知道下面几个信息:
1,他们的本质和使命没有多大差别,主要是组织结构上加了几个新成员(主要是加上了之前不愿配合的那几个人)。
2,www.webrt.org官网需要FQ才能打开,www.ortc.org可直接打开,原因你懂的。
---------------------------------------------------
下面再来看看他们的api构成:

--------------------------------------------------

--------------------------------------------------
这两张图说明:他们的api并没有太大差别,最终都是围绕connection,track,candidate进行。
---------------------------------------
对我们开发人员来说要注意的就是:
不管他名字怎么改(以后可能会有ARTC,BRTC,CRTC),我们用的代码都是那一套,底层操作,如音视频采集,编解码,传输这些都一样,
我们用的都是google提供的webrtc,因为不管是微软还是苹果,一时半会,一年半载不可能将他的东西开源出来,呵呵。
-----------------------------------------------------
所以通过ORTC这个概念的诞生我们可以看到WebRTC已经越来越火,包括一些大的厂商已经开始重兵进入,比如因特尔。
很多人可能以为因特尔是做硬件的,怎么会跟webrtc这种软件开发扯上关系,想想下面这个问题你就明白了:
WebRTC只是个客户端,做视频会议需要用到服务端,需要MCU,而这种东西是可以通过硬件实现,硬件就是芯片,芯片是谁生产的?
所以为了更好支持WebRTC,因特尔连客户端sdk都给我们封装好了,直接用它的东西就行,见下图:

-------------------------------------------------
当然了除了因特尔这些做硬件的大佬外,还有很多提供音视频sdk的厂商也在用webrtc这套东西,下面是反编译某大佬sdk中的部分代码结构:

------------------------------------------------
从我们接触的情况看国内做音视频相关开发的公司,没几家没用过WebRTC这套东西的,只不过用的程度不一样罢了,还有他们对外宣传的时候都会说是什么什么团队,高手解决了什么难题,达到了什么效果,绝对不会说用了webrtc的东西,呵呵,这也是国情使然。
------------------------------------------
再引申一些相像空间:google当年开源WebRTC 的时候肯定想到这些问题,比如有人偷偷用了他们的东西,又死不承认,然后改完又不继续开源,
而且他那些语音处理都是核心技术,所以这些时候换成你是CEO你会怎么做?
所以他可能会将某些核心的模块没有开源出来,或者用一个次品代码,等时机成熟再将核心的东西放出来,估计换成是你你也会这么做,呵呵!
所以说到这里再谈谈我对WebRTC的看法:
“WebRTC就是屠龙刀,用好了威力无穷,用不好后患无穷,所以学会用火找到会用的人很重要”。
-------------------------------------------
支持原创,支持blacker,喜欢这系列的文章或想与我交流RTC开发的相关问题,请关注我的微信公众号blacker,或扫描下方二维码:
,谢谢
Android IOS WebRTC 音视频开发总结(四五)-- ORTC背后的真相的更多相关文章
- 转: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 音视频开发总结(四六)-- 从另一个角度看国内首届WebRTC大会
文章主要从开发者角度谈国内首届WebRTC大会,支持原创,文章来自博客园RTC.Blacker,支持原创,转载必须说明出处,更多详见www.rtc.help. -------------------- ...
- 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 音视频开发总结(六十)-- 您为什么招不到适合的音视频人才
本文主要介绍音视频行业招聘现状,文章最早发表在我们的微信公众号上,详见这里,欢迎关注微信公众号blackerteam,更多详见www.blackerteam.com 有过音视频人才招聘经验的应该都深有 ...
- Android IOS WebRTC 音视频开发总结(五七)-- 网络传输上的一种QoS方案
本文主要介绍一种QoS的解决方案,文章来自博客园RTC.Blacker,欢迎关注微信公众号blacker,更多详见www.rtc.help QoS出现的背景: 而当网络发生拥塞的时候,所有的数据流都有 ...
随机推荐
- M2M协议
1, M2M协议 M2M是Machine-to-Machine/Man的简称,是一种以机器终端智能交互为核心的.网络化的应用与服务.M2M协议规定了人机和机器之间交互需要遵从的通信协议.随着科学技术的 ...
- 如何让python程序运行得更快
原则1:不优化 原则2:不要优化那些不重要的部分(否则会降低可读性) 解决方案: 1. 使用函数,局部变量比全局变量快很多.尽量使用函数,如main() 2. 有选择性的消除属性访问. 如多用 fro ...
- vs报算术运算溢出的错误
是因为查询的数据量太大,把数据量减少点就不会报这个错了. 或者查询速度快点比如加索引也可能解决,待确定.
- lassen项目启动
1.将代码从svn下载下来 2.在下载目录打开命令窗口 shift+鼠标右键 3.mvn clean install mvn eclipse:clean mvn eclipse:eclipse
- cocso2d-x改变精灵图片
cocos2d-x 改变精灵图片的2种方法. 1. // 首先载入贴图集 CCSpriteBatchNode *spriteBatch=CCSpriteBatchNode::batchNodeWith ...
- Find the Clones(字典树)
链接:http://poj.org/problem?id=2945 Description Doubleville, a small town in Texas, was attacked by th ...
- Oracle数据库——常用命令(用户管理、数据库导入导出)
--==cmd控制台==-- --==日常用户管理SQL==-- --连接到SQLPLUS >sqlplus /nolog --以dba身份连接 sql>conn / as sysdba ...
- HDU1232畅通工程
http://acm.split.hdu.edu.cn/showproblem.php?pid=1232 #include<stdio.h> #include<string.h> ...
- maven的版本管理笔记
1. 版本管理 (1) 快照版本对应了项目的开发过程,往往对应了很长的时间:发布版本对应了项目的发布,因此仅仅代表某个时刻项目的状态. (2) 理想的发布版本应当对应项目某个时刻比较稳定的状态,包括源 ...
- Effective Modern C++翻译(7)-条款6:当auto推导出意外的类型时,使用显式的类型初始化语义
条款6:当auto推导出意外的类型时,使用显式的类型初始化语义 条款5解释了使用auto来声明变量比使用精确的类型声明多了了很多的技术优势,但有的时候,当你想要zag的时候,auto可能会推导出了zi ...