请选择 进入手机版 | 继续访问电脑版

默认
打赏 发表评论 19
移动端实时音视频聊天框架:RainbowAV基本介绍

一、作者的话


众所周之,实时音视频技术是音视频技术+网络技术的混合体,如果没有技术基础或积累(单就音视频技术而言,能吃透这些,博士学位都可以混出来了),开发难度相当高(做过的都知道,音视频框架即使只要做到手机端兼容性好、稳定不崩溃那都不是件容易的事)。目前除了谷歌开源的WebRTC外,互联上你几乎连一个完整的Demo都找不到,而即便有了开源的WebRTC,但其近5G的源码,想从中扒出你想要的部分,谈何容易。

RainbowAV并不是一个实时音视频Demo,起初它是为配合RainbowChat产品而开发的移动端实时音视频框架,但它从第1行代码开始,就被设计为以独立的SDK方式集成和使用,从而扩展它的使用场景和应用范围。

相关链接:
  ① RainbowAV性能测试报告:点此进入 推荐
  ② Web端即时通讯框架:MobileIMSDK-Web
  ③ 移动端实时音视频框架:RainbowAV
  ④ 全功能产品级IM案例:RainbowChat

二、支持作者


RainbowAV此前仅提供给商业用户使用,现已精心整理并以有偿的方式开源所有源码和资料,希望得您的支持和理解。高质代码、数量有限

有偿开源的存在,是作者目前为数不多的物质支撑,如果您希望本工程能够持续发展下去,使得您的项目能够得到它持久的回馈,您的支持意义非凡。Jack Jiang依托即时通讯网长期提供即时通讯技术的分享和传播,这里的技术资源和技术支持毫无疑问是您能找到的最低成本且是最优质的,您的支持是我们继续下去的动力!

支持作者得 RainbowAV 源码和资料:
资源名称包含内容金额获得方式发货方式专享技术支持
<Android端源码+文档>• 1、SDK应用层Java源码
• 2、SDK核心层C++源码
• 3、精篇Demo源码
• 4、客户端JNI编译手册

1499 元
749 元
淘宝链接付款后自动发货1、VIP技术群
2、论坛讨论区
3、一对一交流
4、永久免费升级
<服务端源码+文档>• 1、服务端C++源码
• 2、服务端2进制编译版(可立即部署)
• 3、
服务端架构设计与详细部署手册
1599 元
799 元
淘宝链接付款后自动发货

taobao_main_code_toBBS-c.png                taobao_main_code_toBBS-s.png
taobao.com/item.htm?id=558608418703       taobao.com/item.htm?id=558796195010

三、基本介绍


github_header_logo.png
RainbowAV是一套完整移动端实时音视频框架(含服务端),支持分布式,不依赖于第3方服务,可私有化部署,使用方便,部署简单,轻量级、模块化设计,开发者可方便修改、演进甚至用于2次开发。

RainbowAV主要技术特征如下:

  • 独立无依赖:自主开发、不依赖第3方、可局域网部署;
  • 部署极简单:服务端轻量级、极少依赖、简单易用、3行指令即可部署
  • 真正高性能:服务端基于Linux epoll,真正高性能;
  • 服务端拆分:服务端拆分成3个服务,均可独立部署,进一步提升单实例性能;
  • 支持分布式:可同时部署多实例,在保证单实例性能的前提下,极易实现分布式性能负载;
  • 客户端性能:底层核心为C++编写,性能优先,CPU占用约17%手机QQ的约20%、微信的约为19%);
  • 产品级品质:客户端经过大量手机测试和适配,它并不是个Demo
  • 占用资源少:客户端资源占用极少,持续运行时内存仅占13M左右
  • 手机兼容好:Android 2.3及以上版本手机均可流畅运行
  • 优先用P2P:优先使用P2P降低服务器负载,不成功时才使用中转策略;
  • 视频高压缩:实时音视频时上下行总流量约30KB/S手机QQ和微信的实时音视频均约60KB/S);
  • 音频高压缩:实时语音时上下行总流量约9KB/S手机QQ约14KB/S、微信约6KB/S);
  • 主流编解码:视频使用H.264、音频为G729A
  • 弱网络支持:可应用于3G、4G等弱网络,在跨洲际高延迟网络下做过大量测试。

补充说明:以上描述的具体测试数据,详见《移动端实时音视频框架:RainbowAV的性能测试报告》。RainbowAV已于2017年9月正式对外发布(在此之前仅对商业用户授权使用),如有需要可自行从淘宝下单,付款后会立即自动发货到您的淘宝关联邮箱,无需等待处理。

四、源码和文档获取


