做移动端视频通话软件,大致看了下现有的开源软件(转)
生活随笔
收集整理的這篇文章主要介紹了
做移动端视频通话软件,大致看了下现有的开源软件(转)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
轉(zhuǎn)自:鏈接
?
要做一個(gè)移動(dòng)端視頻通話軟件,大致看了下現(xiàn)有的開(kāi)源軟件一) sipdroid
1)架構(gòu)
sip協(xié)議棧使用JAVA實(shí)現(xiàn),音頻Codec使用skype的silk(Silk編解碼是Skype向第三方開(kāi)發(fā)人員和硬件制造商提供免版稅認(rèn)證(RF)的Silk寬帶音頻編碼器)實(shí)現(xiàn)。NAT傳輸支持stun server.
2)優(yōu)缺點(diǎn):
NAT方面只支持STUN,無(wú)ICE框架,如需要完全實(shí)現(xiàn)P2P視頻通話需要實(shí)現(xiàn)符合ICE標(biāo)準(zhǔn)的客戶端,音頻方面沒(méi)看到AEC等技術(shù),視頻方面還不是太完善,目前只看到調(diào)用的是系統(tǒng)自帶的MediaRecorder,并沒(méi)有自己的第三方音視頻編解碼庫(kù)。
3)實(shí)際測(cè)試:
基于sipdroid架構(gòu)的話,我們要做的工作會(huì)比較多,(ICE支持,添加回音消除,NetEQ等gips音頻技術(shù),添加視頻硬件編解碼codec.),所以就不做測(cè)試了。
二) imsdroid
1)架構(gòu):
基于doubango(Doubango 是一個(gè)基于3GPP IMS/RCS 并能用于嵌入式和桌面系統(tǒng)的開(kāi)源框架。該框架使用ANSCI-C編寫,具有很好的可移植性。并且已經(jīng)被設(shè)計(jì)成非常輕便且能有效的工作在低內(nèi)存和低處理能力的嵌入式系統(tǒng)上。蘋果系統(tǒng)上的idoubs功能就是基于此框架編寫) .音視頻編碼格式大部分都支持(H264(video),VP8(video),iLBC(audio),PCMA,PCMU,G722,G729)。NAT支持ICE(stun+turn)
2)效果實(shí)測(cè)
測(cè)試環(huán)境:公司局域網(wǎng)內(nèi)兩臺(tái)機(jī)器互通,服務(wù)器走外網(wǎng)sip2sip
音頻質(zhì)量可以,但是AEC打開(kāi)了還是有點(diǎn)回音(應(yīng)該可以修復(fù))。視頻馬賽克比較嚴(yán)重,延遲1秒左右。
3)優(yōu)缺點(diǎn)
imsdroid目前來(lái)說(shuō)還是算比較全面的,包括音視頻編解碼,傳輸(RTSP,ICE),音頻處理技術(shù)等都有涉獵。doubango使用了webrtc的AEC技術(shù),但是其調(diào)用webrtc部分沒(méi)有開(kāi)源,是用的編譯出來(lái)的webrtc的庫(kù)。如果要改善音頻的話不太方便,Demo的音頻效果可以,視頻效果還是不太理想。
三)csipsimple
1)sip協(xié)議棧用的是pjsip,音視頻編解碼用到的第三方庫(kù)有ffmpeg(video),silk(audio),webrtc.默認(rèn)使用了webrtc的回聲算法。支持ICE協(xié)議。
2)優(yōu)缺點(diǎn):
csipsimple架構(gòu)比較清晰,sip協(xié)議由C實(shí)現(xiàn),java通過(guò)JNI調(diào)用,SIP協(xié)議這一塊會(huì)比較高效。其VOIP各個(gè)功能也都具備,包括NAT傳輸,音視頻編解碼。并且該項(xiàng)目跟進(jìn)新技術(shù)比較快,官方活躍程度也比較高。如果做二次開(kāi)發(fā)可以推薦這個(gè)。
3)實(shí)測(cè)效果
測(cè)試環(huán)境:公司局域網(wǎng)內(nèi)兩臺(tái)機(jī)器互通,服務(wù)器走外網(wǎng)sip2sip
音頻質(zhì)量可以,無(wú)明顯回音,視頻需要下插件,馬賽克比imsdroid更嚴(yán)重。
四)Linphone
這個(gè)是老牌的sip,支持平臺(tái)廣泛 windows, mac,ios,android,linux,技術(shù)會(huì)比較成熟。但是據(jù)玩過(guò)的同事說(shuō)linphone在Android上的bug有點(diǎn)多,由于其代碼實(shí)在龐大,所以我暫時(shí)放棄考慮Linphone.不過(guò)如果誰(shuí)有跨平臺(tái)的需要,可以考慮Linphone或者imsdroid和下面的webrtc.。。。好像現(xiàn)在開(kāi)源軟件都跨平臺(tái)了。。。
五) webrtc
imsdroid,csipsimple,linphone都想法設(shè)法調(diào)用webrtc的音頻技術(shù),本人也測(cè)試過(guò)Android端的webrtc內(nèi)網(wǎng)視頻通話,效果比較滿意。但是要把webrtc做成一個(gè)移動(dòng)端的IM軟件的話還有一些路要走,不過(guò)webrtc基本技術(shù)都已經(jīng)有了,包括p2p傳輸,音視頻codec,音頻處理技術(shù)。不過(guò)其因?yàn)槟壳皟H支持VP8的視頻編碼格式(QQ也是)想做高清視頻通話的要注意了。VP8在移動(dòng)端的硬件編解碼支持的平臺(tái)沒(méi)幾個(gè)(RK可以支持VP8硬件編解碼)。不過(guò)webrtc代碼里看到可以使用外部codec,這個(gè)還是有希望調(diào)到H264的。
總結(jié):sipdroid比較輕量級(jí),著重基于java開(kāi)發(fā)(音頻codec除外),由于其音視頻編碼以及P2P傳輸這一塊略顯不足,不太好做定制化開(kāi)發(fā)和優(yōu)化。imsdroid,遺憾就是直接調(diào)用webrtc的庫(kù),而最近webrtc更新的比較頻繁,開(kāi)發(fā)比較活躍。如果要自己在imsdroid上更新webrtc擔(dān)心兼容性問(wèn)題,希望imsdroid可以直接把需要的webrtc相關(guān)源碼包進(jìn)去。csipsimple的話,都是圍繞pjsip的,webrtc等都是以pjsip插件形式擴(kuò)充的,類似gstreamer. webrtc如果有技術(shù)實(shí)力的開(kāi)發(fā)公司個(gè)人還是覺(jué)得可以選擇這個(gè)來(lái)做,一個(gè)是google的原因,一個(gè)是其視頻通話相關(guān)關(guān)鍵技術(shù)都比較成熟的原因。個(gè)人覺(jué)得如果能做出來(lái),效果會(huì)不錯(cuò)的。
轉(zhuǎn)載于:https://www.cnblogs.com/YangBinChina/p/4308025.html
總結(jié)
以上是生活随笔為你收集整理的做移动端视频通话软件,大致看了下现有的开源软件(转)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 快速对比UART、SPI、I2C通信的区
- 下一篇: 算法图解第四章笔记与习题(快速排序)