开源实时音视频技术WebRTC的文章,进展缓慢的Spark工程

by admin on 2020年2月15日

摘要XMPP开源IM客户端Spark近日发布了2.7.7版发布版,该版本也是Spark工程重新启动1周年纪念版。进展缓慢的Spark工程,如能重启再次活跃起来,对IM开发者来说,将是个好消息。前言XMPP开源IM客户端Spark近日发布了2.7.7版发布版,该版本也是Spark工程重新启动1周年纪念版。进展缓慢的Spark工程,如能重启再次活跃起来,对IM开发者和即时通讯学习者来说,将是个好消息。Spark是一个开源、跨平台IM客户端(支持Linux、windows、Mac
OS
X平台)。它的特性支持集组聊天,电话集成和强大安全性能。如果企业内部部署IM使用Openfire+Spark是最佳的组合。官方的说明原文This
is another minor release marking exactly one year since Spark project
reboot (yeah, we also like to have Anniversary Update).There are a few
small fixes and updates in this release (as a regression with Idle
presence, fix for OTR plugin, etc.).I want to use this chance to look
back at the last year. Spark had 7 more releases since the 2.7.0 during
that time. 100 tickets have been resolved. Some old patches have been
applied (laying around in the forums and the tracker for years).We have
also received new patches from around 10 new contributors. Which is
great!We see that Spark project is often forked on GitHub, so we hope
more developers will forward their patches and new features to the main
project. There is also an official Wikipedia page for Spark now (and
additional 6 languages linked to it) in hope to increase awareness of
this project.2.7.7 版更新内容Bug[SPARK-1597] – UNC links in
file://\ format should work in the chat window[SPARK-1660] –
Should not fallback to direct connection when proxy is
enabled[SPARK-1695] – Windows installer is including linux lib
folder[SPARK-1717] – Failing dependencies when installing RPM
version[SPARK-1721] – Fix a typo in Network Address Manager in SIP
plugin[SPARK-1724] – OTR plugin not working after bouncy castle lib
update[SPARK-1726] – Spark is setting negative priority when switching
to IdleNew Feature[SPARK-1720] – Add option to disable Incoming Call
notification popupTask[SPARK-1687] – Update bundled JRE with the
latest versionImprovement[SPARK-1716] – Fix alignment of fields on
Business card in Profile[SPARK-1718] – Remove old java from RPM
installation[SPARK-1723] – Update of German translation[SPARK-1727]

摘要在移动互联网飞速发展的今天,各种应用都渴望加入RTC的功能,实现用户与企业,用户与用户之间的实时音视频交流。于是问题出现了,开发一个RTC系统需要什么技术储备?概述  实时通讯系统,RTC(real
time
communication),是最近互联网应用的一个新领域。RTC系统的应用极其广泛,我们常见的视频电话,会议系统,远程桌面与控制都是RTC系统的一个应用。在移动互联网飞速发展的今天,各种应用都渴望加入RTC的功能,实现用户与企业,用户与用户之间的音视频交流。于是问题出现了,开发一个RTC系统需要什么技术储备?  有人说只需要懂javascript就可以了。WebRTC的出现极大的降低了RTC的开发门槛。只需要编写javascript代码就可以实现浏览器之间的音视频通话。且不论通话质量,浏览器的兼容性,网络穿透能力,那些不使用HTML的原生APP怎么办?  又有人提出WebRTC也支持Native开发,只要有懂C++和相关应用平台(Android,iOS,Windows,Mac)开发的软件工程师就可以了。WebRTC确实可以在这些平台上开发原生的应用。将WebRTC编译打包后嵌入APP可以实现RTC的功能,就是说能通了。但一个合格的RTC系统仅仅是能通就可以了吗?  以音视频通话为例,用户期望的RTC应用应该是:通话不卡不掉低延时,声音清晰真实无回声,画面流畅清晰无卡顿。如果直接采用上面WebRTC集成,我们很容易发现,在大多数情况下,通话并不像原来想象的那样完美。由于网络的原因,通话断断续续,延时很大。由于终端的适配不好,语音通话回声严重,噪声严重影响体验。视频不清楚,不流畅。  RTC系统的每一个部分都需要优化,需要打磨,才能打造出完美的用户体验。现在的问题是,开发一个优秀的RTC系统需要具备哪些技术储备呢?终端  解决语音通话的问题,首先需要有合适的语音编解码器,然后需要调整音频处理模块的算法。这里面内容比较广,有噪声消除,回声抑制,自动增益。比较前沿的还有多麦克风降噪,盲扩增强等等。总之这些都需要算法的储备,涉及语音信号处理、统计信号处理等方面的内容。  有了算法还不够,还需要有好的实现。各个平台(Android,iOS,Windows,Mac)底层音频系统也需要深入了解。有时候算法挺好的,但有些机器先天不足,比较特别,需要特殊处理。这需要投入许多人力物力对各种型号的硬件做适配。优秀的系统可能需要适配几百上千个不同的设备。  同样的,对于视频,我们需要对视频编解码器有深入的了解。这样才能用最低的码率展示清晰的视频画面。视频的前后处理,比如降噪,增强(包括流行的美颜)也少不了。这就需要图像与视频信号处理。视频数据量比较大,对底层视频设备也需要深入研究。适配也少不了。网络  说完了终端,再说说网络。网络抗丢包是必备选项。互联网不是一个可靠的实时音视频传输网络。在不可靠的网络中实现可靠的音视频传输考验系统设计的能力。这里既有信道编码的理论也有网络对抗的实际经验。  如果要实现可靠的云服务,遍布全球的服务器网络也必不可少。高可用性,负载均衡等等…  现在我们知道开发一个RTC系统需要什么技术了。这个系统涉及到几乎所有的网络与音视频处理的理论与实践。作者简介  郑仲侯,声网Agora.io音视频构架师。硕士毕业于上海交通大学电子工程系,信号处理专业。先后在National
Instruments,SRS,DTS工作十余年。专注信号处理算法与实践,加入Agora后从事音视频引擎的开发,持有双麦降噪专利。

