一种视频直播方法及装置与流程

文档序号:14915043发布日期:2018-07-11 00:29阅读:128来源:国知局

本发明涉及网路直播领域,尤其涉及一种视频直播方法及装置。



背景技术:

随着网络通讯的发展,越来越多的用户选择通过网络平台来交友和娱乐,这些网络平台包括一对一聊天交友平台、主播聊天室平台、论坛交友平台等,其中,一对一聊天交友平台和主播聊天室平台由于可实时视频交流,更受用户青睐。但是,现有网络直播,仅仅一个角度向观看用户呈现的直播的视图画面,可见,现有网络直播存在直播画面单一的技术问题。



技术实现要素:

鉴于上述问题,本发明实施例提供了一种视频直播方法及装置,克服了上述问题或者至少部分地解决上述问题。

第一方面,本发明实施例提供了一种视频直播方法,所述视频直播方法包括:

如果当前进入的直播间为多角度视频直播间,向数据服务器发送多角度直播请求;

接收所述数据服务器针对所述多角度直播请求返回的N个视频流数据地址,所述N个视频流数据地址用于表征所述直播间正在进行直播的N个视频流文件在视频流服务器上的位置,所述N个视频流文件对应N个场景角度,N为大于1的整数;

根据所述N个视频流数据地址,从所述视频流服务器加载所述N个视频流文件进行播放。

优选的,在所述接收所述数据服务器针对所述多角度直播请求返回的N个视频流数据地址之后,所述方法还包括:

设置所述N个视频流文件中的N-1个视频流文件的音量为零。

优选的,如果N个视频流文件包括主视频流文件和副视频流文件,所述设置所述N个视频流文件中的N-1个视频流文件的音量为零,包括:

从所述N个视频流文件中确定主视频流文件;

保持所述主视频流文件当前的音量值,或者调节主视频流文件的音量值大于预设音量值,所述预设音量值大于零;

将所述副视频流文件的音量从当前的音量值调节至零值。

优选的,在所述向数据服务器发送多角度直播请求之前,所述方法还包括:

当进入所述直播间时,从所述数据服务器获取所述直播间的直播间属性信息,所述直播间属性信息用于表征所述直播间为单角度视频直播间、多角度视频直播间中的一种;

识别所述直播间属性信息。

优选的,在所述识别所述直播间属性信息之后,所述方法还包括:

如果识别出所述直播间为单角度视频直播间,向所述数据服务器发送单角度直播请求;

接收所述数据服务器返回的针对所述单角度直播请求的单个视频流数据地址,所述单个视频流数据地址用于表征所述直播间正在进行直播的单个视频流文件在视频流服务器上的位置;

与所述视频流服务器建立连接;

根据所述单个视频流数据地址,从所述视频流服务器加载所述单个视频流文件。

优选的,所述从所述视频流服务器加载所述N个视频流文件进行播放,包括:

与所述视频流服务器建立连接,并创建N个流对象;

通过所述N个流对象从所述视频流服务器对应接收所述N个视频流文件;

将接收到的所述N个视频流文件对应附加至N个视频对象中;

将所述N个视频对象添加至同一显示容器,以在所述显示容器中播放所述N个视频流文件。

优选的,所述将所述N个视频对象添加至同一显示容器,以在所述显示容器中播放所述N个视频流文件,包括:

将所述N个视频对象进行层级叠加;

将叠加后的N个视频对象添加至所述显示容器,对应播放所述N个视频流文件。

优选的,所述接收所述数据服务器针对所述多角度直播请求返回的N个视频流数据地址,包括:

接收所述数据服务器针对所述多角度直播请求返回的响应数据;

从所述响应数据中解析出流地址数组,所述流地址数组中包括N个数组元素;

将其中一个数组元素对应的视频流数据地址确定为主场景角度的视频流数据地址,将N-1个数组元素均确定为副场景角度的视频流数据地址。

第二方面,本发明实施例提供了一种视频直播装置,所述视频直播装置包括:

第一请求发送单元,用于如果当前进入的直播间为多角度视频直播间,向数据服务器发送多角度直播请求;

