ToB企服应用市场:ToB评测及商务社交产业平台

标题: iOS WebRTC 点对点实时音视频流程介绍 [打印本页]

作者: 农民    时间: 2022-6-21 10:07
标题: iOS WebRTC 点对点实时音视频流程介绍
前言

公司某个项目需要接入音视频即时通讯, 功能类似微信的拨打视频通话,语音通话的场景。那么对于音视频通讯会用到什么技术呢?没错,它就是 WebRTC 。
什么是WebRTC

WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,简而言之它是一个支持网页浏览器进行实时语音对话或视频对话的技术。
它为我们提供了视频会议的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:windows,linux,mac,android,iOS。
它在2011年5月开放了工程的源代码,在行业内得到了广泛的支持和应用,成为下一代视频通话的标准。
iOS端 WebRTC的使用

1. 了解构建一个音视频通讯的结构

一个完整的音视频通讯结构包括两部分: Server 服务器端, Client客户端
2. 了解WebRTC建立连接的过程


2.1这里介绍一下WebRTC三个核心组件

其中RTCPeerConnection是核心中的核心
2.2 WebRTC 连接的流程说明

SDP(Session Description Protocol):描述建立音视频连接的一些属性,如音频的编码格式、视频的编码格式、是否接收/发送音视频等等
SDP 是通过webrtc框架里面的PeerConnection所创建, 详细创建请参考我的demo.

Candidate:主要包含了相关方的IP信息,包括自身局域网的ip、公网ip、turn服务器ip、stun服务器ip等
Candidate 是通过webrtc框架里面的PeerConnection所创建, 详细创建请参考我的demo.

3.了解SDP握手流程和Candidate握手流程

SDP握手流程和Candidate握手流程类似, 但有点繁琐, 下面就SDP握手流程简要说明:
下图为WebRTC通过信令建立一个SDP握手的过程。只有通过SDP握手,双方才知道对方的信息,这是建立p2p通道的基础。
P2P SDP握手流程图:

发送offer过程:
1.A端通过RTCPeerConnection的 createOffer 生成 SDP 描述
2.A端再通过调用RTCPeerConnection的 setLocalDescription,设置本地的描述信息
3.A端通过信令将 offer SDP 发送给B端
4.B端通过信令接收到A端发送过来的offer SDP, 并调用RTCPeerConnection的 setRemoteDescription,设置远端的描述信息
发送answer 过程:
5.B端通过RTCPeerConnection的 createAnswer 创建出自己的 SDP 描述
6.B端再通过RTCPeerConnection的 setLocalDescription,设置本地的描述信息
7.B端通过信令将 anwser SDP 发送给A端
8.A端通过信令接收到B端发送过来的answer SDP, 并调用RTCPeerConnection的 setRemoteDescription,设置远端的描述信息。
9.通过SDP握手后,两端之间就会建立起一个端对端的直接通讯通道。
由于我们所处的网络环境错综复杂,用户可能处在私有内网内,使用p2p传输时,将会遇到NAT以及防火墙等阻碍。这个时候我们就需要在SDP握手时,通过STUN/TURN/ICE相关NAT穿透技术来保障p2p链接的建立。
集成时遇到的问题

详见:
iOS WebRTC集成时遇到的问题总结 (声音默认输出由听筒改为扬声器、视频镜像、远端视频全屏等比填充等)

来源:https://www.cnblogs.com/reyzhang/p/16198182.html
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4