WebRTC研究(⼆)实例demo
WebRTC研究(⼆)实例demo
1. WebRTC 简介
2.WebRTC 获取视频流Demo
2.1 WEBRTC结构
2.1.1 完整的WebRTC框架,分为 Server端、Client端两⼤部分。
Server端:
Stun服务器 : 服务器⽤于获取设备的外部⽹络地址
Turn服务器 : 服务器是在点对点失败后⽤于通信中继
信令服务器 : 负责端到端的连接。两端在连接之初,需要交换信令,如sdp、candidate等,都是通过信令服务器 进⾏转发交换的。
Client有四⼤应⽤端:
Android iOS PC Broswer
webrtc浏览器2.1.2 介绍下WebRTC三个主要API,以及实现点对点连接的流程。
1. MediaStream:通过MediaStream的API能够通过设备的摄像头及话筒获得视频、⾳频的同步流
2. RTCPeerConnection:RTCPeerConnection是WebRTC⽤于构建点对点之间稳定、⾼效的流传输的组件
3. RTCDataChannel:RTCDataChannel使得浏览器之间(点对点)建⽴⼀个⾼吞吐量、低延时的信道,⽤于传输任意数据。
其中RTCPeerConnection是我们WebRTC的核⼼组件。
##WEBRTC的建⽴连接流程图
2.1.3 整个webrtc连接的流程说明
其主要流程如上图所⽰, 具体流程说明如下:
1. 客户端通过socket, 和服务器建⽴起TCP长链接, 这⾥我⽤了CocoaAsyncSocket第三⽅框架进⾏socket连接
2. 客户端通过信令服务器, 进⾏offer SDP 握⼿
3.客户端通过信令服务器, 进⾏Candidate 握⼿
Candidate:主要包含了相关⽅的IP信息,包括⾃⾝局域⽹的ip、公⽹ip、turn服务器ip、stun服务器ip等
Candidate 是通过webrtc框架⾥⾯的PeerConnection所创建, 详细创建请参考我的demo.
4. 客户端在SDP 和Candidate握⼿成功后, 就建⽴起⼀个P2P端对端的链接, 视频流就能直接传输, 不需要经过服务器啦.
2.1.4 SDP握⼿流程和Candidate握⼿流程类似, 但有点繁琐, 下⾯就SDP握⼿流程简要说明:
2.1.5 ⽤⼀个demo演⽰能很好的帮助⼤家对整套webrtc⾳视频通信的梳理:
综合分析了国内外相对⽐较好的⼏个demo, 吸取了各⾃的优点, 现给⼤家分享. (*国内的很多demo代码质量相对较差⽽且很多都运⾏不起来, 多数⽤OC开发, 国外的相对较好)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论