【转】Android WebRTC 音视频开发总结(一)
http://www.cnblogs.com/lingyunhu/p/3578218.html
本系列文章主要总结和分享WebRTC开发过程中的一些经验,转载请说明出处(博客园RTC.Blacker),更多交流与合作请看页面上方的子标题!
一、WebRTC是什么?
可能您还不知道WebRTC是什么,但您一定用过他里面的东西,因为QQ就用到了他的核心技术,不过那时候这些东西还不叫WebRTC,他也还掌握在GIPS手里(他们家的语音技术可谓独步天下),而且当年小马哥也给人家交了不少USD,扯远了。
WebRTC是Google于2011年6月3日开源的即时通讯项目,旨在使其成为客户端视频通话的标准。其实在Google将WebRTC开源之前,微软和苹果各自的通讯产品已占用很大市场份额(如Skype),Google也是为了快速扩大市场,所以将他给开源。经常接触开源的人应该很容易理解Google这种策略,只不过在国内大家都喜欢弄成SDK,然后按年按月按用户数给你收费,总让你觉得不爽,呵呵。
刚接触WebRTC的时候你会被里面的一堆概念搞晕,特别是对没接触过音视频的人来说,如WebRTC, ICE, STUN, TURN, P2P, NAT, Jingle, TALK, VOIP, FFMPEG, H264, VP8, NACK, RTP, RTCP, RTSP, RTMP, SIP, XMPP, ISAC, ILBC, OPUS, G711, G722. 晕了吧,凡事都要有个过程的,一步步来吧!不懂了就问问度娘或GOOGLE,再不懂就发个邮件给我(左边有联系方式:RTC.Blacker@gmail.com),咱们一起交流,不过问之前请先将问题描述清楚,节省大家时间也便于交流。
如果想简单测试效果,可以试试我自己搞的东东:
1. http://www.cnblogs.com/lingyunhu/p/rtc23.html
2. http://www.cnblogs.com/lingyunhu/p/3722029.html
如果想快速了解开发过程,可以看看我整理和翻译的东东:
1. http://www.cnblogs.com/lingyunhu/p/4129425.html
2. http://www.cnblogs.com/lingyunhu/p/4058182.html
更多相关原创文章详见:http://www.cnblogs.com/lingyunhu/tag/webrtc%20android%20ios/
二、WEBRTC代码如何获取和编译。
1、下载编译:做这个动作前您最好先确认您是否需要做这个动作,如果仅仅做基于浏览器的开发您可以略过这个步骤,因为您要的东西浏览器都帮您做好了。
2、环境准备:对刚入门的人来说编译WEBRTC很头疼,特别是对没接触过linux的人来说,虽然网上有很多资料,但是实际编译过程中总会出现这样或那样的错误,很多错误都不知所措。其实编译不过的主要原因就是有些文件下载不下来(因为国家防火墙限制),所以这里给出一个编译WebRTC的最简单的解决方案:
2.1、买一个付费的VPN账号,其实买VPS是最好的,不过成本比较高。
2.2、参考:http://www.webrtc.org/reference/getting-started,很详细,看仔细。
这个方案屡试不爽,我已经成功编译过好几次了,如果还有问题可以联系我(对andorid开发者来说最好使用ubuntu 64位环境,不要在windows下面搞。)
2.3、最近这个代码越来越难下了,所以我也不会去轻易更新,或者我就直接去香港下载,强吧!
2.4、网上很多这方面的资料,建议您参考喔上面的做法,不然后面会走很多弯路,因为有些资料都过时了,作者也没有去更新。
三、运行WebRTCDemo。
1、安装WebRTC/Trunk/out/WebRTCDemo-debug.apk,他支持点对点视频,在其SETTINGS页签中设置好对方IP,点击MAIN页签中的StartCall即可与对方开始视频通话,以前这个demo是有视频功能,现在只有音频功能,因为google将一些api拿掉了,为了标准化嘛,所以以后下载代码时找不到这个demo也不要惊讶,其实ios上根本就没有这个demo。

