haizlin/fe-interview

[js] 第125天 你有用过webRTC吗?它有什么运用场景?

Opened this issue · 3 comments

第125天 你有用过webRTC吗?它有什么运用场景?

WebRTC代表“Web实时通信”。这基本上允许在浏览器中进行语音、视频聊天和P2P共享(实时通信)
实际应用的要求来源https://www.zhihu.com/question/25497090/answer/43395462
用WebRTC来做视频直播
一个实现了WebRTC相关协议的客户端。比如Chrome浏览器
架设一个类似MCU系统的服务器
第一步,直播的客户端,比如Chrome浏览器,通过WebRTC相关的媒体API获取图像及声音信源,再用WebRTC中的通信API将图像和声音数据发送到MCU服务器。
第二步,MCU服务器根据需求对图像和声音数据进行必要的处理,比如压缩、混音等。
第三步,需要看直播的用户,通过他们的Chrome浏览器,链接上MCU服务器,并收取服务器转发来的图像和声音流。
入门https://zhuanlan.zhihu.com/p/59520779

重点在于 WebRTC 相关的媒体 API,比如有名的 avigator.getUserMedia
撇开各浏览器间上的兼容问题,打开摄像头和麦克风后拿到流数据,很多种玩法就将实现了。
比如语音聊天室,口令红包,直播,MR 等等,都用 web 即可实现。
像微信 SDK 的录音录像都还是限时长的,都已有相当多应用,webRTC 则有更多自定义的玩法。

WebRTC是一个开源项目,旨在使得浏览器能为实时通信(RTC)提供简单的JavaScript接口。说的简单明了一点就是让浏览器提供JS的即时通信接口。这个接口所创立的信道并不是像WebSocket一样,打通一个浏览器与WebSocket服务器之间的通信,而是通过一系列的信令,建立一个浏览器与浏览器之间(-to-peer)的信道,这个信道可以发送任何数据,而不需要经过服务器。并且WebRTC通过实现MediaStream,通过浏览器调用设备的摄像头、话筒,使得浏览器之间可以传递音频和视频。

使用场景:
能用于音视频实时互动
能用于游戏、即时通讯、文件传输等等
它是一个百宝箱,传输、音视频处理(回音消除、降噪等)