RainbowAV工程目前未开源,您可通过淘宝链接捐助的方式获取(同时您也将立即获得作者的专享技术支持),详见文首“淘宝下单”部分,感谢您的理解与支持。

或者直接点击以下链接:


五、设计目标


鉴于实时音视频技术的高门槛,RainbowAV技术从设计开始就希望能简化集成和使用,因而是以独立工程的方式进行迭代和演进,并不会与RainbowChat这样的IM发生代码耦合性,从而方便开发者自行改进甚至2次开发。

小结一下,RainbowAV的设计目标是为您提供以下能力:

  • 与IM工程的解耦:独立工程,方便迭代和演进,甚至2次开发;
  • 服务端部署便利:服务端编译成了清爽的可执行程序,3行指令即完成部署;
  • 单实例拆分部署:共编译成3个程序,均可独立部署,互相无依赖,进一步提升单实例性能;
  • 多实例分布式部署:鉴于实时音视频聊天的特殊性(只在聊天时才需要连接音视频服务器),多实例分布式部署变的简单;
  • 服务端的高性能:得益于Linux epoll异步编程模型,服务端拥有极高的并发处理性能。
  • 手机端高兼容性:受益于大量的兼容性测试,甚至在Android 2.3上仍可很好地工作,代码表现健壮;
  • 手机低资源占用:Android客户端经过大量优化,资源占用低;
  • 高压缩低码率:经过编码压缩后的音视频数据,只需很少的流量;
  • P2P通信支持:尽可能降低服务端性能和带宽压力;
  • 弱网络的支持:降低弱网络高延迟环境带来的通信脆弱性,保证应用层的稳定运行。

有关性能指标的详细测试情况,请见《移动端实时音视频框架:RainbowAV的性能测试报告》。

六、框架组成


整个RainbowAV工程暂时由以下2部分组成:

  • Android客户端SDK:开发者可基于此开发您自已的实时音视频聊天功能、实时语音电话功能等;
  • 高性能服务器程序:用于客户端网络状态上报、P2P协助打通、实时音视频数据转发、实时视频数据转发等,支持高性能和高并发。

七、性能指标


客户端性能指标总结:
  • 客户端运行稳定后,内存占用约13M左右(以MOTO G XT1077手机为例);
  • 实时音视频(视频+语音)时,CPU占用约17%(手机QQ的约为20%、微信的约为19%);
  • 实时语音(仅语音)时,CPU占用约11%(手机QQ的约为12%、微信的约为5%);
  • 实时音视频(视频+语音)时上下行总流量约30KB/S手机QQ和微信的均约60KB/S);
  • 实时语音(仅语音)时上下行总流量约9KB/S手机QQ的约14KB/S、微信的约6KB/S).

服务端性能指标总结:
RainbowAV服务端基于Linux epoll(大名鼎鼎的Ngnix的高性能正是以此为基础),理论设计性能是:单机1000到10000人同时使用。鉴于实时音视频的复杂性(P2P、中转等混合发生),想要准确地测试统计非常困难。但鉴于实时音视频技术的高流量特性,通常单机瓶颈会首先出现在带宽上,所以生产部署时需要在单机性能和带宽分流上总体考虑。而也正是得益于实时音视频的特殊性,聊天时可同时部署多个服务端实例,只要引导该对聊天的用户同时连接同一台实例即可进行聊天,从而让分布式部署和负载均衡变的简单。

以上性能指标的详细测试情况,请见《移动端实时音视频框架:RainbowAV的性能测试报告》。

八、试用和体验


1RainbowAV独立测试体验版:

av_fir.png
扫描2维码进入下载地址

2RainbowAV集成到RainbowChat后:

rb_fir.png
扫描2维码进入下载地址1进入下载地址2
测试账号1:400069 密码:123456,测试账号2:400067 密码:123456。也可自行注册!

九、授权方式


授权方法:
完成付款后,你即可永久自由地使用RainbowAV(包括后绪永久免费提供升级版),无需单独授权,如:用于研究、学习、甚至商业用途。RainbowAV为著作权作品,未经作者授权不可对RainbowAV本身进行二次出售(但基于此进行的后续演进和开发成果由您自行独享),请尊重知识产权。

版本升级:
可永久免费获取最新版本,作者承诺在捐助者索取最新版本时,提供优先交付的保证。

获取授权书:
如您确实需要单独的正式授权书,请联系作者即可。授权书电子版(盖章有效)将发到您的指定邮箱,如还需寄送纸质授权书(盖章有效)则请补上邮费即可(快递收多少就是多少,无需多付)。

补充说明:如需获得更多技术支持或技术合作请联系作者,QQ:413980957。

十、联系方式



十一、运行截图


