直播视频与动画融合方法、装置及终端设备转让专利

申请号 : CN201710564127.X

文献号 : CN107360160A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 库宇

申请人 : 广州华多网络科技有限公司

摘要 :

本发明实施例公开了一种直播视频与动画融合方法、装置和终端设备,其中,直播视频与动画融合方法,包括如下步骤:读取主播端录制的视频数据并进行预处理,得到待上传的原始视频流;响应于针对所述原始视频流的动画融合指令,根据所述动画融合指令读取相应的动画数据并叠加于所述原始视频流上层,得到合成视频流;上传所述合成视频流至预设服务器以将该合成视频流推送至直播间。本发明的实施,能够通过将原始视频流和动画进行融合,有效增强网络直播中的视频互动效果,提升了用户体验。

权利要求 :

1.一种直播视频与动画融合方法,其特征在于,包括如下步骤:读取主播端录制的视频数据并进行预处理,得到待上传的原始视频流;

响应于针对所述原始视频流的动画融合指令,根据所述动画融合指令读取相应的动画数据并叠加于所述原始视频流上层,得到合成视频流;

上传所述合成视频流至预设服务器以将该合成视频流推送至直播间。

2.根据权利要求1所述的直播视频与动画融合方法,其特征在于,所述动画数据包括Flash动画数据;所述根据所述动画融合指令读取相应的动画数据并叠加于所述原始视频流上层,包括:设置Flash控件Wmode属性的参数为Transparent或Opaque,或者,在Flash控件中调用setmode函数;

通过所述Flash控件读取Flash动画数据并叠加于所述原始视频流上层。

3.根据权利要求1所述的直播视频与动画融合方法,其特征在于,所述动画数据包括Gif动画数据;所述根据所述动画融合指令读取相应的动画数据并叠加于所述原始视频流上层,包括:读取Gif动画数据,并获取Gif动画数据的动画帧的数目和显示相邻动画帧的时间间隔;

根据所述时间间隔依次在所述原始视频流上层的预定位置叠加所述Gif动画数据的各个动画帧。

4.根据权利要求2或3所述的直播视频与动画融合方法,其特征在于,所述动画数据存储于本机;

所述根据所述动画融合指令读取相应的动画数据并叠加于所述原始视频流上层的步骤之前,还包括:响应于所述动画融合指令或依据预定的时间周期,通过如下至少一种方式处理所述动画数据:对一项或多项所述动画数据进行MD5校验;删除校验值不匹配的动画数据,和/或删除校验值不匹配的动画数据在用户界面中的相应控件;

根据配置文件记录的与所述动画数据对应的路径信息,查找一项或多项所述动画数据;删除无法查找到的动画数据所对应的路径信息,和/或删除无法查找到的动画数据在用户界面中的相应控件。

5.根据权利要求4所述的直播视频与动画融合方法,其特征在于,所述配置文件为加密状态;

所述根据配置文件记录的与所述动画数据对应的路径信息,查找一项或多项所述动画数据之前,还包括:通过预设的算法对所述配置文件进行解密。

6.根据权利要求3所述的直播视频与动画融合方法,其特征在于,所述根据所述时间间隔依次在所述原始视频流上层的预定位置叠加所述Gif动画数据的各个动画帧,包括:获取当前所述主播端对应的直播间的人气值;

根据所述人气值相应调整所述时间间隔,并以调整后的时间间隔依次在所述原始视频流上层的预定位置叠加所述Gif动画数据的各个动画帧。

7.根据权利要求2或3所述的直播视频与动画融合方法,其特征在于,所述根据所述动画融合指令读取相应的动画数据并叠加于所述原始视频流上层,包括:读取相应的至少两个动画数据,依次将至少两个动画数据分别相应叠加于所述原始视频流上层的不同预定位置;或读取相应的动画数据,检测到上一个动画数据未叠加完毕时,将当前的动画数据叠加于所述原始视频流上层的预定位置以使得当前的动画数据不会完全遮盖所述上一个动画数据。

8.根据权利要求3所述的直播视频与动画融合方法,其特征在于,所述根据所述动画融合指令读取相应的动画数据并叠加于所述原始视频流上层,还包括:获取所述原始视频流当前的像素值,根据所述当前像素值相应调整所述动画数据,使得所述动画数据的像素值与所述当前像素值相匹配。

9.一种直播视频与动画融合装置,其特征在于,包括:

预处理模块,用于读取本机录制的视频数据并进行预处理,得到待上传的原始视频流;

合成模块,用于响应于针对所述原始视频流的动画融合指令,根据所述动画融合指令读取相应的动画数据并叠加于所述原始视频流上层,得到合成视频流;

推送模块,用于上传所述合成视频流至预设服务器以将该合成视频流推送至直播间。

10.一种终端设备,其特征在于,包括显示屏、存储器以及一个或多个处理器,所述存储器用于存储包括应用程序的信息,所述处理器用于控制应用程序的执行,所述处理器执行所述应用程序时实现权利要求1-8任意一项所述的直播视频与动画融合方法中的步骤。

说明书 :

直播视频与动画融合方法、装置及终端设备

技术领域

[0001] 本发明涉及媒体传输技术领域,具体而言,本发明涉及一种直播视频与动画融合方法、装置及终端设备。

背景技术

