黄开宁:搞多媒体开发要掌握好信号处理、统计和数理分析

2021-09-01 10:04:18 浏览数 (2)

尽管有WebRTC和FFmpeg这样的超级工具,但多媒体开发的核心难点的难度并没有因此降低,这需要开发者掌握牢固的基础知识。LiveVideoStack专访了即构科技音视频技术资深架构师黄开宁,他对学习多媒体开发给出了十分可观的评估。并对WebRTC的前景以及行业热点给出了自己的分析。在5月19-20日举行的WebRTCon 2018上,黄开宁会分享即构科技在WebRTC服务端开发方面的探索。

策划 / LiveVideoStack

LiveVideoStack:能否简要介绍下自己,包括目前的主要工作及关注领域?

黄开宁:目前在即构从事实时音视频引擎开发和WebRTC-Gateway开发;主要关注传输优化、智能路由和高性能服务器等领域。

LiveVideoStack:从IVR、视频会议到直播,十年来一直在多媒体通信领域,是顺利自然的发展,还是有意而为之呢?

黄开宁:是自然的发展,也是有意为之。

一是由于市场的发展,让我们做技术的也需要跟随热点去选择技术方向。其次,在从事IVR行业时主要工作是语音处理以及通信技术,当时觉得传输技术神秘又高深,为了一探究竟然后就被它慢慢“吸”了进来;当时的网络条件下,传输是视频会议的难题之一,所以我认为进入视频会议将会是学好传输技术的一个绝好机会。再后来,直播行业迅速发展,用户分布在不同地区和国家,视音频传输要适应在不同的网络环境下达到低延迟、高并发和高可用性的特性,特别是互动直播比起视频会议的技术难度会更高,所以选择去了有亿万级直播用户的YY;在音视频领域爬模打滚将近10年后,意识到音视频将会成为像水电一样的基础设施,要将视音频云做成一种基础设施那将会更富有挑战性和意义,这也是我现在在即构工作的一大原因;在这个领域填了一些坑,也挖了很多坑,为了将这些坑填上,那只有选择一路“坑”下去了。

LiveVideoStack:回顾过去这10多年,多媒体技术不断迭代,公司起起落落,可以用哪些技术或其他关键词来总结呢?

黄开宁:

  • 封闭->开放
  • 私有云->公有云
  • 企业应用->个人应用
  • 单向直播->互动直播
  • 标清->高清->超高清

LiveVideoStack:学习多媒体开发的技术人普遍的感触是“门槛很高,学好更难”。但有过多年多媒体开发经验的“老鸟”却认为,现在学习多媒体开发和10年前比容易太多了。果真如此吗?对于学习多媒体开发,你有哪些学习建议?有哪些文档、图书、资料推荐?

黄开宁:由于这些年比如直播、短视频和实时互动语音等多媒体应用发展迅速,有了大量实践的机会,同时开源社区和技术问答网站也非常活跃,还有像LiveVideoStack这次举办的WebRTC大会这种类型的分享大会和沙龙也越来越多,大家可以从更多渠道去获取到技术相关的咨询和经验,所以入门确实比较容易了,但一些关键的核心技术,依然是“门槛很高,学好更难”,所以我认为“容易”是相对的。举个例子: 语音处理(AEC/NS/VAD/AGC)是大家认为最难的技术之一,Google在2011年就开源了WebRTC项目,里面就包含了这些语音处理的实现,按理我们可以直接拿来用或者研究优化,但事实是直到到今天,能很好解决回音消除的团队或者公司其实都非常少,如果不能很好解决掉这些问题,是无法开发出优秀的实时互动类的应用的。

而且现在的应用场景越来越广,受众也从区域到全球化,用户期望有更多的有趣的玩法, 迭代周期也在缩短,促使我们在技术方面要不断的创新和突破,这同样是件非常难的事。

关于学习建议,不同方向的学习路径可能不太一样,而且现在技术发展速度非常快,所以我认为只有扎实的基本功才能以不变应万变,多媒体技术主要涉及图形图像处理、语音处理和网络传输,而这些技术又主要是信号处理、统计和数理分析相关,所以学好这些基本功才能有机会去解决那些“核心技术”。其次,现在有很多优秀的开源项目,比如WebRTC、FFmpeg和OBS等等,可以通过阅读和分析源码来提高自己的技术。

LiveVideoStack:在你的自我介绍中提到,2012年起开始对WebRTC技术进行研究和应用。是什么样的原因促使你对WebRTC做研究?