第一地址接收单元,用于接收所述数据服务器针对所述多角度直播请求返回的N个视频流数据地址,所述N个视频流数据地址用于表征所述直播间正在进行直播的N个视频流文件在视频流服务器上的位置,所述N个视频流文件对应N个场景角度,N为大于1的整数;

第一加载单元,用于根据所述N个视频流数据地址,从所述视频流服务器加载所述N个视频流文件进行播放。

优选的,所述装置还包括:

音量设置单元,用于设置所述N个视频流文件中的N-1个视频流文件的音量为零。

优选的,如果N个视频流文件包括主视频流文件和副视频流文件,所述音量设置单元,包括:

确定单元,用于从所述N个视频流文件中确定主视频流文件;

主音量调节单元,用于保持所述主视频流文件当前的音量值,或者调节主视频流文件的音量值大于预设音量值,所述预设音量值大于零;

副音量置零单元,用于将所述副视频流文件的音量从当前的音量值调节至零值。

优选的,所述装置还包括:

属性信息获取单元,用于当进入所述直播间时,从所述数据服务器获取所述直播间的直播间属性信息,所述直播间属性信息用于表征所述直播间为单角度视频直播间、多角度视频直播间中的一种;

信息识别单元,用于识别所述直播间属性信息。

优选的,所述装置还包括:

第二请求发送单元,用于如果识别出所述直播间为单角度视频直播间,向所述数据服务器发送单角度直播请求;

第二地址接收单元,用于接收所述数据服务器返回的针对所述单角度直播请求的单个视频流数据地址,所述单个视频流数据地址用于表征所述直播间正在进行直播的单个视频流文件在视频流服务器上的位置;

连接单元,用于与所述视频流服务器建立连接;

第二加载单元,用于根据所述单个视频流数据地址,从所述视频流服务器加载所述单个视频流文件。

优选的,所述第一加载单元,包括:

建立连接子单元,用于与所述视频流服务器建立连接,并创建N个流对象;

视频流文件接收单元,用于通过所述N个流对象从所述视频流服务器对应接收所述N个视频流文件;

附加子单元,用于将接收到的所述N个视频流文件对应附加至N个视频对象中;

视频对象添加单元,用于将所述N个视频对象添加至同一显示容器,以在所述显示容器中播放所述N个视频流文件。

优选的,所述视频对象添加子单元,具体用于:

将所述N个视频对象进行层级叠加;

将叠加后的N个视频对象添加至所述显示容器,对应播放所述N个视频流文件。

优选的,所述第一地址接收单元,具体用于:

接收所述数据服务器针对所述多角度直播请求返回的响应数据;

从所述响应数据中解析出流地址数组,所述流地址数组中包括N个数组元素;

将其中一个数组元素对应的视频流数据地址确定为主场景角度的视频流数据地址,将N-1个数组元素均确定为副场景角度的视频流数据地址。

本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:

由于进入多角度视频直播间时向数据服务器发送多角度直播请求;接收数据服务器针对所述多角度直播请求返回的N个视频流数据地址,根据N个视频流数据地址,从视频流服务器加载N个视频流文件进行播放,从而实现了同时多角度呈现网络直播的视频画面,更全面展现直播间,比一个角度的单一视频画面的视频效果更佳。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的视频直播方法的流程图;

图2为本发明实施例提供的视频直播装置的结构图。

具体实施方式

为了解决现有网络直播存在直播画面单一的技术问题,本发明实施例提供了一种视频直播方法及装置,总体思路如下:

如果当前进入的直播间为多角度视频直播间,向数据服务器发送多角度直播请求;接收数据服务器针对多角度直播请求返回的N个视频流数据地址,根据N个视频流数据地址,从视频流服务器加载N个视频流文件进行播放。

通过上述技术方案从而实现了同时多角度呈现网络直播的视频画面,更全面展现直播间,比一个角度的单一视频画面的视频效果更佳。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参考图1所示,本发明实施例提供了一种视频直播方法,应用于网络直播客户端,参考图1所示,本发明实施例提供的视频直播方法包括如下步骤:

S101、如果当前进入的直播间为多角度视频直播间,向数据服务器发送多角度直播请求;