[0002] 随着互联网技术、流媒体技术的发展和终端设备设备的日益普及,如今网络直播行业日益成熟,各大直播平台也如同雨后春笋般层出,网络直播已经被越来越多的主流人群所接受,网络直播以新颖的样式和相对便捷的服务给网民带来一种全新的视角体验和视野冲击,特别是网络的双向流通呈现出了给予受众应有尊重的特性,受到网友尤其是年轻网民的青睐。
[0003] 网络直播的最大特点即“互动”,由于直播在网络平台上进行,观众的自主选择与参与度得到了巨大的延伸。网络直播的互动方式也从传统的文字到图文,再到语音,并已经进入了视频互动的时代,例如,利用服务器为视频流写入水印,用户在观众端发送评论能够为视频流添加弹幕等。
[0004] 然而,在现有技术中,往往由主播端将视频流发送至服务器进行渲染,再由服务器发送到直播间,这无疑加重了服务器的负担,并加剧了数据延迟的现象,导致了难以实现实时互动、直播和互动效果差等问题。

发明内容

[0005] 本发明的目的在于针对以上存在的至少一方面不足,提供一种直播视频与动画融合方法、装置及终端设备,能够增强网络直播中的视频互动效果。
[0006] 为了实现上述目的,本发明采取如下若干方面的技术方案:
[0007] 第一方面,本发明实施例中提供了一种直播视频与动画融合方法,包括如下步骤:
[0008] 读取主播端录制的视频数据并进行预处理,得到待上传的原始视频流;
[0009] 响应于针对所述原始视频流的动画融合指令,根据所述动画融合指令读取相应的动画数据并叠加于所述原始视频流上层,得到合成视频流;
[0010] 上传所述合成视频流至预设服务器以将该合成视频流推送至直播间。
[0011] 结合第一方面,本发明在第一方面的第一种实现方式中,所述动画数据包括Flash动画数据;所述根据所述动画融合指令读取相应的动画数据并叠加于所述原始视频流上层,包括:
[0012] 设置Flash控件Wmode属性的参数为Transparent或Opaque,或者,在Flash控件中调用setmode函数;
[0013] 通过所述Flash控件读取Flash动画数据并叠加于所述原始视频流上层。
[0014] 结合第一方面,本发明在第一方面的第二种实现方式中,所述动画数据包括Gif动画数据;所述根据所述动画融合指令读取相应的动画数据并叠加于所述原始视频流上层,包括:
[0015] 读取Gif动画数据,并获取Gif动画数据的动画帧的数目和显示相邻动画帧的时间间隔;
[0016] 根据所述时间间隔依次在所述原始视频流上层的预定位置叠加所述Gif动画数据的各个动画帧。
[0017] 结合第一方面的第一或第二种实现方式,本发明在第一方面的第三种实现方式中,所述动画数据存储于本机;所述根据所述动画融合指令读取相应的动画数据并叠加于所述原始视频流上层的步骤之前,还包括:响应于所述动画融合指令或依据预定的时间周期,通过如下至少一种方式处理所述动画数据:
[0018] 对一项或多项所述动画数据进行MD5校验;删除校验值不匹配的动画数据,和/或删除校验值不匹配的动画数据在用户界面中的相应控件;
[0019] 根据配置文件记录的与所述动画数据对应的路径信息,查找一项或多项所述动画数据;删除无法查找到的动画数据所对应的路径信息,和/或删除无法查找到的动画数据在用户界面中的相应控件。
[0020] 结合第一方面的第三种实现方式,本发明在第一方面的第四种实现方式中,所述配置文件为加密状态;所述根据配置文件记录的与所述动画数据对应的路径信息,查找一项或多项所述动画数据之前,还包括:通过预设的算法对所述配置文件进行解密。
[0021] 结合第一方面的第二种实现方式,本发明在第一方面的第五种实现方式中,所述根据所述时间间隔依次在所述原始视频流上层的预定位置叠加所述Gif动画数据的各个动画帧,包括:
[0022] 获取当前所述主播端对应的直播间的人气值;
[0023] 根据所述人气值相应调整所述时间间隔,并以调整后的时间间隔依次在所述原始视频流上层的预定位置叠加所述Gif动画数据的各个动画帧。
[0024] 结合第一方面的第一或第二种实现方式,本发明在第一方面的第六种实现方式中,所述根据所述动画融合指令读取相应的动画数据并叠加于所述原始视频流上层,包括:
[0025] 读取相应的至少两个动画数据,依次将至少两个动画数据分别相应叠加于所述原始视频流上层的不同预定位置;或
[0026] 读取相应的动画数据,检测到上一个动画数据未叠加完毕时,将当前的动画数据叠加于所述原始视频流上层的预定位置以使得当前的动画数据不会完全遮盖所述上一个动画数据。
[0027] 结合第一方面第二种实现方式,本发明在第一方面的第七种实现方式中,所述根据所述动画融合指令读取相应的动画数据并叠加于所述原始视频流上层,还包括:
[0028] 获取所述原始视频流当前的像素值,根据所述当前像素值相应调整所述动画数据,使得所述动画数据的像素值与所述当前像素值相匹配。
[0029] 第二方面,本发明实施例中提供了一种直播视频与动画融合装置,包括:
[0030] 预处理模块,用于读取本机录制的视频数据并进行预处理,得到待上传的原始视频流;
[0031] 合成模块,用于响应于针对所述原始视频流的动画融合指令,根据所述动画融合指令读取相应的动画数据并叠加于所述原始视频流上层,得到合成视频流;
[0032] 推送模块,用于上传所述合成视频流至预设服务器以将该合成视频流推送至直播间。
[0033] 第三方面,本发明实施例中提供了一种终端设备,包括显示屏、存储器以及一个或多个处理器,所述存储器用于存储包括应用程序的信息,所述处理器用于控制应用程序的执行,所述处理器执行所述应用程序时实现第一方面或其任意一种实现方式所述的直播视频与动画融合方法。
[0034] 相比现有技术,本发明的方案至少具有以下优点:
[0035] 首先,本发明通过主播端将原始视频流和动画进行融合,并将合成视频流上传至服务器以推送到直播间,此过程中服务器不再需要对视频流进行渲染,而仅需将视频流推送至直播间,从而降低了服务器的带宽压力,有效提升了视频互动效果。
[0036] 其次,本发明通过将动画数据与视频流进行融合,使得主播直播的过程中,当在需要使用Flash或Gif动画的场景时,只需点击现场特效功能键,在浮窗中选择自己想要的动画,相应的效果便能够融合在主播的直播视频中,减轻了画面延迟的现象,使直播更实时、生动,优化了主播与观众的互动效果。
[0037] 此外,还可方便地根据主播端对应直播间的人气值调整动画融合过程,或根据原始视频流的像素值相应调整用于融合的动画数据,或在融合多个动画数据时将动画数据依次叠加于原始视频流上层的预定位置,丰富了主播与观众之间的互动方式,提升了互动趣味性和用户体验。
[0038] 本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