摘要作为Google开源的技术,WebRTC并不是一个可以拿来就用并且性能很好的产品,而且正如众多的其它开源技术一样,WebRTC的发展并没有期待中的快。前言随着移动互联网和智能硬件的快速发展,音视频技术从独立应用普及到了嵌入式应用中,不管是智能硬件、手机应用或是Web程序中的许多模块都越来越依赖于音视频技术。2011年Google将WebRTC项目开源,让许多开发者眼前一亮,忍不住的加入了研究WebRTC的队伍中。他们大多数都认为WebRTC是Google公司的开源项目,肯定是拿来就用,而且效果还能很不错,想着开发高大上的音视频功能由此会变得so
easy。但是!WebRTC的开发真的是Google送到嘴边的免费午餐吗?下面来介绍一下WebRTC自身发展的现状,以及目前开发WebRTC的现状。目前的进展WebRTC在被Google开源之前,其价值就已经得到了充分的认可,比如QQ就使用了WebRTC的部分技术。WebRTC的发展情况可以从标准规范和浏览器支持这两个方面看。WebRTC标准是由W3C和IETF所联合制定的,在2016年1月28日,W3C公布了最新的WebRTC标准,标准中定义了WebIDL中一系列的ECMAScript
API来允许使用合适的RTP的浏览器或设备来接收/发送媒体,详细内容可以访问
Chrome浏览器、Firefox浏览器和Opera 20浏览器,但是IE浏览器及Apple
Safari浏览器还未支持WebRTC技术。对于开发者而言,WebRTC仍旧高不可攀登WebRTC的开发现状其实并不像大多数人所想象的那么简单,人们普遍的认为WebRTC的代码是开源的所以花很少的时间就能将其集成到项目中去,并且Google这么大的公司的产品质量一定没问题。但是在项目进行中,大家都会发现,WebRTC并不是一块Google白送到面前的肉。首先,编译WebRTC的源码就是一个比较大的挑战,搭建其复杂的编译环境往往会遇到很多意想不到的问题,导致当初计划用几个星期的时间来搞定项目,却发现这几个星期连编译都没搞定。还有,WebRTC中很多的参数都是由GIPS公司的工程师们依靠经验所设定的值,这就会出现卡顿、延时、回声、丢包、多人视频不稳定等问题,并且由于公网的稳定性或机型适配等外在因素,以上问题在项目上线后会更加严重。总而言之,WebRTC虽然提供了一套音视频实时通讯的解决方案,但是在实际应用中,由于网络传输、设备适配以及多方通话上都存在很多问题,效果并不理想。可见WebRTC的开发并不像大部分人想象的那样容易。在自己开发WebRTC之外,目前在市场上有很多第三方的音视频SDK可供选择,比如声网、腾讯、Intel、天翼RTC、网易云信、环信、融云、anychat等等,虽然这么多厂商提供的服务都大同小异,但他们的技术架构可能完全不同,比如天翼RTC是WebRTC
SDK,腾讯是Native
SDK。给开发者的建议由于WebRTC的复杂性和尚未完善性,下面的这些建议结合自己的实际参考:1、音视频不是公司的核心方向,建议使用第三方SDK。2、项目时间紧,有多人视频场景,使用场景依赖于手机端,建议使用第三方SDK。3、公司没人音视频技术人才,建议使用第三方SDK或者技术外包。4、如果公司实力、财力、人力雄厚,时间也不紧急,可考虑WebRTC集成开发,虽然会有很多坑,但总是能填平的。5、如果音视频技术是公司的核心方向,但不想花太多时间去研究WebRTC,可直接找熟悉WebRTC的人来培训。6、项目时间不紧急、没有多人视频需求且音视频质量要求不高,可考虑WebRTC集成开发。附录:更多实时音视频技术文章[1]
开源实时音视频技术WebRTC的文章:《开源实时音视频技术WebRTC的现状》《简述开源实时音视频技术WebRTC的优缺点》《访谈WebRTC标准之父:WebRTC的过去、现在和未来》《良心分享:WebRTC
零基础开发者教程(中文)[附件下载]》《WebRTC实时音视频技术的整体架构介绍》《新手入门:到底什么是WebRTC服务器,以及它是如何联接通话的?》《WebRTC实时音视频技术基础:基本架构和协议栈》《浅谈开发实时视频直播平台的技术要点》《[观点]
WebRTC应该选择H.264视频编码的四大理由》《基于开源WebRTC开发实时音视频靠谱吗?第3方SDK有哪些?》《开源实时音视频技术WebRTC中RTP/RTCP数据传输协议的应用》《简述实时音视频聊天中端到端加密(E2EE)的工作原理》《实时通信RTC技术栈之:视频编解码》《开源实时音视频技术WebRTC在Windows下的简明编译教程》《网页端实时音视频技术WebRTC:看起来很美,但离生产应用还有多少坑要填?》>>更多同类文章
……[2]
实时音视频开发的其它精华资料:《专访微信视频技术负责人:微信实时视频聊天技术的演进》《即时通讯音视频开发(一):视频编解码之理论概述》《即时通讯音视频开发(二):视频编解码之数字视频介绍》《即时通讯音视频开发(三):视频编解码之编码基础》《即时通讯音视频开发(四):视频编解码之预测技术介绍》《即时通讯音视频开发(五):认识主流视频编码技术H.264》《即时通讯音视频开发(六):如何开始音频编解码技术的学习》《即时通讯音视频开发(七):音频基础及编码原理入门》《即时通讯音视频开发(八):常见的实时语音通讯编码标准》《即时通讯音视频开发(九):实时语音通讯的回音及回音消除概述》《即时通讯音视频开发(十):实时语音通讯的回音消除技术详解》《即时通讯音视频开发(十一):实时语音通讯丢包补偿技术详解》《即时通讯音视频开发(十二):多人实时音视频聊天架构探讨》《即时通讯音视频开发(十三):实时视频编码H.264的特点与优势》《即时通讯音视频开发(十四):实时音视频数据传输协议介绍》《即时通讯音视频开发(十五):聊聊P2P与实时音视频的应用情况》《即时通讯音视频开发(十六):移动端实时音视频开发的几个建议》《即时通讯音视频开发(十七):视频编码H.264、VP8的前世今生》《实时语音聊天中的音频处理与编码压缩技术简述》《网易视频云技术分享:音频处理与压缩技术快速入门》《学习RFC3550:RTP/RTCP实时传输协议基础知识》《基于RTMP数据传输协议的实时流媒体技术研究(论文全文)》《声网架构师谈实时音视频云的实现难点(视频采访)》《浅谈开发实时视频直播平台的技术要点》《还在靠“喂喂喂”测试实时语音通话质量?本文教你科学的评测方法!》《实现延迟低于500毫秒的1080P实时音视频直播的实践分享》《移动端实时视频直播技术实践:如何做到实时秒开、流畅不卡》《如何用最简单的方法测试你的实时音视频方案》《技术揭秘:支持百万级粉丝互动的Facebook实时视频直播》《简述实时音视频聊天中端到端加密(E2EE)的工作原理》《移动端实时音视频直播技术详解(一):开篇》《移动端实时音视频直播技术详解(二):采集》《移动端实时音视频直播技术详解(三):处理》《移动端实时音视频直播技术详解(四):编码和封装》《移动端实时音视频直播技术详解(五):推流和传输》《移动端实时音视频直播技术详解(六):延迟优化》《理论联系实际:实现一个简单地基于HTML5的实时视频直播》《IM实时音视频聊天时的回声消除技术详解》《浅谈实时音视频直播中直接影响用户体验的几项关键技术指标》

  • Fix and update Lithuanian
    translation更多版本更新记录,请参见:

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图