S102、接收数据服务器针对多角度直播请求返回的N个视频流数据地址,N个视频流数据地址用于表征直播间正在进行直播的N个视频流文件在视频流服务器上的位置,N个视频流文件对应N个场景角度,N为大于1的整数;

S103、根据N个视频流数据地址,从视频流服务器加载N个视频流文件进行播放。

需要说明的是,直播客户端具体可以是智能手机、台式电脑、一体机或笔记本等电子设备,在此不作限制。

下面,结合图1详细介绍网络直播客户端的视频直播方法的具体实现步骤:

首先,执行S101:如果当前进入的直播间为多角度视频直播间,向数据服务器发送多角度直播请求。

在一实施例中,在网络直播客户端进入直播间时,网络直播客户端从数据服务器获取直播间的直播间属性信息,识别直播间属性信息。具体的,直播间属性信息用于表征直播间为单角度视频直播间、多角度视频直播间中的一种。

如果通过识别直播间属性信息,识别出当前进入的直播间为多角度视频直播间,则向数据服务器发送多角度直播请求。

在本发明实施例中,多角度直播请求具体为:在请求参数字段添加"isAngle=true"参数的HTTP请求,"isAngle=true"表征需要向数据服务器请求视频流数据地址。

具体的,多角度视频直播间根据数据服务器提供的swf_api接口(swf_api接口提供视频流数据地址),由flash播放器向数据服务器发起HTTP请求,请求swf_api接口。

网络直播客户端向数据服务器发送多角度直播请求,以使数据服务器接收到多角度直播请求时,识别到多角度直播请求中的"isAngle=true"参数,而返回视频流数据地址组成的流地址数组,其中,流地址数组中的元素与视频流数据地址一一对应。流地址数组中包括N个元素,N个元素对应N个视频流数据地址。

如果通过识别直播间属性信息,如果识别出当前进入的直播间为单角度视频直播间,向数据服务器发送单角度直播请求。单角度直播请求具体为:在请求参数字段添加"isAngle=false"参数的HTTP请求,"isAngle=false"表征需要向数据服务器请求一个视频流数据地址,即:单个视频流数据地址。

网络直播客户端向数据服务器发送单角度直播请求,以使数据服务器接收到单角度直播请求时,识别到单角度直播请求中的"isAngle=true"参数,而返回单个视频流数据地址。

接收数据服务器返回的针对单角度直播请求的单个视频流数据地址,单个视频流数据地址用于表征直播间正在进行直播的单个视频流文件在视频流服务器上的位置;与视频流服务器建立连接;根据单个视频流数据地址,从视频流服务器加载单个视频流文件。

在S101之后,接着执行S102:接收数据服务器针对多角度直播请求返回的N个视频流数据地址,N个视频流数据地址用于表征直播间正在进行直播的N个视频流文件在视频流服务器上的位置,N个视频流文件对应N个场景角度,N为大于1的整数。

具体的,在一实施例中,在接收到N个视频流数据地址后,设置主、副主场景角度的视频流数据地址。具体实现流程为:接收数据服务器针对多角度直播请求返回的响应数据;从响应数据中解析出流地址数组,流地址数组中包括N个数组元素;将其中一个数组元素对应的视频流数据地址确定为主场景角度的视频流数据地址,将N-1个数组元素均确定为副场景角度的视频流数据地址。

在其他实施例中,主、副主场景角度的视频流数据地址也可以由主播客户端定义。

S103、根据N个视频流数据地址,从视频流服务器加载N个视频流文件进行播放。

在一实施例中,在接收数据服务器针对多角度直播请求返回的N个视频流数据地址之后,设置N个视频流文件中的N-1个视频流文件的音量为零,保持一个视频流文件的音量值大于零。

在具体实施过程中,可以在从视频流服务器加载N个视频流文件的同时,设置N个视频流文件中的N-1个视频流文件的音量为零。

针对N个视频流文件包括主视频流文件和副视频流文件,给出一具体实施方式:从N个视频流文件中确定主视频流文件;保持主视频流文件当前的音量值,或者调节主视频流文件的音量值至大于预设音量值,其中,预设音量值大于零;再将副视频流文件的音量从当前音量值调节至零值。