[0039] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0040] 图1为本发明一种实施例的直播视频与动画融合方法的流程图;
[0041] 图2为本发明一种实施例的直播视频与动画融合前的界面示意图;
[0042] 图3为本发明一种实施例的直播视频与动画融合后的界面示意图;
[0043] 图4为本发明一种实施例的直播视频与Flash动画融合的层级示意图;
[0044] 图5为本发明一种实施例的直播视频与Gif动画融合的流程图;
[0045] 图6为本发明一种实施例的应用架构图;
[0046] 图7为本发明一种实施例的直播视频与动画融合装置的结构框图;
[0047] 图8为本发明一种实施例的终端设备的结构原理图。

具体实施方式

[0048] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
[0049] 本领域普通技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
[0050] 本领域普通技术人员可以理解,这里所使用的“Flash动画数据”的文件格式可包括Flash动画的swf格式,为Macromedia Flash播放器在互联网上进行矢量图形和动画发布的文件格式,能够进行高效地格式解析。这里所使用的“Gif动画数据”的文件格式为图形交换文件的Gif格式,Gif动画由一组相隔指定间隔时间显示的动画帧(图片)组组成。
[0051] 本领域普通技术人员可以理解,这里所使用的“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。本发明所述方法主要适用于智能手机终端、平板电脑或者计算机终端等具有通信功能的终端设备,不限制于其操作系统的类型。
[0052] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0053] 请参阅图1~图5,本发明的一种直播视频与动画融合方法,包括如下步骤S11-S13:
[0054] 步骤S11,读取主播端录制的视频数据并进行预处理,得到待上传的原始视频流。
[0055] 一种实施方式中,终端设备通常自带或外接有摄像头,主播端通过摄像头可录制视频。另一种实施方式中,终端设备预装有相应的视频录制软件,该视频录制软件可以将用户界面中的某些活动,如玩游戏、操作软件等,录制为视频,从而主播端可以进行游戏直播或者软件教学直播等。因此,主播端录制的视频数据具体可包括上述任意方式所形成的视频数据。
[0056] 读取上述视频数据后,可根据用户或程序的预处理指令进行预处理,包括根据预定协议对视频数据进行处理,得到待上传的原始视频流。当然,上述预处理还可包括从视频算法集中获取视频算法,如美白算法、视频特效算法等,利用视频算法对视频数据或原始视频流进行处理。
[0057] 步骤S12,响应于针对所述原始视频流的动画融合指令,根据所述动画融合指令读取相应的动画数据并叠加于所述原始视频流上层,得到合成视频流。
[0058] 用户或程序触发针对当前主播端得到的原始视频流的动画融合指令后,根据该动画融合指令读取相应的动画数据并叠加于所述原始视频流上层。一种实施例中,请参阅图2,该动画融合指令对应的操作按键显示于所述主播端的用户界面。而该动画融合指令对应的动画数据通常预存或实时缓存于本机,读取动画数据并叠加于所述原始视频流上层,便可得到合成视频流,使得直播过程更加生动,获得更好的互动效果。一种实施例中,请参阅图3,直播视频与动画融合后得到的合成视频流还可即时显示于用户界面。
[0059] 具体而言,上述动画数据可包括Flash动画数据或Gif动画数据,相应地,本发明的实施例优选如下两种方式读取相应的动画数据并叠加于所述原始视频流上层:
[0060] 其一,设置Flash控件Wmode属性的参数为Transparent或Opaque,或者,在Flash控件中调用setmode函数;通过所述Flash控件读取Flash动画数据并叠加于所述原始视频流上层;
[0061] 其二,读取Gif动画数据,并获取Gif动画数据的动画帧的数目和显示相邻动画帧的时间间隔;根据所述时间间隔依次在所述原始视频流上层的预定位置叠加所述Gif动画数据的各个动画帧。
[0062] 举例而言,本发明可能的实施例中,请参阅图4,在原始视频流的上层播放flash动画数据,从而将Flash动画叠加于直播视频的层级之上。具体地,为了防止视频直播视频被Flash动画完全覆盖,可在Flash中AXShockWaveFile控件的Wmode属性中设置相应的模式字符串,将Wmode属性的参数设置为Transparent或Opaque,或使用VC++在Flash控件中调用setmode函数,使得Flash控件读取地Flash动画数据叠加于所述原始视频流上层,得到合成视频流。
[0063] 此外,本发明其他可能的实施例中,请参阅图5,步骤S12可包括步骤S122,即读取Gif动画数据后获取Gif动画数据的动画帧的数目和显示相邻动画帧的时间间隔;根据所述时间间隔依次在所述原始视频流上层的预定位置叠加所述Gif动画数据的各个动画帧。具体地,可以使用GDI+播放Gif动画,通过调用GetFrameDimensionsCount()函数获取Gif动画数据中的动画帧数目,通过Image对象的GetPropertyItem()函数获取每个相邻动画帧的时间间隔。进而设置当前有效的框架数据,根据得到的时间间隔,依次在原始视频流上层的预定位置继续显示Gif动画数据的动画帧,便能够在直播视频上层播放GIF动画,得到合成视频流。
[0064] 作为示例,假设Gif动画数据的文件存储位置为"F:\\byebye.gif",则使用GDI+播放Gif动画的具体代码可为:
[0065]
[0066]
[0067] 在此基础上,为了达到更佳的直播显示或互动的效果,本发明在一些实施例中还能根据实际需要调整用于叠加Gif动画数据的时间间隔和/或预定位置。例如,一种实施例中,上述根据所述时间间隔依次在所述原始视频流上层的预定位置叠加所述Gif动画数据的各个动画帧,包括:获取当前所述主播端对应的直播间的人气值;根据所述人气值相应调整所述时间间隔,并以调整后的时间间隔依次在所述原始视频流上层的预定位置叠加所述Gif动画数据的各个动画帧。通常而言该直播间的人气值可通过服务器获取用户报文而得到,主播端根据基于预设的人气值与时间间隔的映射关系相应调整上述时间间隔为当前人气值所映射的时间间隔,或者,基于预设的人气值与延时倍数的映射关系相应调整上述时间间隔乘以当前人气值所映射的延时倍数,用于叠加Gif动画数据。
[0068] 根据人气值相应调整所述时间间隔的过程中,人气值与时间间隔的映射关系可以为正相关或负相关,本发明实施例一种可能的设计中,例如原时间间隔为0.3秒,当人气值为1万时,延时倍数为1.1,则用于叠加Gif动画数据时间间隔为0.33秒;当人气值为2万时,延时倍数为1.2,则用于叠加Gif动画数据时间间隔为0.36秒。通过根据主播端对应的直播间的人气值调整叠加Gif动画数据动画帧的间隔时间,能够降低带宽限制和传输丢包对直播显示的影响,优化直播的互动效果。本发明实施例另一种可能的设计中,根据所述人气值相应调整所述时间间隔,包括:确定人气值大于预置值时,把时间间隔缩小到0.5-0.8倍;或确定人气值大于第一预置值时,将时间间隔缩小到0.8倍,确定人气值大于第二预置值,把时间时间间隔缩小到0.5倍;第一预置值小于第二预置值。根据人气值相应调整所述时间间隔,使得显示动画帧的速度与人气值关联,提高了直播的体验效果。上述举例中,人气值越高,说明当前直播间的观看人数越多,缩小时间间隔,可加快显示动画帧的速度。一方面,加快显示动画帧,在人数多的直播间间,有利于观众快速看完该动画帧,继续观看/了解其他人发的信息,以免错过其他人发的信息;另一方面,加快显示动画帧,有利于营造一种热闹的氛围,促进互动,气氛在人数多的直播间的影响很明显。
[0069] 另一种实施例中,为了防止因读取的多个动画数据相互遮盖而影响直播视频与动画的融合效果,上述根据所述动画融合指令读取相应的动画数据并叠加于所述原始视频流上层,包括:读取相应的至少两个动画数据,依次将至少两个动画数据分别相应叠加于所述原始视频流上层的不同预定位置;或读取相应的动画数据,在检测到上一个动画数据未叠加完毕时,将当前的动画数据叠加于所述原始视频流上层的预定位置以使得当前的动画数据不会完全遮盖所述上一个动画数据,有效提升了用户体验。
[0070] 在实际应用场景中,由于存于本机的动画数据与当前得到的原始视频流往往颜色差异较大或者色彩搭配效果不佳,因此,进一步地,本发明的一种实施例中,上述根据所述动画融合指令读取相应的动画数据并叠加于所述原始视频流上层,还可包括:获取所述原始视频流当前的像素值,根据所述当前像素值相应调整所述动画数据,使得所述动画数据的像素值与所述当前像素值相匹配。具体地,根据原始视频流当前的像素值,基于用户自定义或客户端预设的匹配策略,对用于叠加的动画数据的像素值进行相应的处理,使得所述动画数据的像素值与所述当前像素值相匹配,叠加于原始视频流上层的动画呈现淡化、透明度改变等效果,从而让直播视频和动画的融合更加智能化。
[0071] 如前所述,由于动画数据存于本机,为保证直播视频与动画融合的正常运行,一种实施例中主播端能够对动画数据进行兼容性处理。例如,为了倡导绿色直播,防止动画数据被用户篡改,包括使用一些非法的文件替换方式更换动画数据,在上述根据所述动画融合指令读取相应的动画数据并叠加于所述原始视频流上层之前,还包括:响应于所述动画融合指令或依据预定的时间周期,通过如下至少一种方式处理所述动画数据:
[0072] 对一项或多项所述动画数据进行MD5校验;删除校验值不匹配的动画数据,和/或删除校验值不匹配的动画数据在用户界面中的相应控件;
[0073] 根据配置文件记录的与所述动画数据对应的路径信息,查找一项或多项所述动画数据;删除无法查找到的动画数据所对应的路径信息,和/或删除无法查找到的动画数据在用户界面中的相应控件。
[0074] 此外,还可根据具体需求设置所述配置文件为加密状态;在需要调用配置文件、根据配置文件记录的与所述动画数据对应的路径信息查找动画数据前,再通过预设的算法对所述配置文件进行解密,以确保普通用户无法打开随意编辑,进一步保证配置文件和动画数据安全。
[0075] 步骤S13,上传所述合成视频流至预设服务器以将该合成视频流推送至直播间。
[0076] 得到合成视频流后,上传所述合成视频流至预设服务器以将该合成视频流推送至直播间。需要说明的是,在一些实施例中,例如当本发明在主播端的辅助应用实施时,上传合成视频流至预设服务器的过程也可包含至少两个进程之间的跨进程通信,具体可包括通过跨进程通信将合成视频流传输至主播端,再由主播端上传所述合成视频至服务器以将该合成视频流推送至直播间。该跨进程通信的方式可包括:广播、接口访问、对象访问、共享访问等。
[0077] 上述将合成视频流至预设服务器的过程更进一步地可包括根据预定规则将所述合成视频流上传至服务器,该预定规则可为将所述合成视频流上传至直播服务器的行为规范,具体过程可为将生成合成视频流的数据包的数据完整性的检测指令,其中该数据包不仅包含有所述合成视频流,还可包含有音频流、针对直播中主播发送的广播数据以及弹幕数据,当具备有所述广播数据和/或弹幕数据时,将所述广播数据和/或弹幕数据合并至所述数据包中,在所述数据包在被执行上传指令时需触发转换指令以将合成视频流的数据包转换为适于发送的电信号。
[0078] 本发明可能的实施例中,请参阅图6,直播视频与动画融合方法相关的应用架构可分为三个层级,包含有应用程序层、多媒体接口层、多媒体服务层。
[0079] 其中,所述应用程序层负责处理业务的主逻辑,包括展示给用户的应用程序主功能界面,以及当用户在使用具体某功能时的界面逻辑展现,举例而言,其主要可包括:
[0080] Mix Video Manager(混合视频管理器)提供了应用程序生成混合的视频流的过程中的相关操作的功能界面;
[0081] Video Container(视频容器)用于容纳该应用程序输入或输出的相关数据;
[0082] Mix Audio Manager(混合音频管理器)提供了应用程序生成混合的音频流的过程中的相关操作的功能界面。
[0083] 其所述应用程序层的各部分结构展示出了不同的界面排版,提高了界面显示的有效性,为音视频处理提供了更为便捷有利的平台。
[0084] 本发明实施例中,所述多媒体服务层则主要封装抽离出相关的算法类,包括美白算法类,视频特效算法类,声音降噪算法类等等;具体的算法实现类针对于本身输入和输出是什么,从而将应用程序层和多媒体服务层在逻辑上完全隔离开,其中主要可包括:CCapture Video(视频捕获)、CAccompany Music(伴奏音乐)、CMedia Video(媒体视频)、CMood Music(气氛音乐)、CDesktop Video(桌面视频)、CDecoration Layer(装饰层)。其中所述CAccompany Music、CMedia Video、CMood Music三者将共同进行相关的算法类,实现统一化;所述CDecoration Layer主要抽离出相关算法。
[0085] 本发明实施例中,其中所述应用程序层和多媒体服务层主要是通过多媒体接口层实现双向的通信,该媒体接口层主要负责提供上下两层的逻辑通信通道,其主要可包括:IDecoration Layer Notify(装饰层通知)、IPlay Accompany Music(伴奏音乐播放)、ICapture Video Notify(捕获视频通知)、IPlay Media Video(媒体视频播放)、IPaint Photo(图片绘制)、IDesktop Video CB(桌面视频)、ICapture Video(视频捕获)、IAccompany Music(伴奏音乐)、IMedia Video(媒体视频)、IMood Music(气氛音乐)、IDecoration Layer(装饰层)、IVcam Manger。其各部分单元模块的分布简化了多媒体接口,降低接口资源的占用。
[0086] 本领域技术人员应当了解,由于多媒体核心模块代码(vcambiz)越来越混乱和冗余,故通过该应用程序的三个层级的构架使得该应用程序在后续程序的相关维护上更为便捷,实现了一套富有拓展性的插件化多媒体数据流服务框架。
[0087] 通过对本发明的直播视频与动画融合方法的揭示可以知晓,本发明的实施,能够通过将原始视频流和动画进行融合,有效增强网络直播中的视频互动效果,提升了用户体验。
[0088] 依据模块化设计思维,本发明在上述直播视频与动画融合方法的基础上,进一步提出一种直播视频与动画融合装置。
[0089] 请参阅图2~图7,本发明的一种直播视频与动画融合装置,包括预处理模块11、合成模块12和推送模块13,其中各单元的功能介绍如下:
[0090] 预处理模块11,用于读取本机录制的视频数据并进行预处理,得到待上传的原始视频流。
[0091] 一种实施方式中,终端设备通常自带或外接有摄像头,主播端通过摄像头可录制视频。另一种实施方式中,终端设备预装有相应的视频录制软件,该视频录制软件可以将用户界面中的某些活动,如玩游戏、操作软件等,录制为视频,从而主播端可以进行游戏直播或者软件教学直播等。因此,主播端录制的视频数据具体可包括上述任意方式所形成的视频数据。
[0092] 预处理模块11读取上述视频数据后,可根据用户或程序的预处理指令进行预处理,包括根据预定协议对视频数据进行处理,得到待上传的原始视频流。当然,上述预处理还可包括从视频算法集中获取视频算法,如美白算法、视频特效算法等,利用视频算法对视频数据或原始视频流进行处理。
[0093] 合成模块12,用于响应于针对所述原始视频流的动画融合指令,根据所述动画融合指令读取相应的动画数据并叠加于所述原始视频流上层,得到合成视频流。
[0094] 用户或程序触发针对当前主播端得到的原始视频流的动画融合指令后,根据该动画融合指令读取相应的动画数据并叠加于所述原始视频流上层。一种实施例中,请参阅图2,该动画融合指令对应的操作按键显示于所述主播端的用户界面。而该动画融合指令对应的动画数据通常预存或实时缓存于本机,读取动画数据并叠加于所述原始视频流上层,便可得到合成视频流,使得直播过程更加生动,获得更好的互动效果。一种实施例中,请参阅图3,直播视频与动画融合后得到的合成视频流还可即时显示于用户界面。
[0095] 具体而言,上述动画数据可包括Flash动画数据或Gif动画数据,相应地,本发明的实施例中合成模块12优选如下两种方式读取相应的动画数据并叠加于所述原始视频流上层:
[0096] 其一,设置Flash控件Wmode属性的参数为Transparent或Opaque,或者,在Flash控件中调用setmode函数;通过所述Flash控件读取Flash动画数据并叠加于所述原始视频流上层;
[0097] 其二,读取Gif动画数据,并获取Gif动画数据的动画帧的数目和显示相邻动画帧的时间间隔;根据所述时间间隔依次在所述原始视频流上层的预定位置叠加所述Gif动画数据的各个动画帧。
[0098] 举例而言,本发明可能的实施例中,请参阅图4,在原始视频流的上层播放flash动画数据,从而将Flash动画叠加于直播视频的层级之上。具体地,为了防止视频直播视频被Flash动画完全覆盖,可在Flash中AXShockWaveFile控件的Wmode属性中设置相应的模式字符串,将Wmode属性的参数设置为Transparent或Opaque,或使用VC++在Flash控件中调用setmode函数,使得Flash控件读取地Flash动画数据叠加于所述原始视频流上层,得到合成视频流。
[0099] 此外,本发明其他可能的实施例中,请参阅图5,读取Gif动画数据后获取Gif动画数据的动画帧的数目和显示相邻动画帧的时间间隔;根据所述时间间隔依次在所述原始视频流上层的预定位置叠加所述Gif动画数据的各个动画帧。具体地,可以使用GDI+播放Gif动画,通过调用GetFrameDimensionsCount()函数获取Gif动画数据中的动画帧数目,通过Image对象的GetPropertyItem()函数获取每个相邻动画帧的时间间隔。进而设置当前有效的框架数据,根据得到的时间间隔,依次在原始视频流上层的预定位置继续显示Gif动画数据的动画帧,便能够在直播视频上层播放GIF动画,得到合成视频流。
[0100] 作为示例,假设Gif动画数据的文件存储位置为"F:\\byebye.gif",则使用GDI+播放Gif动画的具体代码可为:
[0101]
[0102]
[0103] 在此基础上,为了达到更佳的直播显示或互动的效果,本发明在一些实施例中还能根据实际需要调整用于叠加Gif动画数据的时间间隔和/或预定位置。例如,一种实施例中,上述根据所述时间间隔依次在所述原始视频流上层的预定位置叠加所述Gif动画数据的各个动画帧,包括:获取当前所述主播端对应的直播间的人气值;根据所述人气值相应调整所述时间间隔,并以调整后的时间间隔依次在所述原始视频流上层的预定位置叠加所述Gif动画数据的各个动画帧。通常而言该直播间的人气值可通过服务器获取用户报文而得到,主播端根据基于预设的人气值与时间间隔的映射关系相应调整上述时间间隔为当前人气值所映射的时间间隔,或者,基于预设的人气值与延时倍数的映射关系相应调整上述时间间隔乘以当前人气值所映射的延时倍数,用于叠加Gif动画数据。
[0104] 根据人气值相应调整所述时间间隔的过程中,人气值与时间间隔的映射关系可以为正相关或负相关,本发明实施例一种可能的设计中,例如原时间间隔为0.3秒,当人气值为1万时,延时倍数为1.1,则用于叠加Gif动画数据时间间隔为0.33秒;当人气值为2万时,延时倍数为1.2,则用于叠加Gif动画数据时间间隔为0.36秒。通过根据主播端对应的直播间的人气值调整叠加Gif动画数据动画帧的间隔时间,能够降低带宽限制和传输丢包对直播显示的影响,优化直播的互动效果。本发明实施例另一种可能的设计中,根据所述人气值相应调整所述时间间隔,包括:确定人气值大于预置值时,把时间间隔缩小到0.5-0.8倍;或确定人气值大于第一预置值时,将时间间隔缩小到0.8倍,确定人气值大于第二预置值,把时间时间间隔缩小到0.5倍;第一预置值小于第二预置值。根据人气值相应调整所述时间间隔,使得显示动画帧的速度与人气值关联,提高了直播的体验效果。上述举例中,人气值越高,说明当前直播间的观看人数越多,缩小时间间隔,可加快显示动画帧的速度。一方面,加快显示动画帧,在人数多的直播间间,有利于观众快速看完该动画帧,继续观看/了解其他人发的信息,以免错过其他人发的信息;另一方面,加快显示动画帧,有利于营造一种热闹的氛围,促进互动,气氛在人数多的直播间的影响很明显。
[0105] 另一种实施例中,为了防止因读取的多个动画数据相互遮盖而影响直播视频与动画的融合效果,上述根据所述动画融合指令读取相应的动画数据并叠加于所述原始视频流上层,包括:读取相应的至少两个动画数据,依次将至少两个动画数据分别相应叠加于所述原始视频流上层的不同预定位置;或读取相应的动画数据,在检测到上一个动画数据未叠加完毕时,将当前的动画数据叠加于所述原始视频流上层的预定位置以使得当前的动画数据不会完全遮盖所述上一个动画数据,有效提升了用户体验。
[0106] 在实际应用场景中,由于存于本机的动画数据与当前得到的原始视频流往往颜色差异较大或者色彩搭配效果不佳,因此,进一步地,本发明的一种实施例中,上述根据所述动画融合指令读取相应的动画数据并叠加于所述原始视频流上层,还可包括:获取所述原始视频流当前的像素值,根据所述当前像素值相应调整所述动画数据,使得所述动画数据的像素值与所述当前像素值相匹配。具体地,根据原始视频流当前的像素值,基于用户自定义或客户端预设的匹配策略,对用于叠加的动画数据的像素值进行相应的处理,使得所述动画数据的像素值与所述当前像素值相匹配,叠加于原始视频流上层的动画呈现淡化、透明度改变等效果,从而让直播视频和动画的融合更加智能化。
[0107] 如前所述,由于动画数据存于本机,为保证直播视频与动画融合的正常运行,一种实施例中主播端能够对动画数据进行兼容性处理。例如,为了倡导绿色直播,防止动画数据被用户篡改,包括使用一些非法的文件替换方式更换动画数据,在上述根据所述动画融合指令读取相应的动画数据并叠加于所述原始视频流上层之前,还包括:响应于所述动画融合指令或依据预定的时间周期,通过如下至少一种方式处理所述动画数据:
[0108] 对一项或多项所述动画数据进行MD5校验;删除校验值不匹配的动画数据,和/或删除校验值不匹配的动画数据在用户界面中的相应控件;
[0109] 根据配置文件记录的与所述动画数据对应的路径信息,查找一项或多项所述动画数据;删除无法查找到的动画数据所对应的路径信息,和/或删除无法查找到的动画数据在用户界面中的相应控件。
[0110] 此外,还可根据具体需求设置所述配置文件为加密状态;在需要调用配置文件、根据配置文件记录的与所述动画数据对应的路径信息查找动画数据前,再通过预设的算法对所述配置文件进行解密,以确保普通用户无法打开随意编辑,进一步保证配置文件和动画数据安全。
[0111] 推送模块13,用于上传所述合成视频流至预设服务器以将该合成视频流推送至直播间。
[0112] 得到合成视频流后,推送模块13上传所述合成视频流至预设服务器以将该合成视频流推送至直播间。需要说明的是,在一些实施例中,例如当本发明在主播端的辅助应用实施时,上传合成视频流至预设服务器的过程也可包含至少两个进程之间的跨进程通信,具体可包括通过跨进程通信将合成视频流传输至主播端,再由主播端上传所述合成视频至服务器以将该合成视频流推送至直播间。该跨进程通信的方式可包括:广播、接口访问、对象访问、共享访问等。
[0113] 推送模块13将合成视频流至预设服务器的过程更进一步地可包括根据预定规则将所述合成视频流上传至服务器,该预定规则可为将所述合成视频流上传至直播服务器的行为规范,具体过程可为将生成合成视频流的数据包的数据完整性的检测指令,其中该数据包不仅包含有所述合成视频流,还可包含有音频流、针对直播中主播发送的广播数据以及弹幕数据,当具备有所述广播数据和/或弹幕数据时,将所述广播数据和/或弹幕数据合并至所述数据包中,在所述数据包在被执行上传指令时需触发转换指令以将合成视频流的数据包转换为适于发送的电信号。
[0114] 本发明可能的实施例中,请参阅图6,直播视频与动画融合装置相关的应用架构可分为三个层级,包含有应用程序层、多媒体接口层、多媒体服务层。
[0115] 其中,所述应用程序层负责处理业务的主逻辑,包括展示给用户的应用程序主功能界面,以及当用户在使用具体某功能时的界面逻辑展现,举例而言,其主要可包括:
[0116] Mix Video Manager(混合视频管理器)提供了应用程序生成混合的视频流的过程中的相关操作的功能界面;
[0117] Video Container(视频容器)用于容纳该应用程序输入或输出的相关数据;
[0118] Mix Audio Manager(混合音频管理器)提供了应用程序生成混合的音频流的过程中的相关操作的功能界面。
[0119] 其所述应用程序层的各部分结构展示出了不同的界面排版,提高了界面显示的有效性,为音视频处理提供了更为便捷有利的平台。
[0120] 本发明实施例中,所述多媒体服务层则主要封装抽离出相关的算法类,包括美白算法类,视频特效算法类,声音降噪算法类等等;具体的算法实现类针对于本身输入和输出是什么,从而将应用程序层和多媒体服务层在逻辑上完全隔离开,其中主要可包括:CCapture Video(视频捕获)、CAccompany Music(伴奏音乐)、CMedia Video(媒体视频)、CMood Music(气氛音乐)、CDesktop Video(桌面视频)、CDecoration Layer(装饰层)。其中所述CAccompany Music、CMedia Video、CMood Music三者将共同进行相关的算法类,实现统一化;所述CDecoration Layer主要抽离出相关算法。
[0121] 本发明实施例中,其中所述应用程序层和多媒体服务层主要是通过多媒体接口层实现双向的通信,该媒体接口层主要负责提供上下两层的逻辑通信通道,其主要可包括:IDecoration Layer Notify(装饰层通知)、IPlay Accompany Music(伴奏音乐播放)、ICapture Video Notify(捕获视频通知)、IPlay Media Video(媒体视频播放)、IPaint Photo(图片绘制)、IDesktop Video CB(桌面视频)、ICapture Video(视频捕获)、IAccompany Music(伴奏音乐)、IMedia Video(媒体视频)、IMood Music(气氛音乐)、IDecoration Layer(装饰层)、IVcam Manger。其各部分单元模块的分布简化了多媒体接口,降低接口资源的占用。
[0122] 本领域技术人员应当了解,由于多媒体核心模块代码(vcambiz)越来越混乱和冗余,故通过该应用程序的三个层级的构架使得该应用程序在后续程序的相关维护上更为便捷,实现了一套富有拓展性的插件化多媒体数据流服务框架。
[0123] 通过对本发明的直播视频与动画融合装置的揭示可以知晓,本发明的实施,能够通过将原始视频流和动画进行融合,有效增强网络直播中的视频互动效果,提升了用户体验。
[0124] 请参阅图8,本发明另一实施例中进一步提供了一种终端设备,包括显示屏701、存储器702以及一个或多个处理器704,所述存储器702用于存储包括应用程序705的信息,所述处理器704用于控制应用程序705的执行,所述处理器704执行所述应用程序705时实现上述直播视频与动画融合方法中的步骤。
[0125] 其中,具体而言,显示屏701可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元可包括显示面板,可选的,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板。进一步的,触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器704以确定触摸事件的类型,随后处理器704根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然一些实施例中,触控面板与显示面板是作为两个独立的部件来实现输入和输出功能,但是在某些实施例中,可以将触控面板与显示面板集成而实现手机的输入和输出功能。
[0126] 存储器702可用于存储应用程序以及模块,处理器704通过运行存储在存储器702的应用程序以及模块,从而执行终端设备的各种功能应用以及数据处理。存储器702可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序705(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器702可以包括高速随机存取存储区702,还可以包括非易失性存储区702,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0127] 通信接口703,用于上述交互过程中终端设备与其他设备或通信网络通信。通信接口703是处理器704与外界子系统进行通信的接口,用于处理器704与外界系统之间信息的传输,以达到控制子系统的目的。
[0128] 处理器704是终端设备的控制中心,利用各种通信接口703和线路连接整个终端设备的各个部分,通过运行或执行存储在存储区702内的应用程序和/或模块,以及调用存储在存储区702内的数据,执行终端设备的各种功能和处理数据,从而对终端设备进行整体监控。可选的,处理器704可包括一个或多个处理单元;优选的,处理器704可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序705等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器704中。
[0129] 一个或多个应用程序705,优选地,这些应用程序705都被存储在所述存储区702中并被配置为由所述一个或多个处理器704执行,所述一个或多个程序被配置为直播视频与动画融合方法的任何实施例所实现的功能。
[0130] 在本发明实施例中,该终端设备所包括的处理器704还具有以下功能:
[0131] 读取主播端录制的视频数据并进行预处理,得到待上传的原始视频流;
[0132] 响应于针对所述原始视频流的动画融合指令,根据所述动画融合指令读取相应的动画数据并叠加于所述原始视频流上层,得到合成视频流;
[0133] 上传所述合成视频流至预设服务器以将该合成视频流推送至直播间。
[0134] 本发明实施例中还提供了一种计算机存储介质,用于储存为上述终端设备所用的计算机软件指令,其包含用于执行上述为所述终端设备所设计的程序。
[0135] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0136] 通过对本发明的终端设备的揭示可以知晓,本发明的实施,能够通过将原始视频流和动画进行融合,有效增强网络直播中的视频互动效果,提升了用户体验。
[0137] 本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一运算机可读存储介质中,存储介质可以包括但不限于:任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。
[0138] 以上对本发明所提供的直播视频与动画融合方法、装置和终端设备进行了详细介绍,对于本领域的一般技术人员,在不脱离本发明原理的前提下,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。