参考资料1:https://pan.baidu.com/s/1b4kcRMN6FHoHYCl3lJwrAw 提取码:hgt6
参考资料2:https://pan.baidu.com/s/1Vr_KcjKdz0qmVlufrwBtsQ 提取码:tylx
一、什么是WebRTC
WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。WebRTC 包含的这些标准使用户在无需安装任何插件或者第三方的软件的情况下,创建点对点(Peer-to-Peer)的数据分享和电话会议成为可能。
WebRTC 只是一个媒体引擎,上面有一个 JavaScript API,所以每个人都知道如何使用它(尽管浏览器实现仍然各不相同),本文对 WebRTC(网页实时通信)的相关内容进行简要介绍。
二、WebRTC 简介
WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音通话或视频聊天的技术,是谷歌 2010 年以 6820 万美元收购 Global IP Solutions 公司而获得的一项技术。
WebRTC 提供了实时音视频的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:windows,linux,mac,android。
虽然 WebRTC 的目标是实现跨平台的 Web 端实时音视频通讯,但因为核心层代码的 Native、高品质和内聚性,开发者很容易进行除 Web 平台外的移殖和应用。很长一段时间内 WebRTC 是业界能免费得到的唯一高品质实时音视频通讯技术。
1、webrtc 是什么
浏览器为音视频获取传输提供的接口
2、webrtc 可以做什么
浏览器端到端的进行音视频聊天、直播、内容传输
3、数据传输需要些什么
IP、端口、协议
客户端、 服务端
三、如何使用WebRTC
WebRTC易于使用,只需极少步骤便可建立媒体会话。有些消息在浏览器和服务器之间流动,有些则直接在两个浏览器(成为对等端)之间流动。
建立WebRTC会话
建立WebRTC连接需要如下几个步骤:
获取本地媒体(getUserMedia(),MediaStream API)
在浏览器和对等端(其它浏览器或终端)之间建立对等连接(RTCPeerConnection API)
将媒体和数据通道关联至该连接
交换会话描述(RTCSessionDescription)
四、面向网络的实时通信
借助 WebRTC,您可以为应用添加基于开放标准运行的实时通信功能。它支持在对等设备之间发送视频、语音和通用数据,使开发者能够构建强大的语音和视频通信解决方案。这项技术适用于所有现代浏览器以及所有主要平台的原生客户端。WebRTC 采用的技术是开放网络标准,以常规 JavaScript API 的形式在所有主流浏览器中提供。对于原生客户端(例如 Android 和 iOS 应用),可以使用具备相同功能的库。WebRTC 项目属于开源项目,受 Apple、Google、Microsoft 和 Mozilla 等公司支持。
五、WebRTC 使用入门
WebRTC 标准概括介绍了两种不同的技术:媒体捕获设备和点对点连接。
媒体捕获设备包括摄像机和麦克风,还包括屏幕捕获设备。对于摄像头和麦克风,我们使用 navigator.mediaDevices.getUserMedia() 来捕获 MediaStreams。对于屏幕录制,我们改为使用 navigator.mediaDevices.getDisplayMedia()。
点对点连接由 RTCPeerConnection 接口处理。这是在 WebRTC 中两个对等方之间建立和控制连接的中心点。
六、使用 WebRTC 协议进行音视频通信的步骤如下:
1、获取本地媒体流:使用 navigator.mediaDevices.getUserMedia 方法获取本地摄像头或麦克风的媒体流。
2、创建 PeerConnection:使用 new RTCPeerConnection(configuration) 方法创建一个 PeerConnection 实例,其中 configuration 是 PeerConnection 的配置参数,例如 STUN/TURN 服务器地址等。
3、添加 ICE Candidate:通过监听 icecandidate 事件获取到本地的 ICE Candidate,然后使用 addIceCandidate 方法将其添加到 PeerConnection 中。
4、发送 SDP:通过 createOffer 或者 createAnswer 方法生成本地的 SDP(Session Description Protocol),并使用 setLocalDescription 方法设置到 PeerConnection 中
5、接收 SDP:通过信令服务器将远端的 SDP 发送给本地,然后使用 setRemoteDescription 方法设置到 PeerConnection 中。
6、媒体流交换:当 PeerConnection 连接成功后,可以通过 addTrack 或者 addStream 方法将本地的媒体流添加到 PeerConnection 中,并且通过监听 ontrack 事件获取到远端的媒体流。
7、关闭连接:使用 close 方法关闭 PeerConnection。
这些步骤可以使用 WebRTC 库来简化实现。在实际应用中,还需要考虑网络环境、协议版本兼容性、安全问题等因素。
有疑问加站长微信联系(非本文作者)
![](https://static.golangjob.cn/static/img/footer.png?imageView2/2/w/280)