需要说明的是,在本发明实施例中,预设音量值大于零。举例来讲,N=2,由一个对应主场景角度的主视频流文件和一个对应副场景角度的副视频流文件组成,则将副视频流文件的音量值调节为零,保持主视频流文件为当前音量值,或者调节主视频流文件的音量值大于预设音量值。

举例来讲,N=3,由一个对应主场景角度的主视频流文件、一个对应左副场景角度的副视频流文件,一个对应右副场景角度的副视频流文件。将两个副视频流文件的音量值调节为零,保持主视频流文件为当前音量值,或者调节主视频流文件的音量值大于预设音量值。

在具体实施过程中,可以通过设置NetStream.soundTransform,调节主、副视频流文件的音量值。

在一实施例中,从视频流服务器加载N个视频流文件进行播放的一具体实现流程,包括如下步骤:

步骤1:与视频流服务器建立连接,并创建N个流对象;

步骤2:通过N个流对象从视频流服务器对应接收N个视频流文件;

步骤3:将接收到的N个视频流文件对应附加至N个视频对象中;将N个视频对象添加至同一显示容器,以在显示容器中播放N个视频流文件。

在本发明实施例中,网络直播客户端需要结合视频流数据地址和流协议从视频流服务器加载N个视频流文件进行播放。其中,流协议可以使用http(HyperText Transfer Protocol,超文本传输协议)协议、还可以使用rtmp(Real Time Messaging Protocol,实时消息协议)协议。

需要说明的是,视频流数据地址由视频流服务器的地址及直播码(liveid)组成,视频流服务器的地址为URL(Uniform Resource Locator,统一资源定位符)。

如果流协议为http协议,在网络直播客户端进入直播间时,网络直播客户端创建连接对象(NetConnection),接着,网络直播客户端通过调用NetConnection对象,根据视频流服务器的地址与视频流服务器建立连接,建立连接的实现方式为connect(url)。在网络直播客户端与视频流服务器连接成功后,网络直播客户端针对N个视频流数据地址分别创建流对象(netStream)和视频对象(video),即:创建N个netStream对象和N个video对象。接着,网络直播客户端通过调用N个netStream对象,针对N个视频流文件创建N个视频流,并同时调用N个的netStream对象的play(liveid)方法,接收N个视频流文件,然后网络直播客户端将N个netStream对象一一对应附加到video对象上,以使N个视频流文件对应附加至N个视频对象,将N个video对象添加至同一显示容器(NetConnection)中,以在显示容器中播放N个视频流文件,从而显示N个角度的视频画面在flash播放界面上。

具体的,在本实施例中,需要添加网络连接的事件处理函数,在事件处理函数内判断网络连接状态。需要说明的是,网络连接成功的状态为:NetConnection.Connect.Success。

如果流协议是rtmp协议,在网络直播客户端进入直播间时,网络直播客户端创建NetConnection对象,调用NetConnection对象与视频流服务器建立空连接,并创建N个netStream对象和N个video对象,网络直播客户端将视频流服务器的地址(URL)及直播码(liveid)组成拼接成一个完整地址为:liveurl。接着,网络直播客户端同时调用N个netStream对象的play(liveurl)方法,播放当前网络直播客户端当前所在直播间的直播视频。需要说明的是,一个netStream对象对应一个play(liveurl)方法。然后网络直播客户端将N个netStream对象一一对应附加到N个video对象,将N个video对象添加至同一显示容器(NetConnection)中,以在同一显示容器中播放N个视频流文件,从而显示N个角度的视频画面在flash播放界面上。

直播视频的播放过程会产生各种状态事件(statusEvent),将各个状态事件添加至对应的video对象中呈现。在本发明实施实施例中,NetConnection对象和NetStream对象保持一直存在。

具体的,在显示容器中播放N个视频流文件的具体实现方式包括:将N个视频对象进行层级叠加;基于叠加后的N个视频对象对应展现N个视频流文件。从而将N个视频流文件展现为画中画的效果。

