The latest to do a mobile video call software, a general view of the existing open source software
A) sipdroid
1) architecture
The SIP stack is implemented using Java, and audio codec is implemented using Skype for silk (silk codec is a silk wideband audio encoder that Skype provides royalty-free authentication (RF) to third-party developers and hardware manufacturers. NAT transport supports stun server.
2) Advantages and disadvantages:
NAT is only supported stun, no ice frame, such as the need to fully implement the video call to meet the ICE standard client, audio aspects of the AEC and other technologies, the video is not too perfect, the current only to see the system comes with the Mediarecorder, And does not own the third dialect video codec library.
3) Actual test:
Based on the sipdroid architecture, we will do more work, (ICE support, add echo cancellation, Neteq and other gips audio technology, add video hardware codec codec.), so do not test.
II) imsdroid
1) Architecture:
Based on Doubango (Doubango is an open-source framework based on 3GPP Ims/rcs and can be used in embedded and desktop systems. The framework is written using ansci-c and is very portable. and has been designed to be very lightweight and effective in embedded systems with low memory and low processing power. The Idoubs feature on the Apple system is based on this framework. Most of the audio and video encoding formats are supported (H264 (VIDEO), VP8 (video), ILBC (audio), pcma,pcmu,g722,g729). NAT supports Ice (Stun+turn)
2) Effect measurement
Test environment: Two machines in the company's local area network, the server goes outside the network Sip2sip
Audio quality is possible, but the AEC is open or a bit of an echo (should be repaired). Video mosaic More serious, delay of about 1 seconds.
3) Advantages and disadvantages
Imsdroid At present is still relatively comprehensive, including audio and video codec, transmission (rtsp,ice), audio processing technology and so on. Doubango uses WEBRTC's AEC technology, but its call to WEBRTC part does not open source, is the compiled WEBRTC library. If you want to improve the audio is not very convenient, the audio effect of the demo can be, the video effect is still not ideal.
III) csipsimple
1) SIP stack is used Pjsip, audio and video codec used in the third-party library has ffmpeg (video), silk (audio), WebRTC. The WEBRTC echo algorithm is used by default. supports the ICE protocol.
2) Advantages and disadvantages:
The Csipsimple architecture is clear, the SIP protocol is implemented by C, and Java is called by JNI, and the SIP protocol is more efficient. All of its VoIP functions are also available, including NAT transmission, audio and video codec. And the project to follow up the new technology is relatively fast, the official activity is also relatively high. This can be recommended if you do two times development.
3) Measured results
Test environment: Two machines in the company's local area network, the server goes outside the network Sip2sip
Audio quality can, no obvious echo, video needs the next plug-in, mosaic than imsdroid more serious.
IV) Linphone
This is a veteran SIP, support platform wide windows, Mac,ios,android,linux, technology will be more mature. But according to colleagues who have played, Linphone on the Android bug a bit more, because its code is huge, so I temporarily give up to consider linphone. But if anyone has cross-platform needs, consider Linphone or imsdroid and the WEBRTC below .... It seems that open source software is now cross-platform ...
V) WEBRTC
Imsdroid,csipsimple,linphone all ideas to try to call WEBRTC audio technology, I also tested the Android WEBRTC intranet Video Call, the effect is quite satisfactory. But to make WEBRTC into a mobile IM software, there are still some way to go, but WEBRTC basic technology has been, including peer-to transmission, AV codec, audio processing technology. But because currently only support VP8 video encoding format (QQ is also) want to do high-definition video calls to pay attention to. VP8 Hardware codec support on the mobile side of the platform few (RK can support VP8 hardware codec). But the WEBRTC code see can use the external codec, this still has the hope to tune to H264.
Summary: Sipdroid is relatively lightweight, focused on Java development (except audio codec), because of its audio and video coding and peer-to transmission this piece is not very good to do custom development and optimization. Imsdroid, regret is directly call WebRTC Library, and recently WEBRTC update more frequent, development more active. If you want to update the imsdroid on the WEBRTC worry about compatibility issues, I hope imsdroid can directly put the WEBRTC related source package needs to go in. Csipsimple words, are all around Pjsip, WEBRTC and so are to PJSIP plug-in form of expansion, similar to GStreamer. WebRTC If there is a technical strength of the development company personally still feel that can choose to do, one is Google's reason, one is the video call related key technologies are more mature reasons. Personally feel that if can make, the effect will be good.
Reprinted from: http://www.eoeandroid.com/thread-301029-1-1.html
CSIPSIMPLE,LINPHONE,WEBRTC comparison