视频直播与双向通话融合的系统及方法与流程

文档序号:12624404阅读:473来源:国知局
视频直播与双向通话融合的系统及方法与流程

本发明涉及网络通信领域,更具体地,涉及一种视频直播与双向通话融合的系统及方法。



背景技术:

视频作为一种富媒体,在移动互联网时代,被广泛的应用到各种领域,例如视频直播、视频会议、视频通话、在线教育等。

目前视频技术主要分成两类:视频直播和视频通话。视频直播的主要使用场景为秀场、体育直播、视频监控、无人机航拍直播等。其特点是:视频流单向观看;观看人数不定,秀场直播可能会出现几万人同时观看;对实时性要求不是太高,可以允许有几秒的延时,但需保证每个人都看到,具有高并发性,针对这些特点,视频直播面临的技术难点主要是系统的扩展性、高并发度等。视频通话主要应用在两人之间的点对点通信、多人之间的会议系统。其与直播的不同之处在于系统的并发度要求并不高,但对实时性要求很高。



技术实现要素:

为了实现视频直播与视频双向通话的融合,本发明提出了一种视频直播与双向通话融合的系统及方法。

根据本发明的一个方面,提出一种视频直播与双向通话融合的系统。该系统可以包括直播端、播放端和云服务器。所述直播端采集直播用户的音视频数据并将其转换为第一音视频流进行传输,接收所述云服务器发送的第二音视频流,将其转换为音视频实时加载在所述直播端的界面上进行播放;所述播放端接收所述云服务器发送的所述第一音视频流,并将其转换为音视频实时加载在所述播放端的界面上进行播放,采集观众用户的音视频数据,将其转换为第二音视频流进行传输;所述云服务器以建立的虚拟房间为单位,分别实时接收所述直播端和所述播放端发送的第一音视频流和第二音视频流,并基于所述直播端和所述播放端分别发出的请求各自进行实时转发。

其中,所述直播端与所述播放端通过以下步骤进行实时双向视频通话:

步骤1:所述直播端向所述云服务器请求建立虚拟房间;

步骤2:在虚拟房间建立后,直播端在对应的虚拟房间中将采集的第一音视频流传输至云服务器;

步骤3:所述播放端向云服务器发出第一观看请求,请求接收目标房间对应的所述第一音视频流;云服务器将所述第一观看请求转发给所述目标房间对应的直播端进行授权,再实时将所述第一音视频流转发给所述播放端;

步骤4:在所述第一音视频流转发给所述播放端时,所述直播端向云服务器发送第二观看请求,请求接收目标观众对应的第二音视频流,云服务器将所述第二观看请求转发给所述目标观众对应的播放端进行授权,再实时将所述第二音视频流转发给直播端。

优选地,在步骤4中,当直播端向云服务器发送接收在所述虚拟房间内所有观众的第二音视频流的第二观看请求时,云服务器向所有播放端发送广播。

优选地,在步骤4中,当直播端向云服务器发送接收在所述虚拟房间内多于一个的目标观众的第二音视频流的第二观看请求,并且多于的一个目标观众对应的播放端进行授权时,所述云服务器同时将进行了授权的多于一个的目标观众对应的第二音视频流实时转发给直播端,所述直播端接收所述第二音视频流并将其分别转换为音视频实时加载在所述直播端的界面上进行播放。

优选地,所述直播端和所述播放端通过UDP协议分别与所述云服务器传输所述第一音视频流和所述第二音视频流。

根据本发明的另一方面,提出一种视频直播与双向通话融合的方法。该方法可以包括以下步骤:

直播端向云服务器请求建立虚拟房间;

在虚拟房间建立后,直播端在对应的虚拟房间中将采集的第一音视频流传输至云服务器;

播放端向云服务器发出第一观看请求,请求接收目标房间对应的所述第一音视频流;云服务器将所述第一观看请求转发给所述目标房间对应的直播端进行授权,再实时将所述第一音视频流转发给所述播放端;

第一音视频流转发给所述播放端时,所述直播端向云服务器发送第二观看请求,请求接收目标观众对应的第二音视频流,云服务器将所述第二观看请求转发给所述目标观众对应的播放端进行授权,再实时将所述第二音视频流转发给直播端。

优选地,当直播端向云服务器发送接收在所述虚拟房间内所有观众的第二音视频流的第二观看请求时,云服务器向所有播放端发送广播。

优选地,当直播端向云服务器发送接收在所述虚拟房间内多于一个的目标观众的第二音视频流的第二观看请求,并且多于的一个目标观众对应的播放端进行授权时,所述云服务器同时将进行了授权的多于一个的目标观众对应的第二音视频流实时转发给直播端,所述直播端接收所述第二音视频流并将其分别转换为音视频实时加载在所述直播端的界面上进行播放。