四、AppRTCDemo如何使用?
WebRTCDemo可以直接做成P2P的效果,AppRTCDemo则需要另外一个服务端(也可直接连接:https://apprtc.appspot.com/),当然你也可以自己部署这个服务端,他是利用libjingle和XMPP来处理信令交互的,而且基于ICE协议实现P2P,至于什么是ICE,什么是STUN,TURN我在后面的文章中都有陆续讲到。
AppRTCDemo的最大问题就是google为了推广自己的东东,将他搞得很复杂,服务端部署起来也很复杂,所以我后来直接做了一个移植,信令服务全部自己实现,现在已经实现了安卓,ios,pc之间视频通话的效果,而且也陆陆续续也做了不少手机适配方面的优化,很适合用在社交,智能家居,安防监控,在线教育等行业,接下来要做的工作也就是不断加入新功能,更新,优化。
五、WebRTC的工程文件在不同项目如何管理?
因为WebRTC是跨平台的,支持mac,windows,linux,但不同平台下用的工程文件格式不一样,如VisualStudio下是.vcproj,是每个开发平台下手动创建自己的工程文件吗?答案是否定的,他是通过.gyp文件来管理的,说白了.gyp文件相当于是他的工程描述文件,类似JSON格式,不同平台下编译的时候根据.gyp文件产生对应格式的工程文件,如.vcproj。
说到这里就得谈谈它的编译方式ninja,搞chrome的那些程序员估计是受不了make的编译速度,所以开发了ninja。所以如果运行gclient runhooks的时候会生成很多*.ninja文件(这些文件在out目录下),ninja就是根据这些文件进行编译的,这些文件语法都比较简单,基本上都是rule和build,这样就产生了ninja的优势----快速编译,他很多条件都是预先决定的,比make快好多好多!
【转】Android WebRTC 音视频开发总结(一)的更多相关文章
- Android WebRTC 音视频开发总结
www.cnblogs.com/lingyunhu/p/3621057.html 前面介绍了WebRTCDemo的基本结构,本节主要介绍WebRTC音视频服务端的处理,,转载请说明出处(博客园RTC. ...
- Android WebRTC 音视频开发总结(三)-- 信令服务和媒体服务
前面介绍了WebRTCDemo的基本结构,本节主要介绍WebRTC音视频服务端的处理,,转载请说明出处(博客园RTC.Blacker). 通过前面的例子我们知道运行WebRTCDemo即可看到P2P的 ...
- Android WebRTC 音视频开发总结(一)
本系列文章主要总结和分享WebRTC开发过程中的一些经验,转载请说明出处(博客园RTC.Blacker),更多交流与合作请看页面上方的子标题! 一.WebRTC是什么? 可能您还不知道WebRTC是什 ...
- Android WebRTC 音视频开发总结(四)-- webrtc传输模块
在介绍WebRTC通讯之前我们先来看一个P2P视频聊天包括的主要过程,转载请说明出处(博客园RTC.Blacker): 音视频数据采集->编码->发送->接收->解码-> ...
- Android WebRTC 音视频开发总结(五)-- webrtc开发原型
这些天基于WebRTC做了个 手机视频监控 的程序,分享出来,供想了解这方面内容的朋友参考. 这个程序最早是广州一家智能穿戴设备公司请我们做的(他们不需要底层源码,也不需要ios版本),之后我们在这个 ...
- Android WebRTC 音视频开发总结(二)-- webrtcdemo介绍
这节主要介绍WebRTCDemo的结构,以此来简单了解WebRTC的调用流程,转载请说明出处(博客园RTC.Blacker) 1.先看WebRTCDemo的代码结构,如下图: 2.WebRTCDemo ...
- 转:Android IOS WebRTC 音视频开发总结 (系列文章集合)
随笔分类 - webrtc Android IOS WebRTC 音视频开发总结(七八)-- 为什么WebRTC端到端监控很关键? 摘要: 本文主要介绍WebRTC端到端监控(我们翻译和整理的,译 ...
- WebRTC 音视频开发
WebRTC 音视频开发 webrtc Android IOS WebRTC 音视频开发总结(七八)-- 为什么WebRTC端到端监控很关键? 摘要: 本文主要介绍WebRTC端到端监控(我们翻译 ...
- Android IOS WebRTC 音视频开发总结(八十五)-- 使用WebRTC广播网络摄像头视频(下)
本文主要介绍WebRTC (我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:bl ...
随机推荐
- 基于Live555,ffmpeg的RTSP播放器直播与点播
基于Live555,ffmpeg的RTSP播放器直播与点播 多路RTSP高清视频播放器下载地址:http://download.csdn.net/detail/u011352914/6604437多路 ...
- 安卓dalvik和art区别
Dalvik模式像是一台折叠自行车,每次骑之前都要组装后才能上路.而ART模式就是一个已经装好的自行车,直接就能上车走人.所以ART模式在效率上肯定是要好于Dalvik. 通过以上这种表格,我们可以直 ...
- xcode升级,报错 libxml/tree.h not found (Xcode4.6解决方案)
转:http://blog.csdn.net/yangxuanlun/article/details/8639075 Xcode升级到4.6以后,他妈的,libxml/tree.h找不到了,搞了大半天 ...
- 零基础编程指南(By Turtle)
[零.基础] 1.看文章:<程序猿搜索的技巧>(未完成) [一.入门] 学习语言:VB 安装:下载VB6即可 教程:<李天生vb从入门到精通>http://www.xin372 ...
- C 的 coroutine 库 via 云风的 BLOG
今天实现了一个 C 用的 coroutine 库. 我相信这个东西已经被无数 C 程序员实现过了, 但是通过 google 找了许多, 或是接口不让我满意, 或是过于重量. 在 Windows 下, ...
- android桌面小火箭升空动画
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceS ...
- A Spy in the Metro
题意: n个车站,已知到达相邻车站的时间,有m1辆车从1站出发已知发车时间,有m2辆车从n站出发已知发车时间,求从1到达n所需等车的总时间最小. 分析: 有三种情况,在原地等,乘左到右的车,乘右到左的 ...
- HDU 3695-Computer Virus on Planet Pandora(ac自动机)
题意: 给一个母串和多个模式串,求模式串在母串后翻转后的母串出现次数的的总和. 分析: 模板题 /*#include <cstdio> #include <cstring> # ...
- 【转】Ofbiz学习经验谈
不可否认,OFBiz这个开源的系统功能是非常强大的,涉及到的东西太多了,其实对我们现在而言,最有用的只有这么几个:实体引擎.服务引擎.WebTools.用户权限管理.最先要提醒各位的是,在配置一个OF ...
- [Tommas] 测试用例覆盖率(三)
三.测试数据的设计 每一个测试思路最终都要转化成具体的数据才能来执行.关于测试数据设计的方法也不外乎那几种,就不再赘述了.此处单就一些经常易犯的错误,提出一些注意点,作为用例数据设计时的参考: 1.尽 ...