一种iOS移动端基于Socket.IO和WebRTC的观看端视频连麦架构制造技术

技术编号:20520311 阅读:39 留言:0更新日期:2019-03-06 03:56
本发明专利技术公开了一种iOS移动端基于Socket.IO和WebRTC的观看端视频连麦架构,包括WebRTC建立P2P通信和信令传输,本发明专利技术中,iOS移动端视频直播连麦时,用Socket.IO来进行主播端和观看端合理的信令传输,用WebRTC来进行实时音视频通话,连麦码流采用高实性协议传输,少了服务器中转环节,更低的时延。

【技术实现步骤摘要】
一种iOS移动端基于Socket.IO和WebRTC的观看端视频连麦架构
本专利技术涉及视频直播
,具体为一种iOS移动端基于Socket.IO和WebRTC的观看端视频连麦架构。
技术介绍
现有技术中,主播端和观看端各自都采集自己的视频源,然后通过rtmp协议发送给对方,也就是当连麦时,双方都是主播端,然后当自己拿到对方发过来的音视频数据的时候,把数据和自己本身的音视频数据进行合并显示,就完成了连麦;现有技术的缺点:RTMP流媒体方案由于延时较多,无法满足即时互动需求。
技术实现思路
本专利技术的目的在于提供一种iOS移动端基于Socket.IO和WebRTC的观看端视频连麦架构,以解决上述
技术介绍
中提出的问题。为实现上述目的,本专利技术提供如下技术方案:一种iOS移动端基于Socket.IO和WebRTC的观看端视频连麦架构,包括WebRTC建立P2P通信和信令传输,WebRTC建立P2P通信包括以下流程:A、使用WebRTC构建实时音视频通信;B、在ClientA和ClientB之间传送彼此的SDP信息和candidate信息,ClientA和ClientB通过这些信息建立P2P连接来传送音视频数据;C、ClientA向ClientB发起对聊请求。优选的,所述步骤C中对聊请求方法如下:A、客户端A首先创建PeerConnection对象,然后打开本地音视频设备,将音视频数据封装成MediaStream添加到PeerConnection中;B、客户端A调用PeerConnection的CreateOffer方法创建一个用于offer的SDP对象,SDP对象中保存当前音视频的相关参数;客户端A通过PeerConnection的SetLocalDescription方法将该SDP对象保存起来,并通过Signal服务器发送给客户端B;C、客户端B接收到客户端A发送过的offerSDP对象,通过PeerConnection的SetRemoteDescription方法将其保存起来,并调用PeerConnection的CreateAnswer方法创建一个应答的SDP对象,通过PeerConnection的SetLocalDescription的方法保存该应答SDP对象并将它通过Signal服务器发送给客户端A;D、客户端A接收到客户端B发送过来的应答SDP对象,将其通过PeerConnection的SetRemoteDescription方法保存起来;E、在SDP信息的offer/answer流程中,客户端A和客户端B已经根据SDP信息创建好相应的音频Channel和视频Channel并开启Candidate数据的收集,Candidate数据可以简单地理解成客户端的IP地址信息;F、当客户端A收集到Candidate信息后,PeerConnection会通过OnIceCandidate接口给客户端A发送通知,客户端A将收到的Candidate信息通过Signal服务器发送给客户端B,客户端B通过PeerConnection的AddIceCandidate方法保存起来;同样的操作客户端B对客户端A再来一次;G、客户端A和客户端B就已经建立了音视频传输的P2P通道,客户端B接收到客户端A传送过来的音视频流,会通过PeerConnection的OnAddStream回调接口返回一个标识客户端A端音视频流的MediaStream对象,在客户端B端渲染出来即可。同样操作也适应客户端B到客户端A的音视频流的传输。优选的,所述信令传输包括以下流程:A、观看端和主播端都已经和信令服务器建立好Socket.IO连接;B、观看端监听room_setting事件,收到room_setting消息后,解析其中的allow_speak_interaction字段,表示当前通话允不允许视频连麦,如果允许则进行以下流程,如果不允许,以下流程全部不走;C、观看端发送request_speak消息,表示申请连麦;D、如果60秒还没有收到信令服务器发过来的允许连麦的消息,则观看端主动发送cancel_request_speak消息,表示主动挂断连麦,即本次连麦失败;E、观看端监听accept_speak消息,当主播端接受连麦申请时,监听的这个事件会收到消息,消息中包含申请连麦人员的唯一id,保存此值;F、观看端发送speak_enter事件;G、主播端发送给观看端speak_peer_list消息,其中包含所有用户和连麦相关的信息,包括用户id,用户角色,用户名称;H、观看端根据上一步骤speak_peer_list中的用户列表,得到主播端的用户信息,和主播端开始建立WebRTC的P2P通信;I、当观看端接收到speak_peer_list消息后,如果十秒内还没有接收到流媒体数据的话,观看端将发送hangup_interaction消息到主播端,挂断连麦,并回收相应的连麦资源;J、观看端主动挂断连麦的时候,观看端会发送hangup_interaction消息,主播端会返回speak_disconnect消息,表示成功挂断连麦,观看端做相应的清理资源操作,当主播端主动挂断连麦的时候,主播端会发送speak_disconnect消息给观看端,观看端接收到speak_disconnect消息后,会挂断连麦,并做相应的清理资源的操作。与现有技术相比,本专利技术的有益效果是:本专利技术中,iOS移动端视频直播连麦时,用Socket.IO来进行主播端和观看端合理的信令传输,用WebRTC来进行实时音视频通话,连麦码流采用高实性协议传输,少了服务器中转环节,更低的时延。附图说明图1为本专利技术的WebRTC构建实时音视频通信流程图;图2为本专利技术的信令传输流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参阅图1-2,本专利技术提供一种技术方案:一种iOS移动端基于Socket.IO和WebRTC的观看端视频连麦架构,包括WebRTC建立P2P通信和信令传输,WebRTC建立P2P通信包括以下流程:A、使用WebRTC构建实时音视频通信;B、在ClientA和ClientB之间传送彼此的SDP信息和candidate信息,ClientA和ClientB通过这些信息建立P2P连接来传送音视频数据;C、ClientA向ClientB发起对聊请求。本实施例中,步骤C中对聊请求方法如下:A、客户端A首先创建PeerConnection对象,然后打开本地音视频设备,将音视频数据封装成MediaStream添加到PeerConnection中;B、客户端A调用PeerConnection的CreateOffer方法创建一个用于offer的SDP对象,SDP对象中保存当前音视频的相关参数;客户端A通过PeerConnection的SetLocalDescription方法将该SDP对象保存起来,并通过Signal服务器发送给客户端B;C、客户端B接收到客户本文档来自技高网...