1)RainbowAV独立体验版的运行效果:
rainbow_av_alone_demos.jpg

2)RainbowAV集成到RainbowChat聊天软件后的实时音视频功能运行效果:RainbowChat介绍RainbowChat截图
rainbow_av_migrate_rainbowchat_v.jpg

3)RainbowAV集成到RainbowChat聊天软件后的实时语音聊天功能运行效果:RainbowChat介绍RainbowChat截图
rainbow_av_migrate_rainbowchat_a2.jpg

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

推荐方案
评论 19
支持群主!
签名: 该会员没有填写今日想说内容.
音视频难度还是很高的,可以学习研究一下
签名: 该会员没有填写今日想说内容.
请问这个音视频通信是通过 webrtc音视频技术实现的吗?
引用:632743365 发表于 2017-10-13 21:22
请问这个音视频通信是通过 webrtc音视频技术实现的吗?

不是的,只有音频降噪模块扣的是WebRTC的算法,其它都是自主开发
签名: 《保活终极总结(三):Android6.0及以上的保活实践(被杀复活篇)》http://www.52im.net/thread-1140-1-1.html
引用:JackJiang 发表于 2017-10-13 22:19
不是的,只有音频降噪模块扣的是WebRTC的算法,其它都是自主开发

p2p和服务器的转发使用的是什么框架?
我想了解清楚一点,可以的话,我想购买。
引用:632743365 发表于 2017-10-13 22:27
p2p和服务器的转发使用的是什么框架?

都是自已写的算法,没有第3方依赖,部署和运营就很简单
签名: 《保活终极总结(三):Android6.0及以上的保活实践(被杀复活篇)》http://www.52im.net/thread-1140-1-1.html
引用:JackJiang 发表于 2017-10-14 10:25
都是自已写的算法,没有第3方依赖,部署和运营就很简单

服务端使用C++写的?不是用Java?我需要对从录音对象AudioRecord获取的音频数据放入byte[]中,再对该byte[]进行处理,处理后再返回一个byte[].
相当于在录音和编码之间加了一步对音频数据byte[]的处理后,再返回另一个byte[];接着在接收音频端在解码和播放之间,进行反处理。
请问在您这个基础上能实现这些吗?
引用:632743365 发表于 2017-10-14 10:40
服务端使用C++写的?不是用Java?

这种高性能服务端,C++是必须的,用java那就有点忽悠了
签名: 《保活终极总结(三):Android6.0及以上的保活实践(被杀复活篇)》http://www.52im.net/thread-1140-1-1.html
引用:JackJiang 发表于 2017-10-14 11:01
这种高性能服务端,C++是必须的,用java那就有点忽悠了


引用:632743365 发表于 2017-10-14 12:37
我需要的是:
  1、对从录音对象AudioRecord获取的音频数据byte[],再对该byte[]通过一个算法进行加密处 ...

我不需要清楚你的具体需求,但你要求的对byte数组进行的加、解密操作,在java层就可以完成:
aa.png

请自行评估。
签名: 《保活终极总结(三):Android6.0及以上的保活实践(被杀复活篇)》http://www.52im.net/thread-1140-1-1.html
引用:JackJiang 发表于 2017-10-14 13:49
我不需要清楚你的具体需求,但你要求的对byte数组进行的加、解密操作,在java层就可以完成:

好的,我知道了,我再权衡一下,可以的话,之后就会进行购买,再联系您,谢谢!
引用:632743365 发表于 2017-10-14 14:05
好的,我知道了,我再权衡一下,可以的话,之后就会进行购买,再联系您,谢谢!

ok
签名: 《保活终极总结(三):Android6.0及以上的保活实践(被杀复活篇)》http://www.52im.net/thread-1140-1-1.html

您好,我想咨询一下购买问题。
请问示例截图中的帅哥是站长本人吗?
签名: 该会员没有填写今日想说内容.
引用:researchboy 发表于 2017-10-16 21:29
请问示例截图中的帅哥是站长本人吗?

我弟弟
签名: 《保活终极总结(三):Android6.0及以上的保活实践(被杀复活篇)》http://www.52im.net/thread-1140-1-1.html
引用:JackJiang 发表于 2017-10-16 21:38
有什么疑问你说

您好,可以在好友聊天里面聊一下购买问题吗?
引用:632743365 发表于 2017-10-17 11:17
您好,可以在好友聊天里面聊一下购买问题吗?

好的,回复你了
签名: 《保活终极总结(三):Android6.0及以上的保活实践(被杀复活篇)》http://www.52im.net/thread-1140-1-1.html
不错啊,学习了
签名: 好好好哈哈哈哈
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

Processed in 0.140627 second(s), 36 queries , Gzip On.

返回顶部