优选地,直播端和播放端通过UDP协议与云服务器传输音视频流。

直播和视频通话两种方案的场景不同,所需的技术也不同,一直都是两套系统,无法很好地融合在一个系统中。本发明的视频直播与双向通话融合的系统及方法,通过直播端和播放段在云服务器中以虚拟房间为单位进行视频流的转发和控制,实现了视频直播和视频双向通话的融合。在保证了系统高并发、低延时的特性,实现视频直播和双向通话的融合,提高了信息传输的效率。

本发明的方法具有其它的特性和优点,这些特性和优点从并入本文中的附图和随后的具体实施例中将是显而易见的,或者将在并入本文中的附图和随后的具体实施例中进行详细陈述,这些附图和具体实施例共同用于解释本发明的特定原理。

附图说明

通过结合附图对本发明示例性实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,其中,在本发明示例性实施例中,相同的参考标号通常代表相同部件。

图1示出了根据本发明的一个实施例的视频直播与双向通话融合的系统的示意图。

图2示出了根据本发明的一个实施例的视频直播与双向通话融合的方法的流程图。

具体实施方式

下面将参照附图更详细地描述本发明。虽然附图中显示了本发明的优选实施例,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。

实施例1

图1示出了根据本发明的一个实施例的视频直播与双向通话融合的系统的示意图。

在该实施例中,视频直播与双向通话融合的系统可以包括直播端101、播放端102以及云服务器103。直播端101采集直播用户的音视频数据并将其转换为第一音视频流进行传输,接收云服务器103发送的第二音视频流,将其转换为音视频实时加载在直播端101的界面上进行播放;播放端102接收云服务器103发送的所述第一音视频流,并将其转换为音视频实时加载在播放端102的界面上进行播放,采集观众用户的音视频数据,将其转换为第二音视频流进行传输;云服务器103以建立的虚拟房间为单位,分别实时接收直播端101和播放端发送的第一音视频流和第二音视频流,并基于所述直播端和所述播放端分别发出的请求各自进行实时转发。

直播端和播放端可以为安卓、IOS、PC、浏览器中的一种。本领域技术人员应当理解,直播端和播放端可以为任意适当的类型,并且直播端与播放端可以为不同类型。

其中,直播端101与播放端102通过以下步骤进行实时双向视频通话:

步骤1:直播端101向云服务器103请求建立虚拟房间。

直播端是视频直播应用的起点,其具有采集直播用户的音频视频并将其转换为音视频流进行传输的功能。同时,直播端也具有接收音视频流并将其转换为音视频进行同步播放的功能。

直播端可以向云服务器发送建立虚拟房间的请求,即请求获得进行视频直播的资格。

步骤2:在虚拟房间建立后,直播端101在对应的虚拟房间中将采集的第一音视频流传输至云服务器103。

通常,通过SDK接口可以从直播端获取直播用户的音视频采样数据,经过预处理、编码后将音视频推流到云服务器。

在一个示例中,推流可以使用UDP协议。

步骤3:播放端102向云服务器103发出第一观看请求,请求接收目标房间对应的所述第一音视频流;云服务器103将所述第一观看请求转发给所述目标房间对应的直播端101进行授权,再实时将所述第一音视频流转发给播放端102。

播放端是视频直播应用的终点,其具有接收音视频流并将其转换为音视频进行播放的功能。在本发明的实施例中,播放端与直播端一样,具有采集观众用户的音视频数据并将其转换为音视频流进行传输的功能。

观众用户通过播放端将其所要观看视频直播的直播用户所建立的虚拟房间选定为目标房间,向云服务器发送接收该目标房间所对应的第一音视频流的第一观看请求,即请求获得观看直播用户的视频直播的资格。在经直播端授权后,可以将直播用户的音视频从云服务器拉流到播放端,并进行解码和同步播放,则实现了直播端对播放端的视频直播。

拉流同样可以使用UDP协议。即,直播端和播放端均可以通过UDP协议与云服务器传输音视频流。

步骤4:在所述第一音视频流转发给播放端102时,直播端101向云服务器103发送第二观看请求,请求接收目标观众对应的第二音视频流,云服务器103将所述第二观看请求转发给所述目标观众对应的播放端102进行授权,再实时将所述第二音视频流转发给直播端101。

具体地,在经播放端授权后,可以将观众用户的音视频从云服务器拉流到直播端,并进行解码和同步播放,则在直播端向播放端直播的同时播放端也向直播端进行直播,即在视频直播的同时实现了视频双向通话。

