CN111479121A - 一种基于流媒体服务器的直播方法及系统 - Google Patents

一种基于流媒体服务器的直播方法及系统 Download PDF

Info

Publication number
CN111479121A
CN111479121A CN202010282843.0A CN202010282843A CN111479121A CN 111479121 A CN111479121 A CN 111479121A CN 202010282843 A CN202010282843 A CN 202010282843A CN 111479121 A CN111479121 A CN 111479121A
Authority
CN
China
Prior art keywords
client
server
streaming
storage
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010282843.0A
Other languages
English (en)
Other versions
CN111479121B (zh
Inventor
余耀
贺同路
杨菲
李嘉懿
郭学栋
任永亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Intelligent Workshop Technology Co ltd
Original Assignee
Beijing Intelligent Workshop Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Intelligent Workshop Technology Co ltd filed Critical Beijing Intelligent Workshop Technology Co ltd
Priority to CN202010282843.0A priority Critical patent/CN111479121B/zh
Publication of CN111479121A publication Critical patent/CN111479121A/zh
Application granted granted Critical
Publication of CN111479121B publication Critical patent/CN111479121B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26291Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for providing content or additional data updates, e.g. updating software modules, stored at the client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6375Control signals issued by the client directed to the server or network components for requesting retransmission, e.g. of data packets lost or corrupted during transmission from server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种基于流媒体服务器的直播方法及系统,所述系统中包含信令服务器、流媒体服务器、存储服务器以及多个客户端;用户通过客户端接入所述系统,从而在所述系统中建立直播室,或者加入已有的直播室;信令服务器用于与客户端之间进行信令交互,并向流媒体服务器发出业务指令,使得客户端新建直播室,或者加入已有直播室;流媒体服务器,用于从信令服务器接收业务指令,以及从各客户端分别获取流媒体数据,并完成各客户端之间流媒体数据的交换;存储服务器,用于从流媒体服务器接收流媒体数据,从而备份和更新各客户端的流媒体数据。

Description

一种基于流媒体服务器的直播方法及系统
技术领域
本发明属于计算机网络技术领域,具体涉及一种基于流媒体服务器的直播方法及系统。
背景技术
现有技术中,提供互联网直播模式,由一个客户端创建直播室,其他客户端则分别加入该直播室,从而实现网络直播的功能。当直播室人数较多时,假定当前直播室人数为N(N>16)人时,流媒体服务器除了要维持N路连接之外,还要负责备份和更新这N路流数据,一旦有网络不稳定或服务器不稳定,流媒体服务器必须优先保证通道的长连接,从而导致更新流数据不及时,使得传递给客户端的其他人的可能就会是延迟的、老旧的甚至是丢包的数据。因此用户看到别人的音视频可能是卡顿、不连续的。
发明内容
为克服上述现有技术的不足,本发明提供了一种基于流媒体服务器的直播方法及系统。
一种基于流媒体的直播方法,其特征在于包含以下步骤:
S201客户端1发起创建直播室的请求;客户端与信令服务器进行信令交互;
S202信令服务器根据客户端1发起的请求,创建直播室;直播室创建成功后,信令服务器通知流媒体服务器和客户端1直播室创建成功;
S203客户端1将自己的流数据传递给流媒体服务器;
S204流媒体服务器接收到客户端1发送的流数据后、暂存客户端1的数据;
S205存储服务器备份客户端1的流数据,并根据存储情况返回存储状态信息,如果存储失败,则返回至S204,通知流媒体服务器重新发送流数据;如果存储成功,则继续执行S206;
S206客户端2进入直播室,先执行和S201相同的操作,待信令服务器验证通过后,信令服务器通过业务指令通知媒体服务器可以接受流数据;客户端2将自己的流数据发送给流媒体服务器;
S207流媒体服务器接收到客户端2发送的流数据后,将其进行暂存,然后将其发送给存储服务器存储备份;
S208存储服务器备份客户端2的流数据,并根据存储情况返回存储状态信息,并将存储服务器中之前保存的客户端1的流数据返回给流媒体服务器;如果存储失败,则返回至S207,通知流媒体服务器重新发送流数据;如果存储成功,则继续执行S209;
S209在接收到存储服务器返回存储状态信息指示备份成功后,流媒体服务器将在流媒体本地暂存的客户端2的流数据发送给客户端1,与此同时,流媒体服务器将从存储服务器获取之前备份的客户端1的流数据,然后流媒体服务器将其回传给客户端2;
S210客户端1渲染从流媒体服务器获取的客户端2的流数据,客户端2渲染从流媒体服务器获取的客户端1的流数据。
优选地,当第3人加入直播室时,具体实现方式如下:
S211客户端3进入直播室,通过套接字和信令服务器连接,待信令服务器验证通过后,信令服务器通过业务指令通知媒体服务器可接受流数据;客户端3将自己的流数据发送给流媒体服务器;
S212流媒体服务器接收到客户端3发送的流数据后,将其进行保存,然后将其发送给存储服务器存储备份;
S213存储服务器备份客户端3的流数据,并根据存储情况返回存储状态信息,并将存储服务器中之前保存的客户端1和客户端2的流数据返回给流媒体服务器;如果存储失败,则返回至S211,通知流媒体服务器重新发送流数据;如果存储成功,则继续执行S213;
S214媒体服务器将暂存本地的客户端3的流数据分别转发给客户端1和客户端2,与此同时,媒体服务器从存储服务器获取所有流数据,然后将其全部转发给客户端3;
S215客户端3分别渲染客户端1和客户端2的流数据;客户端1分别渲染之前获取到的客户端2和刚刚转发过来的客户端3的流数据;客户端2分别渲染之前获取到的客户端1和现在刚刚过来的客户端3的流数据。
优选地,当第N人加入直播室时,具体实现方式如下:
S310客户端N进入直播室,将自己的流数据发送给流媒体服务器;
S311流媒体服务器接收到客户端N发送的流数据后,将其进行暂存,然后将其发送给存储服务器存储备份;
S312存储服务器备份客户端N的流数据,并根据存储情况返回存储状态信息,并将存储服务器中之前保存的前N-1个客户端的流数据返回给流媒体服务器;如果存储失败,则返回至S311,通知流媒体服务器重新发送流数据;如果存储成功,则继续执行S313;
S313在接收到存储服务器返回存储状态信息指示备份成功后,流媒体服务器将暂存的客户端N的流数据分别发送给客户端1、客户端2,…,客户端N-1,与此同时,流媒体服务器将接收到的由存储服务器返回的客户端1、客户端2,…,客户端N-1的流数据回传给客户端3。
优选地,所述S201客户端1发起创建直播室的请求;客户端与信令服务器进行信令交互具体为:
①客户端1先调用webRTC接口去创建工厂类,通过该工厂类构造出事先已通过属性约定好的连接类,并调用添加音视频方法,将本地生成好的音轨(AudioTrack)和视频轨道(VideoTrack)以流的形式封装进去;
②通过调用连接类的创建申请的方法,使WebRTC接口回调出本地SDP会话信息,生成SDP会话信息之后,客户端1将其发送给信令服务器,信令服务器在拿到SDP会话信息之后,将其转交给媒体服务器,媒体服务器收到此类会话信息之后,生成对应的SDP会话信息,然后媒体服务器将对应的SDP会话信息转交给信令服务器,由信令服务器将其回复给客户端1;
③客户端1先保存服务端的SDP会话信息,与此同时会收集ICE信息,然后将其通过接口回调的方式返回给客户端1;
④验证ICE信息中携带的协议端口是否可用,如果可用,则二者之间就会才能建立DataChannel通道,如不可用,则需要继续交换ICE;直到验证可用为止。
优选地,当客户端1和信令服务器之间IP地址改变,WebRTC会立刻监听到,并且根据最新的IP地址生成最新的ICE信息,客户端1发送最新的ICE信息到信令服务器,由它将其转发给媒体服务器;验证ICE信息,直到验证通过后停止发送。
优选地,存储服务器收到流媒体服务器发送的音视频流数据后,便开启存储空间、开启工作线程,先复制从流媒体服务器接收的音视频流数据,再进行存储。
优选地,如果存储服务器存储客户端的数据流失败,则通知流媒体服务器重新发送流数据,再次执行S204步骤,直到存储备份成功并返回存储状态信息之后才停止。
优选地,客户端N与信令服务器进行信令交互具体过程为:
①客户端N调用webRTC接口创建工厂类,通过该工厂类构造出事先已通过属性约定好的连接类,并调用添加音视频方法,将本地生成好的音轨和视频轨道以流的形式封装进去;
②通过调用连接类的创建申请的方法,使WebRTC接口回调出本地SDP会话信息,生成SDP会话信息之后,客户端N将其发送给信令服务器,信令服务器在拿到SDP会话信息之后,将其转交给媒体服务器,媒体服务器收到此类会话信息之后,生成对应的SDP会话信息,媒体服务器将对应的SDP会话信息转交给信令服务器,由信令服务器将其回复给发送终端;
③客户端N保存服务端的SDP会话信息,与此同时会收集ICE信息;
④验证ICE信息中携带的协议端口是否可用,如果可用,则建立DataChannel通道,如不可用,则需要继续交换ICE;直到验证可用为止。
优选地,ICE信息的收集是在SDP会话信息产生之后,由WebRTC模块收集,然后将其通过接口回调的方式返回给客户端N。
优选地,ICE信息中包含IP地址和Port端口、媒体交互协议。
本发明提供一种执行如权利要求1-9任一所述的基于流媒体的直播方法的直播系统,其特征在于:
基于流媒体服务器的直播系统包含信令服务器、流媒体服务器、存储服务器以及多个客户端;用户通过客户端接入所述系统,从而在所述系统中建立直播室,或者加入已有的直播室;
信令服务器用于与客户端之间进行信令交互,并向流媒体服务器发出业务指令,使得客户端新建直播室,或者加入已有直播室;
流媒体服务器,用于从信令服务器接收业务指令,以及从各客户端分别获取流媒体数据,并完成各客户端之间流媒体数据的交换;
存储服务器,用于从流媒体服务器接收流媒体数据,从而备份和更新各客户端的流媒体数据。
本发明的目的在于解决当直播室人数较多时,一旦网络或服务器出现瞬间宕机,保证对端数据及时更新,以免导致视频丢帧、音频卡顿。本发明在流媒体服务器外,另外搭建一个存储服务器,用于分担原本由流媒体服务器来备份和更新各端的流数据的任务,虽然备份和更新的任务交由存储服务器,但是传递和转发流数据任务依然保留在流媒体服务器,从而大大减轻流媒体服务器的压力,让其在网络和处理能力有限的情况下,在保证通道的连接的同时,还能兼顾保证数据的及时更新。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。
附图说明
图1示出了根据本发明的一个实施例的系统结构图;
图2A-2B示出了根据本发明的一个实施例的客户端与信令服务器之间交互的信令流程图;
图3示出了根据本发明的一个实施例的基于流媒体服务器的直播方法。
具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的基于流媒体服务器的直播方法其具体实施方式、特征及其功效,详细说明如后。在下述说明中,不同的“一实施例”或“实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构、或特点可由任何合适形式组合。
本发明所使用的缩略语以及关键术语如下:
WebRTC(Web Real-Time Communication)网页即时通信,是一个支持网页浏览器进行实时语音对话或视频对话的API。它于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C推荐标准。该项技术旨在使Web浏览器具备实时通信能力,同时,通过将这些能力封装并以移动端API供移动端应用开发人员使用,这种基于WeRTC实时音视频应用,无需依赖任何第三方插件。本发明中将能够进行WebRTC通信的终端称为WebRTC终端。WebRTC技术使得支持WebRTC功能的APP之间可以进行直接的WeRTC通信,从而改变了终端与服务器原有的Client/Server工作模式,可以让移动应用进行端对端通信。WebRTC终端采用流控制传输协议SCTP(Stream Control Transmission Protocol)作为数据的传输协议,该协议可以对传输数据进行流量控制和拥塞控制。
直播室模式的设备终端包含且不限于手机(Android操作系统、苹果操作系统)、电脑(微软操作系统、苹果操作系统)、手表、平板等等多个终端间的音视频数据的传递需要借助流媒体服务器进行保存、接收和转发。
内网穿透,也即NAT(网络地址转换Network Address Translation,NAT)穿透,进行NAT穿透是为了使具有某一个特定源IP地址和源端口号的数据包不被NAT设备屏蔽而正确路由到内网主机。
P2P(peer-to-peer端对端),就是利用互联网网络资源进行的现场音视频直播服务,通过现场的音频录制和视频拍摄同步发布到网络上,用户可以同一时间再网络上看到实时的现场情况。
P2Many(peer-to-many一对多),就是直播间很多个P2P构成的P2Many,是一个一对多的映射,一个主播多个观众,每个观众都和主播建立P2P连接,每个P2P是相对独立的。
CDN(内容分发网络),全称为Content Delivery Network,即内容分发网络,简单地说,内容分发网络(CDN)是一个经策略性部署的整体系统,包括分布式存储、负载均衡、网络请求的重定向和内容管理4个要件,而内容管理和全局的网络流量管理(TrafficManagement)是CDN的核心所在。
流媒体服务器,尤其是WebRTC流媒体服务器,在双方建立P2P(peer-to-peer)之后,负责接收和转发对端发送的WebRTC流数据,以达到双方低延迟交互的音视频数据。
Socket,即一个抽象层套接字,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。
SDP(Session Description Protocol)是一种会话描述协议,属于文本协议。主要用于协商双方通讯过程,传递基本信息,如:会话控制信息,用来开始和结束通话,即开始视频、结束视频这些操作指令;处理错误的消息;元数据,如各自的音视频解码方式、带宽;网络数据,对方的公网IP及端口、内网IP及端口。
ICE(Interactive Connectivity Establishment),一种交互式连通建立方式,定义一些SDP(Session Description Protocol)附加属性,使之在最适合的情况下工作,以弥补单独使用其中任何一种所带来的固有缺陷。
为了达到上述目的,本发明提供了一种在流媒体服务器处理能力有限的前提下,最大限度的保证服务端和客户端长连接的稳定性和音视频数据的及时性、完整性的解决方案。
如图1所示,根据本发明的一个具体实施方式,基于流媒体服务器的直播系统中包含信令服务器、流媒体服务器、存储服务器以及多个客户端;用户通过客户端接入所述系统,从而在所述系统中建立直播室(直播间),或者加入已有的直播室(直播间);
信令服务器用于与客户端之间进行信令交互,并向流媒体服务器发出业务指令,使得客户端新建直播室(直播间),或者加入已有直播室(直播间);
流媒体服务器,用于从信令服务器接收业务指令,以及从各客户端分别获取流媒体数据,并完成各客户端之间流媒体数据的交换;
存储服务器,用于从流媒体服务器接收流媒体数据,从而备份和更新各客户端的流媒体数据。
如图2所示,根据本发明的一个具体实施方式,基于流媒体的直播方法包含以下步骤:
S201客户端1发起创建直播室的请求;客户端与信令服务器进行信令交互。
根据本发明的一个优选实施方式,每一个客户端(终端)创建或进入直播间都必须要和信令服务器交互,交互方式相同,即先通过Socket(套接字)和信令服务器连接,然后通过Socket(套接字)发送任意格式数据(数据是事先和信令服务器协商好的任何数据)到信令服务器,信令服务器验证通过后,才开始执行下一步操作。
根据本发明的一个优选实施方式,所述S201客户端1发起创建直播室的请求;客户端与信令服务器进行信令交互步骤如下:
①客户端1先调用webRTC接口去创建工厂类(PeerConnectionFactory),通过该工厂类构造出事先已通过属性约定好的连接类(PeerConnection),并调用添加音视频(addAudioTrack/addVideoTrack)方法,将本地生成好的音轨(AudioTrack)和视频轨道(VideoTrack)以流的形式封装进去。
②通过调用连接类(PeerConnection)的创建申请(createOffer)的方法,迫使WebRTC接口回调出本地SDP(Session Description Protocol)会话信息,生成SDP(SessionDescription Protocol)会话信息之后,客户端1将其发送给信令服务器,信令服务器在拿到SDP(Session Description Protocol)会话信息之后,将其转交给媒体服务器,媒体服务器收到此类会话信息之后,就会生成对应的SDP(Session Description Protocol)会话信息,然后媒体服务器将对应的SDP(Session Description Protocol)会话信息转交给信令服务器,由信令服务器将其回复给发送终端(也就是客户端1)。
③以上步骤就完成了一次信令来回,紧接着,客户端1先保存服务端的SDP(Session Description Protocol)会话信息,与此同时会收集ICE(InteractiveConnectivity Establishment)信息,ICE(Interactive Connectivity Establishment)信息的收集是在SDP(Session Description Protocol)会话信息产生之后,由WebRTC模块去收集,然后将其通过接口回调的方式返回给客户端1。ICE(Interactive ConnectivityEstablishment)信息包含了一些附属信息,如IP地址和Port(端口)、媒体交互协议(TCP/UDP协议)以及音视频信息。拿到ICE(Interactive Connectivity Establishment)信息之后就是ICE(Interactive Connectivity Establishment)的协商。
④请求端和信令/媒体服务器之间的ICE(Interactive ConnectivityEstablishment)的协商本质就是验证ICE(Interactive Connectivity Establishment)信息中携带的协议(TCP/UDP)端口是否可用,如果可用,则二者之间就会才能建立DataChannel通道,相反,需要继续交换ICE。直到验证可用为止。
根据本发明的一个优选实施方式,当客户端1和服务器之间由于网络变化(比如WiFi变移动信号或者WiFi切换等等)导致IP地址的改变,WebRTC会立刻监听到,并且根据最新的IP地址生成最新的ICE(Interactive Connectivity Establishment)信息,那么客户端1依然要发送最新的ICE信息到信令服务器,由它将其转发给媒体服务器。然后验证ICE信息,直到验证通过后停止发送。
S202信令服务器根据客户端1发起的请求,创建一个房间(直播室/直播间);直播室创建成功后,信令服务器通知流媒体服务器和客户端1直播室创建成功;
根据本发明的一个优选实施方式,直播室创建成功后,流媒体通道所有的信令交互、以及流数据的传输都依赖于这个房间。
S203客户端1将自己的流数据传递给流媒体服务器;
根据本发明的一个优选实施方式,流媒体服务器可以是任意的MCU架构服务器。
本发明中流媒体数据简称为流数据。
根据本发明的一个优选实施方式,客户端1开启本地权限后将自己的流数据传递给流媒体服务器。
根据本发明的一个优选实施方式,客户端1等待信令服务器通知流媒体服务器后,将自己的流数据发送给流媒体服务器。
根据本发明的一个优选实施方式,客户端1等待信令服务器通知流媒体服务器后,将自己的音视频流数据发送给流媒体服务器。
根据本发明的一个优选实施方式,客户端1打开麦克风和/或摄像头,等待信令服务器通知流媒体服务器,然后将本地捕捉到音视频流数据发送给流媒体服务器。
S204流媒体服务器接收到客户端1发送的流数据后、暂存客户端1的数据;根据本发明的一个优选实施方式,流媒体服务器将暂存的客户端1的数据传递给存储服务器,并通知存储服务器备份客户端1的流数据;
根据本发明的一个优选实施方式,每当客户端发送新的音视频数据时,流媒体服务器都会将数据发送给存储服务器备份,并实时通知存储服务器更新。
S205存储服务器备份客户端1的流数据,并根据存储情况返回存储状态信息,如果存储失败,则返回至S204,通知流媒体服务器重新发送流数据;如果存储成功,则继续执行S206;
根据本发明的一个优选实施方式,存储服务器收到流媒体服务器发送的音视频流数据后,便开启存储空间、开启工作线程,先复制从流媒体服务器接收的音视频流数据,再进行存储。
根据本发明的一个优选实施方式,在新建立一个直播室后,完成首个客户端流数据的存储备份后,存储服务器将原音视频流数据与存储状态信息一起返回给流媒体服务器。
根据本发明的一个优选实施方式,在新建立一个直播室后,完成首个客户端流数据的存储备份后,存储服务器仅将存储状态信息返回给流媒体服务器。
根据本发明的一个优选实施方式,如果存储服务器存储客户端的数据流失败,则通知流媒体服务器重新发送流数据,再次执行S204步骤,直到存储备份成功并返回存储状态信息之后才停止。
根据本发明的一个优选实施方式,当存储服务器存储备份成功客户端1的流数据后等待第二个人(客户端2)进入直播室。
S206客户端2进入直播室,先执行和S201相同的操作(即连接信令服务器),通过Socket(套接字)和信令服务器连接,然后通过Socket(套接字)发送任意格式数据(数据是事先和信令服务器协商好的任何数据)到信令服务器,信令服务器验证通过后,客户端2和信令服务器才真正连接,然后信令服务器通过业务指令(也就是事先商量好的任意定义的数据格式)通知媒体服务器可以接受流数据了,最后客户端2将自己的流数据发送给流媒体服务器。
根据本发明的一个优选实施方式,客户端2在进入直播间后与信令服务器交互的步骤如下:
①客户端2先调用webRTC接口去创建工厂类(PeerConnectionFactory),通过该工厂类构造出事先已通过属性约定好的连接类(PeerConnection),并调用添加音视频(addAudioTrack/addVideoTrack)方法,将本地生成好的音轨(AudioTrack)和视频轨道(VideoTrack)以流的形式封装进去。
②接下来就是通过调用连接类(PeerConnection)的创建申请(createOffer)的方法,迫使WebRTC接口回调出本地SDP(Session Description Protocol)会话信息,生成SDP(Session Description Protocol)会话信息之后,客户端2将其发送给信令服务器,信令服务器在拿到SDP(Session Description Protocol)会话信息之后,将其转交给媒体服务器,媒体服务器收到此类会话信息之后,就会生成对应的SDP(Session DescriptionProtocol)会话信息,然后媒体服务器将对应的SDP(Session Description Protocol)会话信息转交给信令服务器,由信令服务器将其回复给发送终端(也就是客户端2)。
③以上步骤就完成了一次信令来回,紧接着,客户端2先保存服务端的SDP(Session Description Protocol)会话信息,与此同时会收集ICE(InteractiveConnectivity Establishment)信息,ICE(Interactive Connectivity Establishment)信息的收集是在SDP(Session Description Protocol)会话信息产生之后,由WebRTC模块去收集,然后将其通过接口回调的方式返回给客户端2。ICE(Interactive ConnectivityEstablishment)信息包含了一些附属信息,如IP地址和Port(端口)、媒体交互协议(TCP/UDP协议)以及音视频信息。拿到ICE(Interactive Connectivity Establishment)信息之后就是ICE(Interactive Connectivity Establishment)的协商。
④请求端和信令/媒体服务器之间的ICE(Interactive ConnectivityEstablishment)的协商本质就是验证ICE(Interactive Connectivity Establishment)信息中携带的协议(TCP/UDP)端口是否可用,如果可用,则二者之间就会才能建立DataChannel通道,相反,需要继续交换ICE。直到验证可用为止。
根据本发明的一个优选实施方式,当客户端2和服务器之间由于网络变化(比如WiFi变移动信号或者WiFi切换等等)导致IP地址的改变,WebRTC会立刻监听到,并且根据最新的IP地址生成最新的ICE(Interactive Connectivity Establishment)信息,那么客户端2依然要发送最新的ICE信息到信令服务器,由它将其转发给媒体服务器。然后验证ICE信息,直到验证通过后停止发送。
本发明通过示例性的方式示出了两个客户端通过信令服务器的交互过程,本领域技术人员可以预期的是,具体实施过程可以以此类推,并不局限于仅两个客户端的参与,具体过程如图3所示:
根据本发明的一个优选实施方式,客户端1和客户端2分别通过Regist(注册)消息与信令服务器建立Connect(连接)。
根据本发明的一个优选实施方式,客户端2进入直播间后,先连接信令服务器,接下来通过WebRTC技术生成本地SDP(Session Description Protocol)信息,将SDP(SessionDescription Protocol)信息发送到信令服务器,信令服务器接收到客户端2发送的SDP(Session Description Protocol)信息之后,将其转发到已在房间等待的客户端1。
根据本发明的一个优选实施方式,客户端1和客户端2通过信令方式交互的媒介为信令服务器。
根据本发明的一个优选实施方式,客户端2收到被信令服务器转发的客户端1的SDP(Session Description Protocol)信息之后,将对方的SDP信息保存下来,然后通过WebRTC技术生成本地的SDP(Session Description Protocol)信息,最后将其通过信令通道发送给客户端1。客户端1收到之后,也将其保存下来。执行到这一步,双方皆保存了对方的SDP信息,接下来就是ICE(Interactive Connectivity Establishment)信息的交互。
根据本发明的一个优选实施方式,WebRTC技术会在SDP(Session DescriptionProtocol)信息交互过程中生成ICE(Interactive Connectivity Establishment)信息,待SDP信息交互完成之后,客户端1将本地生成的ICE信息通过信令服务器发送到客户端2保存,同理,客户端2也将自己本地生成的ICE信息通过信令服务器发送到客户端1保存。待ICE信息全部交换完成之后,客户端1和客户端2才完成了数据传输通路。通路完成之后,客户端才能和流媒体服务器直接通信,接下来就是音视频的传输和接收。
根据本发明的一个优选实施方式,在以上环节中,WebRTC技术是在前期或信令交互过程中准备需要交互的SDP信息和ICE信息;信令的处理过程是交由信令服务器,它建立一个通路,目的是让客户端能来回传递消息。
根据本发明的一个优选实施方式,客户端2将自己的音视频流数据发送给流媒体服务器。
S207流媒体服务器接收到客户端2发送的流数据后,将其进行暂存,然后将其发送给存储服务器存储备份。
流媒体暂存客户端2的流数据的目的在于和客户端1连通后,方面直接将客户端2的流数据发送给客户端1,而不必要从存储服务器中重新获取客户端2的流数据。
如果从存储服务器中获取备份的客户端2的流数据时间足够短,流媒体也可不用暂存,这种情况下,要求具备良好的网络性能以及流媒体服务器和存储服务器传输性能。
根据本发明的一个优选实施方式,采用流媒体暂存客户端2的流数据的方式。
S208存储服务器备份客户端2的流数据,并根据存储情况返回存储状态信息,并将存储服务器中之前保存的客户端1的流数据返回给流媒体服务器;如果存储失败,则返回至S207,通知流媒体服务器重新发送流数据;如果存储成功,则继续执行S209;
根据本发明的一个优选实施方式,存储服务器收到流媒体服务器发送的音视频流数据后,便开启存储空间、开启工作线程,先复制从流媒体服务器接收的音视频流数据,再进行存储。
根据本发明的一个优选实施方式,如果存储服务器存储客户端的数据流失败,则通知流媒体服务器重新发送流数据,再次执行S207步骤,直到存储备份成功并返回存储状态信息之后才停止。
S209在接收到存储服务器返回存储状态信息指示备份成功后,流媒体服务器将在流媒体本地暂存的客户端2的流数据发送给客户端1,与此同时,流媒体服务器将从存储服务器获取之前备份的客户端1的流数据,然后流媒体服务器将其回传给客户端2;
根据本发明的一个优选实施方式,如果由于网络原因和其他异常而导致存储服务器存储流数据失败时,将通知流媒体将之前暂存的客户端2的流数据再次发送给存储服务器备份。
根据本发明的一个优选实施方式,每次存储失败都将返回状态给流媒体服务器,流媒体服务器会重新传输流数据给存储服务器。
根据本发明的一个优选实施方案,可设置最多尝试重传次数。
根据本发明的一个优选实施方案,设置最多尝试五次重传。
S210客户端1渲染从流媒体服务器获取的客户端2的流数据,客户端2渲染从流媒体服务器获取的客户端1的流数据;
根据本发明的一个优选实施方式,客户端1在接收到客户端2的流数据后,将其解码为音频和/或视频信息,并进行显示。
根据本发明的一个优选实施方式,客户端2在接收到客户端1的流数据后,将其解码为音频和/或视频信息,并进行显示。
通过客户端1和客户端2流数据的交换,实现了两个客户端之间的P2SP(Peer-To-Server-Peer)通信。
根据本发明的一个具体实施方式,当第三人加入直播室时,具体实现方式如下:
S211客户端3进入直播室,先通过Socket(套接字)和信令服务器连接,然后通过Socket(套接字)发送任意格式数据(数据是事先和信令服务器协商好的任何数据)到信令服务器,信令服务器验证通过后,客户端3和信令服务器才真正连接,然后信令服务器通过业务指令(也就是事先商量好的任意定义的数据格式)通知媒体服务器可以接受流数据了,最后客户端3将自己的流数据发送给流媒体服务器。
根据本发明的一个优选实施方式,客户端3在进入直播间后与信令服务器交互步骤如下:
①客户端3先调用webRTC接口去创建工厂类(PeerConnectionFactory),通过该工厂类构造出事先已通过属性约定好的连接类(PeerConnection),并调用添加音视频(addAudioTrack/addVideoTrack)方法,将本地生成好的音轨(AudioTrack)和视频轨道(VideoTrack)以流的形式封装进去。
②接下来就是通过调用连接类(PeerConnection)的创建申请(createOffer)的方法,迫使WebRTC接口回调出本地SDP(Session Description Protocol)会话信息,生成SDP(Session Description Protocol)会话信息之后,客户端3将其发送给信令服务器,信令服务器在拿到SDP(Session Description Protocol)会话信息之后,将其转交给媒体服务器,媒体服务器收到此类会话信息之后,就会生成对应的SDP(Session DescriptionProtocol)会话信息,然后媒体服务器将对应的SDP(Session Description Protocol)会话信息转交给信令服务器,由信令服务器将其回复给发送终端(也就是客户端3)。
③以上步骤就完成了一次信令来回,紧接着,客户端3先保存服务端的SDP(Session Description Protocol)会话信息,与此同时会收集ICE(InteractiveConnectivity Establishment)信息,ICE(Interactive Connectivity Establishment)信息的收集是在SDP(Session Description Protocol)会话信息产生之后,由WebRTC模块去收集,然后将其通过接口回调的方式返回给客户端3。ICE(Interactive ConnectivityEstablishment)信息包含了一些附属信息,如IP地址和Port(端口)、媒体交互协议(TCP/UDP协议)以及音视频信息。拿到ICE(Interactive Connectivity Establishment)信息之后就是ICE(Interactive Connectivity Establishment)的协商。
④请求端和信令/媒体服务器之间的ICE(Interactive ConnectivityEstablishment)的协商本质就是验证ICE(Interactive Connectivity Establishment)信息中携带的协议(TCP/UDP)端口是否可用,如果可用,则二者之间就会才能建立DataChannel通道,相反,需要继续交换ICE。直到验证可用为止。
根据本发明的一个优选实施方式,当客户端3和服务器之间由于网络变化(比如WiFi变移动信号或者WiFi切换等等)导致IP地址的改变,WebRTC会立刻监听到,并且根据最新的IP地址生成最新的ICE(Interactive Connectivity Establishment)信息,客户端3发送最新的ICE信息到信令服务器,由它将其转发给媒体服务器。然后验证ICE信息,直到验证通过后停止发送。
根据本发明的一个优选实施方式,客户端3将自己的音视频流数据发送给流媒体服务器。
S212流媒体服务器接收到客户端3发送的流数据后,将其进行保存,然后将其发送给存储服务器存储备份。
S213存储服务器备份客户端3的流数据,并根据存储情况返回存储状态信息,并将存储服务器中之前保存的客户端1和客户端2的流数据返回给流媒体服务器;如果存储失败,则返回至S211,通知流媒体服务器重新发送流数据;如果存储成功,则继续执行S213;
根据本发明的一个优选实施方式,存储服务器收到流媒体服务器发送的音视频流数据后,便开启存储空间、开启工作线程,先复制从流媒体服务器接收的音视频流数据,再进行存储。
根据本发明的一个优选实施方式,如果存储服务器存储客户端的数据流失败,则通知流媒体服务器重新发送流数据,再次执行S211步骤,直到存储备份成功并返回存储状态信息之后才停止。
S214媒体服务器将暂存本地的客户端3的流数据分别转发给客户端1和客户端2,与此同时,媒体服务器从存储服务器获取所有流数据(此时只有客户端1和客户端2的数据),然后将其全部转发给客户端3;
S215客户端3分别渲染客户端1和客户端2的流数据;客户端1分别渲染之前获取到的客户端2和刚刚转发过来的客户端3的流数据;客户端2分别渲染之前获取到的客户端1和现在刚刚过来的客户端3的流数据;
根据本发明的一个优选实施方式,客户端3在接收到客户端1和客户端2的流数据后,将其解码为音频和/或视频信息,并进行显示。
根据本发明的一个优选实施方式,客户端2在接收到客户端1和客户端3的流数据后,将其解码为音频和/或视频信息,并进行显示。
根据本发明的一个优选实施方式,客户端1在接收到客户端2和客户端3的流数据后,将其解码为音频和/或视频信息,并进行显示。
通过客户端1、客户端2和客户端3之间的流数据交换,实现了多个客户端之间的P2SP(Peer-To-Server-Peer)通信。
根据本发明的一个具体实施方式,当第N人加入直播室时,具体实现方式如下:
S310客户端N进入直播室,将自己的流数据发送给流媒体服务器。
根据本发明的一个优选实施方式,客户端N在进入直播间后与信令服务器交互的步骤如下:
①客户端N先调用webRTC接口去创建工厂类(PeerConnectionFactory),通过该工厂类构造出事先已通过属性约定好的连接类(PeerConnection),并调用添加音视频(addAudioTrack/addVideoTrack)方法,将本地生成好的音轨(AudioTrack)和视频轨道(VideoTrack)以流的形式封装进去。
②接下来就是通过调用连接类(PeerConnection)的创建申请(createOffer)的方法,迫使WebRTC接口回调出本地SDP(Session Description Protocol)会话信息,生成SDP(Session Description Protocol)会话信息之后,客户端N将其发送给信令服务器,信令服务器在拿到SDP(Session Description Protocol)会话信息之后,将其转交给媒体服务器,媒体服务器收到此类会话信息之后,就会生成对应的SDP(Session DescriptionProtocol)会话信息,然后媒体服务器将对应的SDP(Session Description Protocol)会话信息转交给信令服务器,由信令服务器将其回复给发送终端(也就是客户端N)。
③以上步骤就完成了一次信令来回,紧接着,客户端N先保存服务端的SDP(Session Description Protocol)会话信息,与此同时会收集ICE(InteractiveConnectivity Establishment)信息,ICE(Interactive Connectivity Establishment)信息的收集是在SDP(Session Description Protocol)会话信息产生之后,由WebRTC模块去收集,然后将其通过接口回调的方式返回给客户端N。
ICE(Interactive Connectivity Establishment)信息包含了一些附属信息,如IP地址和Port(端口)、媒体交互协议(TCP/UDP协议)以及音视频信息。拿到ICE(Interactive Connectivity Establishment)信息之后就是ICE(InteractiveConnectivity Establishment)的协商。
④请求端和信令/媒体服务器之间的ICE(Interactive ConnectivityEstablishment)的协商本质就是验证ICE(Interactive Connectivity Establishment)信息中携带的协议(TCP/UDP)端口是否可用,如果可用,则二者之间就会才能建立DataChannel通道,相反,需要继续交换ICE。直到验证可用为止。
根据本发明的一个优选实施方式,当客户端N和服务器之间由于网络变化(比如WiFi变移动信号或者WiFi切换等等)导致IP地址的改变,WebRTC会立刻监听到,并且根据最新的IP地址生成最新的ICE(Interactive Connectivity Establishment)信息,那么客户端N依然要发送最新的ICE信息到信令服务器,由它将其转发给媒体服务器。然后验证ICE信息,直到验证通过后停止发送。
根据本发明的一个优选实施方式,客户端N将自己的音视频流数据发送给流媒体服务器。
S311流媒体服务器接收到客户端N发送的流数据后,将其进行暂存,然后将其发送给存储服务器存储备份。
S312存储服务器备份客户端N的流数据,并根据存储情况返回存储状态信息,并将存储服务器中之前保存的前N-1个客户端(例如,客户端1、客户端2,…,客户端N-1)的流数据返回给流媒体服务器;如果存储失败,则返回至S311,通知流媒体服务器重新发送流数据;如果存储成功,则继续执行S313;
根据本发明的一个优选实施方式,存储服务器收到流媒体服务器发送的音视频流数据后,便开启存储空间、开启工作线程,先复制从流媒体服务器接收的音视频流数据,再进行存储。
根据本发明的一个优选实施方式,如果存储服务器存储客户端的数据流失败,则通知流媒体服务器重新发送流数据,再次执行S311步骤,直到存储备份成功并返回存储状态信息之后才停止。
S313在接收到存储服务器返回存储状态信息指示备份成功后,流媒体服务器将暂存的客户端N的流数据分别发送给客户端1、客户端2,…,客户端N-1,与此同时,流媒体服务器将接收到的由存储服务器返回的客户端1、客户端2,…,客户端N-1的流数据回传给客户端3;
根据本发明的一个优选实施方式,客户端N在接收到客户端1、客户端2,…,客户端N-1的流数据后,将其解码为音频和/或视频信息,并进行显示。
根据本发明的一个优选实施方式,客户端N在接收到其余客户端的流数据后,将其解码为音频和/或视频信息,并进行显示。
通过客户端1、客户端2,…,客户端N-1之间的流数据交换,实现了多个客户端之间的P2SP(Peer-To-Server-Peer)通信。
采用本发明的方法,当第N个人进入直播室,存储服务器会返回N-1组数据给流媒体服务器,然后由流媒体服务器支配,或转发或继续复制等等。经过增设存储服务器这一方式,可有效提高流媒体服务器的工作效率,流媒体服务器只需要分配和存储服务器之间交互的内存和CPU(处理器)资源,而把更多的资源和能力放到和客户端流媒体交互上即可。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

Claims (10)

1.一种基于流媒体的直播方法,其特征在于包含以下步骤:
S201客户端1发起创建直播室的请求;客户端与信令服务器进行信令交互;
S202信令服务器根据客户端1发起的请求,创建直播室;直播室创建成功后,信令服务器通知流媒体服务器和客户端1直播室创建成功;
S203客户端1将自己的流数据传递给流媒体服务器;
S204流媒体服务器接收到客户端1发送的流数据后、暂存客户端1的数据;
S205存储服务器备份客户端1的流数据,并根据存储情况返回存储状态信息,如果存储失败,则返回至S204,通知流媒体服务器重新发送流数据;如果存储成功,则继续执行S206;
S206客户端2进入直播室,先执行和S201相同的操作,待信令服务器验证通过后,信令服务器通过业务指令通知媒体服务器可以接受流数据;客户端2将自己的流数据发送给流媒体服务器;
S207流媒体服务器接收到客户端2发送的流数据后,将其进行暂存,然后将其发送给存储服务器存储备份;
S208存储服务器备份客户端2的流数据,并根据存储情况返回存储状态信息,并将存储服务器中之前保存的客户端1的流数据返回给流媒体服务器;如果存储失败,则返回至S207,通知流媒体服务器重新发送流数据;如果存储成功,则继续执行S209;
S209在接收到存储服务器返回存储状态信息指示备份成功后,流媒体服务器将在流媒体本地暂存的客户端2的流数据发送给客户端1,与此同时,流媒体服务器将从存储服务器获取之前备份的客户端1的流数据,然后流媒体服务器将其回传给客户端2;
S210客户端1渲染从流媒体服务器获取的客户端2的流数据,客户端2渲染从流媒体服务器获取的客户端1的流数据。
2.根据权利要求1所述的基于流媒体的直播方法,其特征在于:
当第3人加入直播室时,具体实现方式如下:
S211客户端3进入直播室,通过套接字和信令服务器连接,待信令服务器验证通过后,信令服务器通过业务指令通知媒体服务器可接受流数据;客户端3将自己的流数据发送给流媒体服务器;
S212流媒体服务器接收到客户端3发送的流数据后,将其进行保存,然后将其发送给存储服务器存储备份;
S213存储服务器备份客户端3的流数据,并根据存储情况返回存储状态信息,并将存储服务器中之前保存的客户端1和客户端2的流数据返回给流媒体服务器;如果存储失败,则返回至S211,通知流媒体服务器重新发送流数据;如果存储成功,则继续执行S213;
S214媒体服务器将暂存本地的客户端3的流数据分别转发给客户端1和客户端2,与此同时,媒体服务器从存储服务器获取所有流数据,然后将其全部转发给客户端3;
S215客户端3分别渲染客户端1和客户端2的流数据;客户端1分别渲染之前获取到的客户端2和刚刚转发过来的客户端3的流数据;客户端2分别渲染之前获取到的客户端1和现在刚刚过来的客户端3的流数据。
3.根据权利要求1或2所述的基于流媒体的直播方法,其特征在于:
当第N人加入直播室时,具体实现方式如下:
S310客户端N进入直播室,将自己的流数据发送给流媒体服务器;
S311流媒体服务器接收到客户端N发送的流数据后,将其进行暂存,然后将其发送给存储服务器存储备份;
S312存储服务器备份客户端N的流数据,并根据存储情况返回存储状态信息,并将存储服务器中之前保存的前N-1个客户端的流数据返回给流媒体服务器;如果存储失败,则返回至S311,通知流媒体服务器重新发送流数据;如果存储成功,则继续执行S313;
S313在接收到存储服务器返回存储状态信息指示备份成功后,流媒体服务器将暂存的客户端N的流数据分别发送给客户端1、客户端2,…,客户端N-1,与此同时,流媒体服务器将接收到的由存储服务器返回的客户端1、客户端2,…,客户端N-1的流数据回传给客户端3。
4.根据权利要求1-3任一所述的基于流媒体的直播方法,其特征在于:
所述S201客户端1发起创建直播室的请求;客户端与信令服务器进行信令交互具体为:
①客户端1先调用webRTC接口去创建工厂类,通过该工厂类构造出事先已通过属性约定好的连接类,并调用添加音视频方法,将本地生成好的音轨(AudioTrack)和视频轨道(VideoTrack)以流的形式封装进去;
②通过调用连接类的创建申请的方法,使WebRTC接口回调出本地SDP会话信息,生成SDP会话信息之后,客户端1将其发送给信令服务器,信令服务器在拿到SDP会话信息之后,将其转交给媒体服务器,媒体服务器收到此类会话信息之后,生成对应的SDP会话信息,然后媒体服务器将对应的SDP会话信息转交给信令服务器,由信令服务器将其回复给客户端1;
③客户端1先保存服务端的SDP会话信息,与此同时会收集ICE信息,然后将其通过接口回调的方式返回给客户端1;
④验证ICE信息中携带的协议端口是否可用,如果可用,则二者之间就会才能建立DataChannel通道,如不可用,则需要继续交换ICE;直到验证可用为止。
5.根据权利要求1-4任一所述的基于流媒体的直播方法,其特征在于:
当客户端1和信令服务器之间IP地址改变,WebRTC会立刻监听到,并且根据最新的IP地址生成最新的ICE信息,客户端1发送最新的ICE信息到信令服务器,由它将其转发给媒体服务器;验证ICE信息,直到验证通过后停止发送。
6.根据权利要求1-5任一所述的基于流媒体的直播方法,其特征在于:
存储服务器收到流媒体服务器发送的音视频流数据后,便开启存储空间、开启工作线程,先复制从流媒体服务器接收的音视频流数据,再进行存储。
7.根据权利要求1-6任一所述的基于流媒体的直播方法,其特征在于:
客户端N与信令服务器进行信令交互具体过程为:
①客户端N调用webRTC接口创建工厂类,通过该工厂类构造出事先已通过属性约定好的连接类,并调用添加音视频方法,将本地生成好的音轨和视频轨道以流的形式封装进去;
②通过调用连接类的创建申请的方法,使WebRTC接口回调出本地SDP会话信息,生成SDP会话信息之后,客户端N将其发送给信令服务器,信令服务器在拿到SDP会话信息之后,将其转交给媒体服务器,媒体服务器收到此类会话信息之后,生成对应的SDP会话信息,媒体服务器将对应的SDP会话信息转交给信令服务器,由信令服务器将其回复给发送终端;
③客户端N保存服务端的SDP会话信息,与此同时会收集ICE信息;
④验证ICE信息中携带的协议端口是否可用,如果可用,则建立DataChannel通道,如不可用,则需要继续交换ICE;直到验证可用为止。
8.根据权利要求4-7任一所述的基于流媒体的直播方法,其特征在于:
ICE信息的收集是在SDP会话信息产生之后,由WebRTC模块收集,然后将其通过接口回调的方式返回给客户端N。
9.根据权利要求4-8任一所述的基于流媒体的直播方法,其特征在于:
如果存储服务器存储客户端的数据流失败,则通知流媒体服务器重新发送流数据,再次执行S204步骤,直到存储备份成功并返回存储状态信息之后才停止。
10.一种执行如权利要求1-9任一所述的基于流媒体的直播方法的直播系统,其特征在于:
基于流媒体服务器的直播系统包含信令服务器、流媒体服务器、存储服务器以及多个客户端;用户通过客户端接入所述系统,从而在所述系统中建立直播室,或者加入已有的直播室;
信令服务器用于与客户端之间进行信令交互,并向流媒体服务器发出业务指令,使得客户端新建直播室,或者加入已有直播室;
流媒体服务器,用于从信令服务器接收业务指令,以及从各客户端分别获取流媒体数据,并完成各客户端之间流媒体数据的交换;
存储服务器,用于从流媒体服务器接收流媒体数据,从而备份和更新各客户端的流媒体数据。
CN202010282843.0A 2020-04-08 2020-04-08 一种基于流媒体服务器的直播方法及系统 Active CN111479121B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010282843.0A CN111479121B (zh) 2020-04-08 2020-04-08 一种基于流媒体服务器的直播方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010282843.0A CN111479121B (zh) 2020-04-08 2020-04-08 一种基于流媒体服务器的直播方法及系统

Publications (2)

Publication Number Publication Date
CN111479121A true CN111479121A (zh) 2020-07-31
CN111479121B CN111479121B (zh) 2021-05-25

Family

ID=71751490

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010282843.0A Active CN111479121B (zh) 2020-04-08 2020-04-08 一种基于流媒体服务器的直播方法及系统

Country Status (1)

Country Link
CN (1) CN111479121B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112073423A (zh) * 2020-09-15 2020-12-11 杭州二更网络科技有限公司 基于WebRTC进行浏览器推流的方法及系统
CN112073378A (zh) * 2020-08-12 2020-12-11 福建升腾资讯有限公司 一种基于WebRTC的流媒体端口复用方法、设备及介质
CN112188227A (zh) * 2020-09-30 2021-01-05 武汉中科通达高新技术股份有限公司 一种流媒体数据分发方法和装置
CN112351299A (zh) * 2020-11-05 2021-02-09 山东亚华电子股份有限公司 一种宣教广播方法及设备
CN112738644A (zh) * 2021-04-01 2021-04-30 浙江华创视讯科技有限公司 一种基于WebRTC的视频流传输方法和装置
CN113382026A (zh) * 2021-08-16 2021-09-10 腾讯科技(深圳)有限公司 数据处理方法、装置、相关设备及存储介质
CN114079828A (zh) * 2020-08-21 2022-02-22 京东方科技集团股份有限公司 流媒体数据的处理方法以及装置
CN114900508A (zh) * 2022-05-16 2022-08-12 深圳市瑞云科技有限公司 一种基于webrtc传输VR应用数据的方法
CN114945018A (zh) * 2022-04-29 2022-08-26 中国电信股份有限公司 一种流媒体数据分发方法、系统
WO2023160076A1 (zh) * 2022-02-25 2023-08-31 腾讯科技(深圳)有限公司 信息交互方法、装置及计算机设备、存储介质、程序产品
WO2023160649A1 (zh) * 2022-02-24 2023-08-31 北京字节跳动网络技术有限公司 交互方法、系统、装置和非易失性计算机可读存储介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140044020A1 (en) * 2001-06-27 2014-02-13 Skky Incorporated Media delivery platform
CN105812951A (zh) * 2016-03-24 2016-07-27 广州华多网络科技有限公司 流媒体数据交互方法、终端、服务器及系统
US20160295296A1 (en) * 2013-12-25 2016-10-06 Huawei Device Co., Ltd. Media Processing Method, Device, and System
CN107809683A (zh) * 2017-11-22 2018-03-16 广东电网有限责任公司教育培训评价中心 一种基于浏览器无插件的直播系统及方法
CN107959672A (zh) * 2017-11-09 2018-04-24 厦门普杰信息科技有限公司 一种基于达尔文流媒体服务器的中转组播方法
CN108259933A (zh) * 2017-11-29 2018-07-06 贵州省广播电视信息网络股份有限公司 一种能够支撑3种业务功能的推流平台
CN108989488A (zh) * 2018-09-06 2018-12-11 腾讯科技(深圳)有限公司 网络地址转换设备的穿越方法、装置及存储介质
CN109309866A (zh) * 2017-07-27 2019-02-05 腾讯科技(深圳)有限公司 图像处理方法及装置、存储介质
CN109429108A (zh) * 2017-08-28 2019-03-05 创盛视联数码科技(北京)有限公司 一种iOS移动端基于Socket.IO和WebRTC的观看端视频连麦架构
CN109688416A (zh) * 2017-10-19 2019-04-26 腾讯科技(深圳)有限公司 网络直播间的接入方法及网络直播系统
CN110113623A (zh) * 2019-04-18 2019-08-09 浙江工业大学 一种基于sip协议的音视频切片传输平台
CN110198478A (zh) * 2019-05-10 2019-09-03 广州视源电子科技股份有限公司 交互录播方法、系统、客户端、装置、设备及存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140044020A1 (en) * 2001-06-27 2014-02-13 Skky Incorporated Media delivery platform
US20160295296A1 (en) * 2013-12-25 2016-10-06 Huawei Device Co., Ltd. Media Processing Method, Device, and System
CN105812951A (zh) * 2016-03-24 2016-07-27 广州华多网络科技有限公司 流媒体数据交互方法、终端、服务器及系统
CN109309866A (zh) * 2017-07-27 2019-02-05 腾讯科技(深圳)有限公司 图像处理方法及装置、存储介质
CN109429108A (zh) * 2017-08-28 2019-03-05 创盛视联数码科技(北京)有限公司 一种iOS移动端基于Socket.IO和WebRTC的观看端视频连麦架构
CN109688416A (zh) * 2017-10-19 2019-04-26 腾讯科技(深圳)有限公司 网络直播间的接入方法及网络直播系统
CN107959672A (zh) * 2017-11-09 2018-04-24 厦门普杰信息科技有限公司 一种基于达尔文流媒体服务器的中转组播方法
CN107809683A (zh) * 2017-11-22 2018-03-16 广东电网有限责任公司教育培训评价中心 一种基于浏览器无插件的直播系统及方法
CN108259933A (zh) * 2017-11-29 2018-07-06 贵州省广播电视信息网络股份有限公司 一种能够支撑3种业务功能的推流平台
CN108989488A (zh) * 2018-09-06 2018-12-11 腾讯科技(深圳)有限公司 网络地址转换设备的穿越方法、装置及存储介质
CN110113623A (zh) * 2019-04-18 2019-08-09 浙江工业大学 一种基于sip协议的音视频切片传输平台
CN110198478A (zh) * 2019-05-10 2019-09-03 广州视源电子科技股份有限公司 交互录播方法、系统、客户端、装置、设备及存储介质

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112073378A (zh) * 2020-08-12 2020-12-11 福建升腾资讯有限公司 一种基于WebRTC的流媒体端口复用方法、设备及介质
CN112073378B (zh) * 2020-08-12 2022-07-08 福建升腾资讯有限公司 一种基于WebRTC的流媒体端口复用方法、设备及介质
CN114079828A (zh) * 2020-08-21 2022-02-22 京东方科技集团股份有限公司 流媒体数据的处理方法以及装置
CN112073423A (zh) * 2020-09-15 2020-12-11 杭州二更网络科技有限公司 基于WebRTC进行浏览器推流的方法及系统
CN112188227A (zh) * 2020-09-30 2021-01-05 武汉中科通达高新技术股份有限公司 一种流媒体数据分发方法和装置
CN112351299A (zh) * 2020-11-05 2021-02-09 山东亚华电子股份有限公司 一种宣教广播方法及设备
CN112738644A (zh) * 2021-04-01 2021-04-30 浙江华创视讯科技有限公司 一种基于WebRTC的视频流传输方法和装置
CN113382026A (zh) * 2021-08-16 2021-09-10 腾讯科技(深圳)有限公司 数据处理方法、装置、相关设备及存储介质
WO2023160649A1 (zh) * 2022-02-24 2023-08-31 北京字节跳动网络技术有限公司 交互方法、系统、装置和非易失性计算机可读存储介质
WO2023160076A1 (zh) * 2022-02-25 2023-08-31 腾讯科技(深圳)有限公司 信息交互方法、装置及计算机设备、存储介质、程序产品
CN114945018A (zh) * 2022-04-29 2022-08-26 中国电信股份有限公司 一种流媒体数据分发方法、系统
CN114900508A (zh) * 2022-05-16 2022-08-12 深圳市瑞云科技有限公司 一种基于webrtc传输VR应用数据的方法
CN114900508B (zh) * 2022-05-16 2023-08-29 深圳市瑞云科技有限公司 一种基于webrtc传输VR应用数据的方法

Also Published As

Publication number Publication date
CN111479121B (zh) 2021-05-25

Similar Documents

Publication Publication Date Title
CN111479121B (zh) 一种基于流媒体服务器的直播方法及系统
CN107682657B (zh) 一种基于WebRTC的多人语音视频通话方法及系统
US7733808B2 (en) Peer-to-peer aided live video sharing system
CN101960822B (zh) Sip-http应用相关器
Braun et al. Service-centric networking
CN110213652B (zh) 一种音视频数据传输方法、装置及存储介质
EP3996355B1 (en) Method for transferring media stream and user equipment
CN103348657B (zh) 流媒体播放方法、设备及系统
CN114095557B (zh) 数据处理方法、装置、设备以及介质
US20140293997A1 (en) Method, Apparatus, and System for Implementing VOIP Call in Cloud Computing Environment
CN105407369A (zh) 一种基于Web应用的终端通信方法与装置
CN114666306B (zh) WebRTC网络连接建立方法和服务器、电子设备及计算机可读存储介质
CN109361551B (zh) 一种局域网双通道设备发现方法
CN113014855B (zh) 一种视频会议加速方法、系统及视频会议加速平台
CN104660550A (zh) 一种在多服务器之间进行会话迁移的方法
CN112714131A (zh) 一种跨平台连麦的方法、装置、存储介质及电子设备
CN115412597B (zh) 一种实时数据通信方法
CN110943910A (zh) 一种基于WebSocket的对讲机实现方法
CN115865878A (zh) 一种媒体流的传输控制方法、装置、存储介质和电子设备
WO2015058648A1 (zh) 基于ip电话的留言业务处理方法及装置
CN109120578B (zh) 一种实现链路连接处理的方法及装置
CN115277649A (zh) 多媒体会议场景下的文档协同编辑的方法及装置
CN116708381B (zh) 跨网络的数据传输方法、装置和存储介质及电子设备
WO2024032102A1 (zh) 数据传输方法、装置、设备、存储介质和计算机程序产品
WO2024082882A1 (zh) 多媒体内容的传输方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant