haizlin / fe-interview

前端面试每日 3+1,以面试题来驱动学习,提倡每日学习与思考,每天进步一点!每天早上5点纯手工发布面试题(死磕自己,愉悦大家),6000+道前端面试题全面覆盖,HTML/CSS/JavaScript/Vue/React/Nodejs/TypeScript/ECMAScritpt/Webpack/Jquery/小程序/软技能……
http://www.h-camel.com
MIT License
25.49k stars 3.26k forks source link

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

Open haizhilin2013 opened 5 years ago

haizhilin2013 commented 5 years ago

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

weilaiqishi commented 5 years ago

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

forever-z-133 commented 5 years ago

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

xiaoqiangz commented 2 years ago

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

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