【技术保护点】
1.一种iOS移动端基于Socket.IO和WebRTC的观看端视频连麦架构,包括WebRTC建立P2P通信和信令传输,其特征在于:WebRTC建立P2P通信包括以下流程:A、使用WebRTC构建实时音视频通信;B、在ClientA和ClientB之间传送彼此的SDP信息和candidate信息,ClientA和ClientB通过这些信息建立P2P连接来传送音视频数据;C、ClientA向ClientB发起对聊请求。

【技术特征摘要】
1.一种iOS移动端基于Socket.IO和WebRTC的观看端视频连麦架构,包括WebRTC建立P2P通信和信令传输,其特征在于:WebRTC建立P2P通信包括以下流程:A、使用WebRTC构建实时音视频通信;B、在ClientA和ClientB之间传送彼此的SDP信息和candidate信息,ClientA和ClientB通过这些信息建立P2P连接来传送音视频数据;C、ClientA向ClientB发起对聊请求。2.根据权利要求1所述的一种iOS移动端基于Socket.IO和WebRTC的观看端视频连麦架构,其特征在于:所述步骤C中对聊请求方法如下:A、客户端A首先创建PeerConnection对象,然后打开本地音视频设备,将音视频数据封装成MediaStream添加到PeerConnection中;B、客户端A调用PeerConnection的CreateOffer方法创建一个用于offer的SDP对象,SDP对象中保存当前音视频的相关参数;客户端A通过PeerConnection的SetLocalDescription方法将该SDP对象保存起来,并通过Signal服务器发送给客户端B;C、客户端B接收到客户端A发送过的offerSDP对象,通过PeerConnection的SetRemoteDescription方法将其保存起来,并调用PeerConnection的CreateAnswer方法创建一个应答的SDP对象,通过PeerConnection的SetLocalDescription的方法保存该应答SDP对象并将它通过Signal服务器发送给客户端A;D、客户端A接收到客户端B发送过来的应答SDP对象,将其通过PeerConnection的SetRemoteDescription方法保存起来;E、在SDP信息的offer/answer流程中,客户端A和客户端B已经根据SDP信息创建好相应的音频Channel和视频Channel并开启Candidate数据的收集,Candidate数据可以简单地理解成客户端的IP地址信息;F、当客户端A收集到Candidate信息后,PeerConnection会通过OnIceCandidate接口给客户端A发送通知,客户端A将收到的Candidate信息通过Signal服务器发送给客户端B,客户端B通过PeerConnecti...

【专利技术属性】
技术研发人员:尹召青
申请(专利权)人:创盛视联数码科技北京有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1