黄开宁:当时我们公司只有PC端和硬件终端的视频会议产品,智能手机(iPhone/Android)已越来越普及,所以公司决定推出移动端APP并让我负责组建团队,公司本身没有移动端开发人员储备,在市场上熟悉移动端开发又精通实时音视频技术的开发人员也招聘不到,所以我们只能从零开始学习和开发。刚好Google在2011年开源了WebRTC项目,这个项目有我们最需要学习和借鉴的2项技术: 跨平台和移动端语音处理(AECM),当时我就把WebRTC里的音视频采集播放模块和一些语音处理模块提取出来用到了我们的项目中,并进行了一些优化,这样我们大概只用了半年时间就成功推出了Android和iOS端的产品。

由于我一直从事音视频引擎开发,WebRTC项目里面的模块都是我平时工作相关和研究的内容,比如它的AudioProcessing、NetEQ、JitterBuffer和BWE等模块都是非常值得研究学习的技术;同时我也认为在浏览器原生支持实时音视频能力是一件非常cool的事,而且一定会成为一种趋势,所以这些年也一直持续关注WebRTC进行研究学习。

LiveVideoStack:WebRTC在2017年底完成了1.0版定稿,这对WebRTC的生态意味着什么?你认为有WebRTC功能与成熟度还存在哪些不足?

黄开宁:早期WebRTC可以说只是Google的一个开源项目,或者说是Chrome一个实时音视频能力的插件;现在我们说的WebRTC是一个通讯标准,1.0版定稿则表明得到了广大厂商的支持认可,也将会从实验阶段走向应用阶段;从Edge到Safari支持WebRTC,就可以预见将来会有更多的浏览器厂商支持WebRTC;既然它是个标准,那说明任何厂商都可以支持它,只要遵循标准就能和其他应用进行互联互通。

WebRTC的不足主要体现在以下几点:

  1. 虽然现在Chrome、Firefox、Opera、Edge和Safari都支持了WebRTC,但各自的实现却有不同, 所以也会有兼容性问题;
  2. 由于不同硬件和系统组合非常多,也会造成音视频采集播放设备兼容性问题;
  3. 接口还不够开放,WebRTC原本是用于点对点,或者多方实时通话的技术,现在用户也希望能用于直播等有娱乐性的应用开发,比如增加音视频前处理(美颜、特效、混响)等功能;
  4. 没有一个成熟的WebRTC服务器或者Gateway(媒体方面)。

LiveVideoStack:展望未来1-2年,除了教育、直播,你看好WebRTC哪些应用场景?

黄开宁:现在几乎所有操作系统都安装了浏览器,这样用户就可以随时随地通过WebRTC来进行音视频通信,而并不需要预先安装一个特定的APP,所以我认为跟这种需求比较接近的场景会先得到应用,比如客服系统和远程救援等。

LiveVideoStack:能否介绍下你和你的团队在WebRTC的研发方向?

黄开宁:当前我们团队在自研一套通用的WebRTC-Gateway系统,用于和我们现有的协议对接,这些协议包括即构的私有媒体协议和RTMP等标准协议,这样可以帮助用户和现有系统进行互联互通。其次将WebRTC-Gateway网关接入到我们即构全球分发调度和智能路由系统,满足用户低延时、高可用性和大规模实时分发的需求。

LiveVideoStack:现在开始学习WebRTC,是个好时机吗?

黄开宁:1.0标准的定稿、Edge和Safari支持WebRTC,厂商对WebRTC的支持也越来越完善,说明这个趋势开始从潜伏期转向成长期,所以说现在是开始学习WebRTC的最好时机。

LiveVideoStack:展望2018年,你认为哪些技术将成为音视频领域的热门?

黄开宁:当前音视频应用已非常普及,同时用户也对这些应用体验有更多期待。应用开发厂商会借助深度机器学习在图形图形处理和声音处理等领域进行新的尝试和突破,做出各种新奇的特效满足用户需求。最后,VR也将迎来2.0时代,相信VR直播也将迎来新的机遇。

LiveVideoStack:新的Codec(AV1、HEVC),5G网络以及4K视频普及,对WebRTC而言有哪些机会和挑战?

黄开宁:就机会而言,由于HEVC的专利结构复杂,导致费用高,以及复杂的算法等因素让解码端异常吃力,所以我认为在浏览器端短期内不太可能支持HEVC;AV1的1.0版也已定稿,它是开源和完全免费的,而且像Google、微软和Mozlla等浏览器厂商,以及Intel、AMD和NVIDIA等硬件厂商都参与其中,所以我认为它更可能会在浏览器中使用,这样高清以及超高清的应用也能通过WebRTC来实现。

5G网络的普及很可能会带来音视频应用的再一次爆发,这样会有大量应用居于WebRTC来实现,可能会促使WebRTC进入一个快速发展时期。

挑战方面,由于Codec是需要各个浏览器支持后才能互通的,现在各个厂商都有自己的实现和一些利益考虑,所以能否同时支持和支持的友好程度也将是一大挑战;4K超高清则表示需要更高的分辨率、更高的码率和帧率,当前的实现是否能支持也是个考验。

0 人点赞