分辨率调整,回音消除都是有的。推荐即构科技,产品可选:实时音视频、实时语音、互动直播、IM即时通讯。【点击免费试用,0成本启动】
分辨率的动态调整在webrtc中(包括chrome中)是在网络出现抖动,经过预测,判断出网络状态不好而进行的自动调整。比如,一开始是720P的,经过一段时间的侦测,判断为网络状态不好了,就会按照算法,降低通信的分辨率(同时发生的,还会降低相应的framerate)。分辨率的调整是应对网络情况的,这个在webrtc中是自适应的。如果是由于你的业务逻辑要考虑分辨率的调整,只从js层面去做,应该是要重新建立peerconnection,再升高或降低分辨率。
想要了解更多关于这方面的相关信息,推荐咨询ZEGO即构科技。ZEGO即构科技是一家全球云通讯服务商,专注自研音视频引擎,服务覆盖全球,链接 5 亿终端用户。ZEGO即构科技覆盖212个国家/地区,全球用户体验毫秒级互动,日均通话时长达30亿分钟,跻身云通讯行业头部,全方位行业解决方案,满足百余个业务场景需要,服务客户4000家,70%泛娱乐/在线教育客户的选择。
1、还是必须要经过中转服务器对媒体流进行处理,能不能在web段进行处理呢?
我假设你所说的对媒体流进行处理指的是“实现分辨率动态调整,回音消除”,那么我的答案是不能在web端进行处理,必须去中转服务器做。我原来在看WebRTC的API文档的时候,Chrome给的API还非常简单,真的是非常非常简单。基本上除了基本的媒体流捕获、链接建立、媒体流传输之外,就没什么别的接口了。客户端回声消除可以做,我不知道是怎么做的,起码我当时没有看到相关的API接口。我猜他说的是 Audio API吧,那套API确实有很强的音频处理能力,但是,WebRTC获取音频的API和Audio API完全没有任何关系,WebRTC并不能把Audio API的输出作为输入,所以我认为是不能做客户端回声消除的。
2、如果有中转服务器,可以对媒体流进行二次处理吗?比如二次编码,自适应编码?
可以。但是,你要注意Chrome本身支持哪些编码方式,显然并不是所有的编码方式他都支持。
3、视频传输机制,chrome有没有做?还是传输方面,服务器端还要进行优化?
从我之前做的案子的经验来看,Chrome在传输这块做得还是不错的,带宽的使用量并不是很大。当然,这个主要还是和视频的分辨率,质量,编码方式相关。传输需不需要优化,这个我建议你还是先自己搭个环境试试。我之前的案子的使用环境是高带宽(10M以上),低延迟的网络环境,如果你要把这个技术用在移动互联网上,可能还是会有些东西需要研究。