在一个示例中,在步骤4中,当直播端101向云服务器103发送接收在所述虚拟房间内所有观众的第二音视频流的第二观看请求时,云服务器103向所有播放端102发送广播。即云服务器103将直播端101的第二观看请求同时转发给在所述虚拟房间内所有观众的播放端102,将进行授权的播放端102的目标观众对应的第二音视频流同时转发给直播端101。直播端101接收所述第二音视频流并将其转换为音视频分别实时加载在直播端101的界面上进行播放。以此方式,可以与所有播放端进行双向视频通话。

在一个示例中,在步骤4中,在步骤4中,当直播端101向云服务器103发送接收在所述虚拟房间内多于一个的目标观众的第二音视频流的第二观看请求,并且多于的一个目标观众对应的播放端进行授权时,云服务器103同时将进行了授权的多于一个的目标观众对应的第二音视频流实时转发给直播端101,直播端101接收所述第二音视频流并将其分别转换为音视频实时加载在其界面上进行播放。

多个目标观众对应的音视频可以以小窗口的形式并排显示在直播端101的界面上。本领域技术人员应当理解,多个目标观众对应的音视频可以以任意适当的方式显示在直播段的界面上。

在一个示例中,所述直播端和所述播放端通过UDP协议分别与所述云服务器传输所述第一音视频流和所述第二音视频流。

实施例2

图2示出了根据本发明的一个实施例的视频直播与双向通话融合的方法的流程图。

在该实施例中,视频直播与双向通话融合的方法可以包括以下步骤:

直播端向云服务器请求建立虚拟房间;

在虚拟房间建立后,直播端在对应的虚拟房间中将采集的第一音视频流传输至云服务器;

播放端向云服务器发出第一观看请求,请求观看目标房间中的所述第一音视频流;云服务器将所述第一观看请求转发给所述目标房间对应的直播端进行授权后,再实时将所述第一音视频流转发给所述播放端;

第一音视频流转发给所述播放端时,所述直播端向云服务器发送第二观看请求,请求观看目标观众对应的第二音视频流,云服务器将所述第二观看请求转发给所述目标观众对应的播放端进行授权后,再实时将所述第二音视频流转发给直播端。

在一个示例中,当直播端向云服务器发送接收在所述虚拟房间内所有观众的第二音视频流的第二观看请求时,云服务器可以向所有播放端发送广播。以此方式,可以快捷方便地与所有播放端的双向视频通话。

在一个示例中,当直播端向云服务器发送接收在所述虚拟房间内多于一个的目标观众的第二音视频流的第二观看请求,并且多于的一个目标观众对应的播放端进行授权时,所述云服务器同时将进行了授权的多于一个的目标观众对应的第二音视频流实时转发给直播端,所述直播端接收所述第二音视频流并将其分别转换为音视频实时加载在所述直播端的界面上进行播放。

在一个示例中,直播端和播放端可以通过UDP协议与云服务器传输音视频流。

应用示例

以下以老师作为直播用户开设虚拟课堂为例对本发明的视频直播与双向通话融合的方法进行说明。

老师作为直播用户,通过直播端101向云服务器103请求建立虚拟房间,即开设虚拟课堂。在该虚拟课堂建立以后,直播端101在其中将采集的老师授课的第一音视频流传输至云服务器103。

作为观众用户的学生通过播放端102向云服务器103发出第一观看请求,请求接收所述虚拟房间对应的第一音视频流,即请求观看老师授课的视频直播。云服务器103将学生的第一观看请求转发给所述虚拟房间对应的老师的直播端101进行授权后,再实时将老师授课的第一音视频流转发给学生的播放端102。

在线教育并不是单纯的直播,它需要有学生的实时反馈,达到师生互动的目的。老师端如果需要看课堂内某个学生的视频,则通过直播端101向云服务器103发送第二观看请求,请求接收其需要观看的学生所对应的第二音视频流。云服务器103将该第二观看请求转发给老师所选择的学生对应的播放端102进行授权,再实时将学生所对应的第二音视频流转发给老师的直播端101。

如果老师请求同时看所有学生的视频,则通过直播端101向云服务器103发送请求接收在该虚拟课堂中的所有学生的音视频流的第二观看请求,云服务器103则向所有学生的播放端发送广播。如果所有的学生都进行了授权,则云服务器103将所有学生的第二音视频流同时转发给老师的直播端101,分别转换为音视频实时加载在直播端101的界面上进行播放。于是老师可以与在虚拟课堂中的所有学生进行双向视频通话。

基于这样的消息协议,既可以支持多人同时观看主播的视频直播模式,也可以支持两人之间实时的视频通话模式。两者无缝的融合,既有高并发、高扩展性的特点,也兼有低延时的特点。

本领域技术人员应理解,上面对本发明的实施例的描述的目的仅为了示例性地说明本发明的实施例的有益效果,并不意在将本发明的实施例限制于所给出的任何示例。

本发明可以是装置、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1