IM比较SipDroid/IMSDroid/CSipsimple/Linphone/Webrtc
一) sipdroid
1)架构
sip协议栈使用JAVA实现,音频Codec使用skype的silk(Silk编解码是Skype向第三方开发人员和硬件制造商提供免版税认证(RF)的Silk宽带音频编码器)实现。NAT传输支持stun server.
2)优缺点:
NAT方面只支持STUN,无ICE框架,如需要完全实现P2P视频通话需要实现符合ICE标准的客户端,音频方面没看到AEC等技术,视频方面还不是太完善,目前只看到调用的是系统自带的MediaRecorder,并没有自己的第三方音视频编解码库。
3)实际测试:
基于sipdroid架构的话,我们要做的工作会比较多,(ICE支持,添加回音消除,NetEQ等gips音频技术,添加视频硬件编解码codec.),所以就不做测试了。
二) imsdroid
1)架构:
基于doubango(Doubango 是一个基于3GPP IMS/RCS 并能用于嵌入式和桌面系统的开源框架。该框架使用ANSCI-C编写,具有很好的可移植性。并且已经被设计成非常轻便且能有效的工作在低内存和低处理能力的嵌入式系统上。苹果系统上的idoubs功能就是基于此框架编写) .音视频编码格式大部分都支持(H264(video),VP8(video),iLBC(audio),PCMA,PCMU,G722,G729)。NAT支持ICE(stun+turn)
2)效果实测
测试环境:公司局域网内两台机器互通,服务器走外网sip2sip
第一次测试:音频质量可以,但是AEC打开了还是有点回音(应该可以修复)。视频马赛克比较严重,延迟1秒左右。
第二次测试:音频质量可以,基本无回音,视频无马赛克,基本无延迟(低于1秒)。
3)优缺点
imsdroid目前来说还是算比较全面的,包括音视频编解码,传输(RTSP,ICE),音频处理技术等都有涉猎。doubango使用了webrtc的AEC技术,但是其调用webrtc部分没有开源,是用的编译出来的webrtc的库。如果要改善音频的话不太方便,Demo的音视频效果还可以
三)csipsimple
1)sip协议栈用的是pjsip,音视频编解码用到的第三方库有ffmpeg(video),silk(audio),webrtc.默认使用了webrtc的回声算法。支持ICE协议。
2)优缺点:
csipsimple架构比较清晰,sip协议由C实现,java通过JNI调用,SIP协议这一块会比较高效。其VOIP各个功能也都具备,包括NAT传输,音视频编解码。并且该项目跟进新技术比较快,官方活跃程度也比较高。如果做二次开发可以推荐这个。
3)实测效果
测试环境:公司局域网内两台机器互通,服务器走外网sip2sip
音频质量可以,无明显回音,视频需要下插件,马赛克比imsdroid更严重。
四)Linphone
这个是老牌的sip,支持平台广泛 windows, mac,ios,android,linux,技术会比较成熟。但是据玩过的同事说linphone在Android上的bug有点多,由于其代码实在庞大,所以我暂时放弃考虑Linphone.不过如果谁有跨平台的需要,可以考虑Linphone或者imsdroid和下面的webrtc.。。。好像现在开源软件都跨平台了。。。
五) webrtc
imsdroid,csipsimple,linphone都想法设法调用webrtc的音频技术,本人也测试过Android端的webrtc内网视频通话,效果比较满意。但是要把webrtc做成一个移动端的IM软件的话还有一些路要走,不过webrtc基本技术都已经有了,包括p2p传输,音视频codec,音频处理技术。不过其因为目前仅支持VP8的视频编码格式(QQ也是)想做高清视频通话的要注意了。VP8在移动端的硬件编解码支持的平台没几个(RK可以支持VP8硬件编解码)。不过webrtc代码里看到可以使用外部codec,这个还是有希望调到H264的。
总结:sipdroid比较轻量级,着重基于java开发(音频codec除外),由于其音视频编码以及P2P传输这一块略显不足,不太好做定制化开发和优化。imsdroid,遗憾就是直接调用webrtc的库,而最近webrtc更新的比较频繁,开发比较活跃。如果要自己在imsdroid上更新webrtc担心兼容性问题,希望imsdroid可以直接把需要的webrtc相关源码包进去。csipsimple的话,都是围绕pjsip的,webrtc等都是以pjsip插件形式扩充的,类似gstreamer. webrtc如果有技术实力的开发公司个人还是觉得可以选择这个来做,一个是google的原因,一个是其视频通话相关关键技术都比较成熟的原因。个人觉得如果能做出来,效果会不错的。
转载于:https://www.cnblogs.com/fuland/p/3651300.html
IM比较SipDroid/IMSDroid/CSipsimple/Linphone/Webrtc相关推荐
- 做移动端视频通话软件,大致看了下现有的开源软件(转)
转自:链接 要做一个移动端视频通话软件,大致看了下现有的开源软件 一) sipdroid1)架构sip协议栈使用JAVA实现,音频Codec使用skype的silk(Silk编解码是Skype向第三方 ...
- 智能会议系统(23)---移动端视频通话开源软件比较
最新要做一个移动端视频通话软件,大致看了下现有的开源软件 一) sipdroid 1)架构 sip协议栈使用JAVA实现,音频Codec使用skype的silk(Silk编解码是Skype向第三方开发 ...
- 实时音视频技术(WebRTC/voip/Linphone/P2P)
实时音视频技术(WebRTC/voip/Linphone/P2P) 视频社交与语音社交??? 实时视频(直播)/语音通信.多媒体技术团队在音视频编解码.前后处理.传输等技术: 在语音社交.视 ...
- voip 软电话 csipsimple
目前的软电话到处都是,传统的电话优势越来越小了,从单独的电话功能软件到,语音功能嵌入到一些社交软件中,软电话可以说 是到处开花结果. 开源界也是强大的,有不少优秀的voip的实现.比较有名的是imsd ...
- sip服务器开发--linphone是一款开源的基于sip协议的网络电话软件
Android上最优秀的开源voip(网络电话)软件 目前知道有sipdroid.imsdroid.linphone,不知道还有没有其他的 还有MPhoneGG,使你使用Android手机也能拨打网络 ...
- Android 音频开发(一) 基础入门篇
今天主要讲解下Android音频开发的入门知识,希望对想入门却不知如何下手的朋友有所帮助,同时希望能得到高手的指点和帮助. 深入细化基础技能知识点 大致细化如下10个知识点. 音频开发的主要应用有哪些 ...
- 【音频】音频基础知识
最近开始接触到监控设备中音频相关的工作,主要包括音频数据采集.相关参数设置.环境降噪.回声处理.编码等方面,本文着重就音频相关的基础知识做一个总结. 信噪比SNR:原始信号和内部噪声(经过该设备后产生 ...
- 音频应用(如sip与Voip),编解码API(Ringtone,SoundPool,MediaPlayer),回声消除等(Lame Speex等),OpenSL ES
3套音频播放API:MediaPlayer,SoundPool,AudioTrack. android录音项目,用单例模式集成了record,并实时转码mp3- https://github.com/ ...
- 音视频从入门到精通——FFmpeg之swr_convert音频重采样函数分析
文章目录 音频重采样 swr_alloc函数 swr_alloc_set_opts函数 swr_init函数 swr_convert函数 音频基础 音频开发主要应用有 音频开发具体内容有 音频应用的难 ...
最新文章
- TensorFlow实现多层感知机MINIST分类
- 4g内存 mysql_4G内存 mysql数据库
- 从技术到科学,中国AI向何处去?
- maven jersey mysql_jersey+maven构建restful服务
- php中module,module.php
- Java File类boolean delete()方法(带示例)
- 没有基础怎么学习Web前端?相关学习路线又是什么?
- leetCode 203. Remove Linked List Elements 链表
- python在工程管理专业的应用_工程大数据在水利工程建设管理的应用
- openwrt开发--应用程序IPK包开发
- android post请求时报415错误,post请求传递JSON数据类型(415错误解决)
- 解决VMware虚拟机字体模糊的办法
- 蓝牙芯片解决方案市场规模
- Win10系统安装3dsmax2014常见问题及解决方案
- 掀翻航运业旧模式,区块链成就新篇章
- 网络编程:Reactor与Proactor的概念
- 软件逆向工程学习(一)
- Thinkpad X200 屏幕备案
- 基于java+jsp+ssm水果蔬菜销售系统
- 如何装双系统xp和linux,如何安装xp和linux双系统