在进一步的技术方案中,在显示容器中播放N个视频流文件还包括:设定N个视频对象的长度、宽度、坐标布局中的至少一个参数,从而呈现更佳的观看体验感。

基于同一发明构思,本发明实施例提供了一种视频直播装置,应用于网络直播客户端,参考图2所示,所述视频直播装置包括:

第一请求发送单元201,用于如果当前进入的直播间为多角度视频直播间,向数据服务器发送多角度直播请求;

第一地址接收单元202,用于接收所述数据服务器针对所述多角度直播请求返回的N个视频流数据地址,所述N个视频流数据地址用于表征所述直播间正在进行直播的N个视频流文件在视频流服务器上的位置,N个视频流文件对应N个场景角度,N为大于1的整数;

第一加载单元203,用于根据所述N个视频流数据地址,从所述视频流服务器加载N个视频流文件进行播放。

优选的,所述装置还包括:

音量设置单元,用于设置N个视频流文件中的N-1个视频流文件的音量为零。

优选的,如果N个视频流文件包括主视频流文件和副视频流文件,所述音量设置单元,包括:

确定单元,用于从所述N个视频流文件中确定主视频流文件;

主音量调节单元,用于保持所述主视频流文件当前的音量值,或者调节主视频流文件的音量值大于预设音量值,所述预设音量值大于零;

副音量置零单元,用于将所述副视频流文件的音量从当前的音量值调节至零值。

优选的,所述装置还包括:

属性信息获取单元,用于当进入所述直播间时,从所述数据服务器获取所述直播间的直播间属性信息,所述直播间属性信息用于表征所述直播间为单角度视频直播间、多角度视频直播间中的一种;

信息识别单元,用于识别所述直播间属性信息。

优选的,所述装置还包括:

第二请求发送单元,用于如果识别出所述直播间为单角度视频直播间,向所述数据服务器发送单角度直播请求;

第二地址接收单元,用于接收所述数据服务器返回的针对所述单角度直播请求的单个视频流数据地址,所述主视频流数据地址用于表征所述直播间正在进行直播的单个视频流文件在视频流服务器上的位置;

连接单元,用于与所述视频流服务器建立连接;

第二加载单元,用于根据所述单个视频流数据地址,从所述视频流服务器加载所述单个视频流文件。

优选的,所述第一加载单元203,包括:

建立连接子单元,用于与所述视频流服务器建立连接,并创建N个流对象;

视频流文件接收单元,用于通过所述N个流对象从所述视频流服务器对应接收所述N个视频流文件;

附加子单元,用于将接收到的所述N个视频流文件对应附加至N个视频对象中;

视频对象添加单元,用于将所述N个视频对象添加至同一显示容器,以在所述显示容器中播放所述N个视频流文件。

优选的,所述视频对象添加子单元,具体用于:

将所述N个视频对象进行层级叠加;

将叠加后的N个视频对象添加至所述显示容器,对应播放所述N个视频流文件。

优选的,所述第一地址接收单元202,具体用于:

接收所述数据服务器针对所述多角度直播请求返回的响应数据;

从所述响应数据中解析出流地址数组,所述流地址数组中包括N个数组元素;

将其中一个数组元素对应的视频流数据地址确定为主场景角度的视频流数据地址,将N-1个数组元素均确定为副场景角度的视频流数据地址。

由于本发明实施例所介绍装置,为实施本发明视频直播方法实施例所采用的装置,故而基于本发明视频直播方法实施例所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明视频直播方法实施例所采用的装置都属于本发明所欲保护的范围。

通过上述本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:

由于进入多角度视频直播间时向数据服务器发送多角度直播请求;接收所述数据服务器针对所述多角度直播请求返回的N个视频流数据地址,根据所述N个视频流数据地址,从所述视频流服务器加载所述N个视频流文件进行播放,从而实现了同时多角度呈现视频直播画面,更全面展现直播间,比一个角度的单一视频画面的视频效果更佳。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的各描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的智能摄像系统以及网络摄像头中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者系统程序(如计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是,上述各实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应该将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或者步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干系统的单元权利要求中,这些系统中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

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