Android WebRTC 音视频开发总结(一)

Home / Android MrLee 2014-12-25 3473

本《Android WebRTC 音视频开发总结》由 RTC.Blacker提供,在此特别感谢他的无私奉献!
一、WebRTC是什么? WebRTC是Google提供的一个跨平台的音视频开源解决方案,旨在使其成为音视频通讯的标准。其实在Google将WebRTC开源之前,微软和苹果各自的通讯产品已占用很大市场份额(如Skype),估计Google也是为了快速扩大市场,所以选择将他开源。 刚接触WebRTC的时候你会被里面的一堆概念搞晕,特别是对没接触过音视频的人来说,如WebRTC, ICE, STUN, TURN, P2P, NAT, Jingle, TALK, VOIP, FFMPEG, H264, VP8, NACK, RTP, RTCP, RTSP. 晕了吧,凡事都要有个过程的,一步步来吧!不懂了就问问度娘或GOOGLE,再不懂就发个邮件给我,咱们一起交流,不过问之前请先将问题描述清楚,节省大家时间也便于交流。
二、WEBRTC代码如何获取和编译。 1、环境准备:对刚入门的人来说编译WEBRTC很头疼,特别是对没接触过linux的人来说,虽然网上有很多资料,但是实际编译过程中总会出现这样或那样的错误,很多错误都不知所措。其实编译不过的主要原因就是有些文件下载不下来(因为国家防火墙限制),所以这里给出一个编译WebRTC的最简单的解决方案: A、买一个付费的VPN账号。 B、参考:http://www.webrtc.org/reference/getting-started,很详细,看仔细。 这个方案屡试不爽,我已经成功编译过好几次了,如果还有问题可以联系我(对andorid开发者来说最好使用ubuntu 64位环境,不要在windows下面搞。)。 C、最近这个代码越来越难下了,所以我也不会去轻易更新,或者我就直接去香港下载,强吧!
三、运行WebRTCDemo。 A、安装WebRTC/Trunk/out/WebRTCDemo-debug.apk,他支持点对点视频,在其SETTINGS页签中设置好对方IP,点击MAIN页签中的StartCall即可与对方开始视频通话。

031344068419325

四、AppRTCDemo如何使用? WebRTCDemo可以直接做成P2P的效果,AppRTCDemo则需要另外一个服务端(也可直接连接:https://apprtc.appspot.com/),当然你也可以自己部署这个服务端,他是利用libjingle和XMPP来处理信令交互的,而且基于ICE协议实现P2P,至于什么是ICE,什么是STUN,TURN我在后面的文章中都有陆续讲到。
AppRTCDemo的最大问题就是很多人不知道服务端怎么部署,而且他也没有实现手机对手机的效果,这个应用是很广泛的,最起码有智能家居,安防监控等行业的用户就请我帮他们做过这方面的技术支持,所以后面我打算将它做成一个通用的产品,供别人学习和使用。目前android和服务端已经完成了,IOS正在抽时间处理。
五、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快好多好多!

本文链接:https://www.it72.com/490.htm

推荐阅读
最新回复 (0)
返回