延伸:场景化音视频录制
在使用WebRTC进行音视频通信时,往往会有将整个过程录制下来归档回看的需求。目前针对这类需求提供了一系列的实时云录制的技术,所谓实时录制即保证录制的工作是与通信同时进行,当音视频对话结束时便可回看。云录制则意味着该录制实际发生在服务器端而非客户端,大大增强了稳定性。下面针对不同场景,提供了丰富可选的云录制产品:
会议录制场景
视频会议、语音会议是WebRTC的典型场景。在必要时,会议中的某个参与者发起录制请求,此时会议中所有参与者的音视频将被录制。根据用户预定义的布局,与会者视频将被展示在合成的画布中。通过API,用户可以轻松获取到最终的mp4录制文件进行回看。该方式不仅支持语音、摄像头图像的录制,也支持诸如屏幕共享等展示性的内容录制。
互动网页录制场景
在Web领域中,丰富的多媒体及3D展示成为了近两年炙手可热的技术。在互动娱乐、互动教育、互动医疗等领域,Web提供了不仅仅是语音图像通信的内容,更有基于H5元素的动画、白板、3D WebGL渲染等富媒体内容。基于Web技术的页面录制将浏览器的渲染技术搬运到服务端,提供了云录制的可能。并将制定网页的内容录制为回放文件,大大提高了内容的观赏性,还丰富了各类不同复杂场景的录制需求。
探索:WebRTC NV的探索
WebRTC-NV有四大类:
- WebRTC对等连接的扩展,具体包括WebRTC扩展、WebRTC-SVC和可插入流。要注意的是,网络实时传输中心建议和所有依赖于实时传输中心连接的工作都需要RTCPeerConnection.UnifiedPlan,这是所有浏览器中默认的SDP语言。如果不首先支持UnifiedPlan,就不可能利用可插入流在您的应用程序中支持端到端加密。
CT Way: insertable stream初探 (h264 parser)和 VP9.SVC的调研
目前h264 parser在云游戏服务下已经上线,提供了H264的SEI自带信息的解析等功能。WebRTC VP9-SVC已经调研,主要关注限速时的主观体验,尤其是多人音视频场景下行限速的能力下限是否提升。相比VP8,VP9在压缩效率上也有所提高,最终可以呈现出更高的质量。
- 涉及不符合WebRTC-PC建议中所包含的实施或成熟度要求的功能,如WebRTC Identity、WebRTC Priority Control和WebRTC DSCP。
CT Way: DSCP API的初探 + Wireless Edge Network(路由器加速)Proj的初步验证
目前已经预埋该功能,DSCP可用于标记WebRTC数据,将其与网络中其他数据区分开,即可在拥塞时传出WebRTC数据包的优先级。而Wireless Edge Network则是充分发挥DSCP在QoS的作用,做到弱网下选择性优先转发,保障通话质量。
- Capture的扩展,如MediaStreamTrack可插入流,Media Capture和Streams扩展以及MediaCapture深度流扩展。
CT Way:
Depth Camera -> 采集深度信息,可以三维建模,AR / VR实时互动
开发者们逐渐认识到AR / VR 技术并非孤岛。我们已经尝试在社交互动环节中加入AR / VR等实时互动功能,以提高用户们体验的趣味性。
- 独立规范:它不一定依赖于RTCPeerConnection或现有的Media Capture规范。WebRTC-ICE(目前已经作为独立的规范实现)属于这一类,W3C WebRTC工作组之外开发的API规范也属于这一类,如WebTransport(W3C WebTransport工作组)、WebRTC-QUIC(ORTC工作组)和WebCodecades(WICG工作组)。
CT Way: 已经调研并在Canary上实验了Webtransport + WebCodecs:
Webtransport 允许在浏览器和服务器之间发送和接收数据,并在顶部使用常见 API 来实现其下的可插拔协议,尤其是基于QUIC的情况。该 API 与 WebSocket 相似,同样也是客户端和服务器的双向连接,但允许进一步减少客户端和服务器之间的网络通信延迟,并且还支持多个流、单向流、乱序和不可靠传输。使用场景包括使用不可靠且乱序的消息向服务器重复发送低延迟的游戏状态、从服务器到客户端的媒体片段的低延迟传输以及大多数逻辑在服务器上运行的云场景。
WebCodecs:用于访问编码帧内部,可使浏览器端做MoS分算法对齐Native相对简单。