CN114598937B - 动画视频生成、播放方法及装置 - Google Patents

动画视频生成、播放方法及装置 Download PDF

Info

Publication number
CN114598937B
CN114598937B CN202210193903.0A CN202210193903A CN114598937B CN 114598937 B CN114598937 B CN 114598937B CN 202210193903 A CN202210193903 A CN 202210193903A CN 114598937 B CN114598937 B CN 114598937B
Authority
CN
China
Prior art keywords
parameter value
animation
color
target
dynamic element
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.)
Active
Application number
CN202210193903.0A
Other languages
English (en)
Other versions
CN114598937A (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.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili 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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202210193903.0A priority Critical patent/CN114598937B/zh
Publication of CN114598937A publication Critical patent/CN114598937A/zh
Application granted granted Critical
Publication of CN114598937B publication Critical patent/CN114598937B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • 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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

本申请公开了一种动画视频生成方法。所述方法包括:对于视频序列帧中的每一张视频帧图片,获取所述视频帧图片中的每一个像素点的第一色彩参数值和透明度参数值;对于遮罩序列帧中的每一张遮罩帧图片,获取所述遮罩帧图片中的每一个像素点的第二色彩参数值;根据所述第二色彩参数值及所述第一色彩参数值和透明度参数值生成包括第一区域和第二区域的目标帧图片;将由生成的所有的目标帧图片组合成的目标帧图片序列合成动画视频文件;构造播放所述动画视频文件所需的参数信息,将所述参数信息写入至所述动画视频文件中。本申请可减少动画视频文件的大小。

Description

动画视频生成、播放方法及装置
技术领域
本申请涉及视频技术领域,尤其涉及一种动画视频生成、播放方法及装置。
背景技术
随着直播行业的兴起,虚拟礼物的动画特效越来越复杂,很多低开发成本的解决方案也应运而生,使用视频技术来实现复杂动画特效也成为业界内的一种趋势。同时,定制化的动画效果的需求也越来越高。比如,在直播间中的动画中添加动态元素,该动态元素可以为用户头像。
目前业内使用视频技术来实现复杂动画特效的方案大都基于MP4视频文件实现,整体思路是采用播放时将MP4视频文件缺失的透明度数据进行补全的方案,即MP4视频文件中会有一部分视频区域用来存储缺失的透明度数据,一部分区域用来存储动画的色彩参数值,在播放时再将此区域的透明度数据和另一个区域中存储的色彩参数值进行合成,故MP4视频文件的大小较大。
为了实现定制化的动画效果,参照图1,业内会通过在MP4视频文件中使用四个部分来存储动画数据,其中,一部分视频区域用来存储缺失的透明度数据,一部分区域用来存储动画的色彩参数值、一部分区域用于存储动态元素,一部分区域作为无用区域。然而,这种实现方式会照成生成的MP4视频文件大小非常大。
发明内容
有鉴于此,现提供一种动画视频生成、播放方法、装置、系统计算机设备及计算机可读存储介质,以解决现有的用于实现定制化的动画效果的MP4视频文件大小非常大的问题。
本申请提供了一种动画视频生成方法,包括:
对于视频序列帧中的每一张视频帧图片,获取所述视频帧图片中的每一个像素点的第一色彩参数值和透明度参数值;
对于遮罩序列帧中的每一张遮罩帧图片,获取所述遮罩帧图片中的每一个像素点的第二色彩参数值,其中,每一张遮罩帧图片中的每一个像素点在各个色彩通道中的色彩参数值相同;
根据所述第二色彩参数值及所述第一色彩参数值和透明度参数值生成包括第一区域和第二区域的目标帧图片,其中,所述第一区域的各个色彩通道保存所述第一色彩参数值,所述第二区域的第一色彩通道保存所述透明度参数值,所述第二区域的第二色彩通道保存所述第二色彩参数值;
将由生成的所有的目标帧图片组合成的目标帧图片序列合成动画视频文件;
构造播放所述动画视频文件所需的参数信息,将所述参数信息写入至所述动画视频文件中。
可选地,所述根据所述第二色彩参数值及所述第一色彩参数值和透明度参数值生成包括第一区域和第二区域的目标帧图片包括:
在内存中创建两个图像缓存区域;
将所述第一色彩参数值存储至第一个图像缓存区域的各个色彩通道中,并将所述透明度参数值存储至第二个图像缓存区域的第一色彩通道中,以及将所述第二色彩参数值存储至第二个图像缓存区域的第二色彩通道中;
根据所述两个图像缓存区域中存储的参数值生成包括所述第一区域和所述第二区域的目标帧图片。
可选地,所述构造播放所述动画视频文件所需的参数信息,将所述参数信息写入至所述动画视频文件中包括:
将播放所述动画视频文件所需的参数信息构造为预设格式的文件;
将所述预设格式的文件转换为二进制文件,并将所述二进制文件写入至所述动画视频文件中。
可选地,所述参数信息包括所述第一区域与所述第二区域在所述目标帧图片中的位置信息、每一张遮罩帧图片在所述目标帧图片中的位置信息、礼物动画的宽高信息及动态元素的标识信息中的至少一种。
可选地,所述第一色彩参数值及所述第二色彩参数值为RGB值,所述透明度参数值为透明度值,所述第一区域的各个色彩通道为RGB通道,所述第二区域的第一色彩通道和第二色彩通道为R通道、G通道及B通道中的其中一个通道,所述第二区域的第二色彩通道与所述第一色彩通道为不同的色彩通道。
本申请还提供了一种动画视频播放方法,包括:
响应于
用户在直播间的点击操作,获取所述点击操作对应的动画视频文件;
对所述动画视频文件包含的每一张目标帧图片进行解码,得到所述目标帧图片对应的纹理图片;
从所述动画视频文件中的参数信息中获取每一张目标帧图片包含的第一区域与第二区域的位置信息;
根据所述第一区域和所述第二区域的位置信息分别对所述纹理图片进行纹理采样,得到待合成的目标动画帧中每一个像素点的第一色彩参数值和透明度参数值,以及得到所述动态元素的第二色彩参数值,并将所述第二色彩参数值作为所述动态元素的透明度参数值;
根据所述目标动画帧中每一个像素点的第一色彩参数值和透明度参数值合成所述目标动画帧的纹理数据,并根据所述动态元素的透明度参数值及待融合图片的纹理数据合成所述动态元素的纹理数据;
对所述目标动画帧的纹理数据及所述动态元素的纹理数据进行渲染,得到目标动画。
可选地,所述方法还包括:
从所述动画视频文件中的参数信息中获取每一张遮罩帧图片在所述目标帧图片中的位置信息、目标动画的宽高信息及动态元素的标识信息;
所述对所述目标动画帧的纹理数据及所述动态元素的纹理数据进行渲染,得到目标动画包括:
根据所述每一张遮罩帧图片在所述目标帧图片中的位置信息、目标动画的宽高信息对所述目标动画帧的纹理数据及所述动态元素的纹理数据进行渲染,得到目标动画。
可选地,所述根据所述动态元素的透明度参数值及待融合图片的纹理数据合成所述动态元素的纹理数据包括:
从所述动态元素的标识信息中获取所述动态元素对应的标签;
根据所述标签获取与所述标签相匹配的待融合图片;
将所述待融合图片转换为对应的纹理数据;
根据所述动态元素的透明度参数值及转换得到的纹理数据合成所述动态元素的纹理数据。
可选地,根据所述第一区域和所述第二区域的位置信息分别对所述纹理图片进行纹理采样,得到待合成的目标动画帧中每一个像素点的第一色彩参数值和透明度参数值,以及得到所述动态元素的第二色彩参数值,并将所述第二色彩参数值作为所述动态元素的透明度参数值包括:
根据所述第一区域的位置信息对所述纹理图片中与所述第一区域的位置信息相对应的区域进行纹理采样,得到所述目标帧图片包含的第一区域中的每一个像素点的色彩参数值,并将所述第一区域中的每一个像素点的色彩参数值作为所述目标动画帧中的每一个像素点的第一色彩参数值;
根据所述第二区域的位置信息对所述纹理图片中与所述第二区域的位置信息相对应的区域进行纹理采样,得到所述目标帧图片包含的第二区域中的每一个像素点的色彩参数值;
将所述第二区域中的每一个像素点的色彩参数值中对应于第一目标色彩通道的参数值作为所述目标动画帧中的每一个像素点的透明度参数值;
将所述第二区域中的每一个像素点的色彩参数值中对应于第二目标色彩通道的参数值作为所述动态元素的透明度参数值。
可选地,所述从所述动态元素的标识信息中获取所述动态元素对应的标签包括:
根据所述动态元素的标识信息中的动态元素判定信息判断是否在所述动画中添加所述动态元素;
在判定出在所述动画中添加所述动态元素时,从所述动态元素的标识信息中获取所述动态元素对应的标签。
可选地,其特征在于,所述对所述动画视频文件包含的每一张目标帧图片进行解码的步骤之前,还包括:
对解码器和渲染器进行初始化;
判断所述解码器和所述渲染器的初始化状态是否正常;
若所述解码器和所述渲染器的初始化状态正常,则执行所述对所述动画视频文件包含的每一张目标帧图片进行解码的步骤。
本申请还提供了一种动画视频生成装置,包括:
第一获取模块,用于对于视频序列帧中的每一张视频帧图片,获取所述视频帧图片中的每一个像素点的第一色彩参数值和透明度参数值;
第二获取模块,用于对于遮罩序列帧中的每一张遮罩帧图片,获取所述遮罩帧图片中的每一个像素点的第二色彩参数值,其中,每一张遮罩帧图片中的每一个像素点在各个色彩通道中的色彩参数值相同;
生成模块,用于根据所述第二色彩参数值及所述第一色彩参数值和透明度参数值生成包括第一区域和第二区域的目标帧图片,其中,所述第一区域的各个色彩通道保存所述第一色彩参数值,所述第二区域的第一色彩通道保存所述透明度参数值,所述第二区域的第二色彩通道保存所述第二色彩参数值;
合成模块,用于将由生成的所有的目标帧图片组合成的目标帧图片序列合成动画视频文件;
写入模块,用于构造播放所述动画视频文件所需的参数信息,将所述参数信息写入至所述动画视频文件中。
本申请还提供了一种动画视频播放装置,包括:
响应模块,用于响应于用户在直播间的点击操作,获取所述点击操作对应的动画视频文件;
解码模块,用于对所述动画视频文件包含的每一张目标帧图片进行解码,得到所述目标帧图片对应的纹理图片;
获取模块,用于从所述动画视频文件中的参数信息中获取每一张目标帧图片包含的第一区域与第二区域的位置信息;
采样模块,用于根据所述第一区域和所述第二区域的位置信息分别对所述纹理图片进行纹理采样,得到待合成的目标动画帧中每一个像素点的第一色彩参数值和透明度参数值,以及得到所述动态元素的第二色彩参数值,并将所述第二色彩参数值作为所述动态元素的透明度参数值;
合成模块,用于根据所述目标动画帧中每一个像素点的第一色彩参数值和透明度参数值合成所述目标动画帧的纹理数据,并根据所述动态元素的透明度参数值及待融合图片的纹理数据合成所述动态元素的纹理数据;
渲染模块,用于对所述目标动画帧的纹理数据及所述动态元素的纹理数据进行渲染,得到目标动画。
本申请还提供了一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本申请通过对于视频序列帧中的每一张视频帧图片,获取所述视频帧图片中的每一个像素点的第一色彩参数值和透明度参数值;对于遮罩序列帧中的每一张遮罩帧图片,获取所述遮罩帧图片中的每一个像素点的第二色彩参数值,其中,每一张遮罩帧图片中的每一个像素点在各个色彩通道中的色彩参数值相同,每一张遮罩帧图片对应一张视频帧图片;根据所述第二色彩参数值及所述第一色彩参数值和透明度参数值生成包括第一区域和第二区域的目标帧图片,其中,所述第一区域的各个色彩通道保存所述第一色彩参数值,所述第二区域的第一色彩通道保存所述透明度参数值,所述第二区域的第二色彩通道保存所述第二色彩参数值;将由生成的所有的目标帧图片组合成的目标帧图片序列合成动画视频文件;构造播放所述动画视频文件所需的参数信息,将所述参数信息写入至所述动画视频文件中。由于本申请在生成动画视频文件时,采用存放目标帧图片的透明度参数值的区域来存储动态元素的透明度参数,从而无需额外的区域来存储该动态元素的透明度参数,进而可以减少动画视频文件的大小,降低播放动画视频文件所需的性能消耗。
附图说明
图1为现有技术中的实现定制化的动画效果的视频帧示意图;
图2为本申请实施例的动画视频生成、播放方法的应用环境示意图;
图3为本申请所述的动画视频生成方法的一种实施例的流程图;
图4为本申请一实施方式中目标帧图片的示意图;
图5为本申请一实施方式中根据所述第二色彩参数值及所述第一色彩参数值和透明度参数值生成包括第一区域和第二区域的目标帧图片的步骤细化流程示意图;
图6为本申请一实施方式中构造播放所述动画视频文件所需的参数信息,将所述参数信息写入至所述动画视频文件中的步骤细化流程示意图;
图7为本申请所述的动画视频播放方法的一种实施例的流程图;
图8为本申请一实施方式中根据所述第一区域和所述第二区域的位置信息分别对所述纹理图片进行纹理采样,得到待合成的目标动画帧中每一个像素点的色彩参数值和透明度参数值,以及得到所述动态元素的透明度参数值的步骤细化流程示意图;
图9为本申请一实施方式中构造播放所述动画视频文件所需的参数信息,将所述参数信息写入至所述动画视频文件中的步骤细化流程示意图;
图10为本申请一实施方式中从所述动态元素的标识信息中获取所述动态元素对应的标签的步骤细化流程示意图;
图11为本申请所述的动画视频生成装置的一种实施例的程序模块图;
图12为本申请所述的动画视频播放装置的一种实施例的程序模块图;
图13为本申请实施例提供的执行动画视频生成、播放方法的计算机设备的硬件结构示意图。
具体实施方式
以下结合附图与具体实施例进一步阐述本申请的优点。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“所述”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。
图2示意性示出了根据本申请实施例的动画视频生成及播放方法的应用环境示意图。在示例性的实施例中,该应用环境的系统可包括第一终端设备10、服务器20及第二终端设备30。其中,第一终端设备10、第二终端设备30与服务器20形成无线或有线连接。第一终端设备10与第二终端设备30均可以为手机、iPAD,平板电脑等。服务器20可以为一台服务器或多台服务器组成的服务器集群或云计算中心等,具体此处不作限定。用户可以通过第一终端设备10中安装的动画视频生成APP(应用程序)生成动画视频文件,并将生成的动画视频文件上传至服务器20。第二终端设备30可以从服务器20中下载动画视频文件,并通过安装的动画视频播放APP对下载的动画视频文件进行渲染播放。
参阅图3,其为本申请一实施例的动画视频生成方法的流程示意图。本可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。从图中可以看出,本实施例中所提供的动画视频生成方法包括:
步骤S30、对于视频序列帧中的每一张视频帧图片,获取所述视频帧图片中的每一个像素点的第一色彩参数值和透明度参数值。
具体地,所述视频序列帧指的是由设计师设计的待播放的动画所需要的图片序列,所述视频序列帧包括多张动画图片。比如,设计师需要制作一个动画,则需要先通过设计软件设计该动画所需要的视频序列帧。
其中,所述视频序列帧中的每一张视频帧图片都具有透明度值,该视频序列帧可以为APNG序列图片。对于APNG序列来说,其中的每一张图片都会包含Alpha通道(透明度通道,也可以简称A通道)的。Alpha通道是一个用于记录透明度信息的特殊图层。比如,一个使用16bit存储的图片,可以用5bit表示红色(R),5bit表示绿色(G),5bit表示蓝色(B),1bit表示透明度。在这种情况下,图片要么完全透明要么完全不透明。而对于一个使用32bit存储的图片,可以每8bit表示红绿蓝和透明度。在这种情况下,除了可表示完全透明和完全不透明之外,Alpha通道还可以表示256级的半透明度。
在本实施例中,所述视频帧图片优选为通过32bit存储的图片,即所述视频帧图片的透明度值可以为0~255。
在本实施例中,在设计师设计好视频序列帧后,可以对每一张视频帧图片进行色彩参数值与透明度参数值进行分离处理,以得到所述视频帧图片中的每一个像素点的第一色彩参数值和透明度参数值。
其中,所述第一色彩参数值可以为RGB(Red Green Blue,红绿蓝)值,也可以为YUV(Luma-Chroma,明亮度-色度)值等。
在本实施例中,所述第一色彩参数值优选为RGB值。RGB值包括R值、G值及B值。
透明度参数值指的所述视频帧图片中的每一个像素点的透明度值,即A值。
步骤S31,对于遮罩序列帧中的每一张遮罩帧图片,获取所述遮罩帧图片中的每一个像素点的第二色彩参数值,其中,每一张遮罩帧图片中的每一个像素点在各个色彩通道中的色彩参数值相同。
具体地,所述遮罩帧图片指的是由设计师设计的待播放的动画中需要添加动态元素的透明度值组成的区域图片,由于现有的MP4格式的视频文件并不支持透明度值,因此,为了可以实现在视频文件中可以携带图片的透明度值,本实施例通过采用色彩通道存储透明度值的方式来实现,即若动态元素的第一个像素点的透明度值为20,则对应的遮罩帧图片中的第一个像素点的像素值为R:20、G:20、B:20。
在本实施例中,遮罩序列帧中包含的遮罩帧图片的数量和视频序列帧中包含的视频帧图片的数量可以相同,也可以不同,当数量相同时,每一张遮罩帧图片都具有对应的一张视频帧图片;当数量不同时,每一张遮罩帧图片可以对应多张视频帧图片。
需要说明的是,当一张遮罩帧图片对应多张视频帧图片,则表明多张视频帧图片是采用同一张遮罩帧图片进行遮挡。
其中,所述第二色彩参数值也可以为RGB值,也可以为YUV值等。
可以理解的是,当第一色彩参数值为RGB值时,则第二色彩参数值也为RGB值。
步骤S32,根据所述第二色彩参数值及所述第一色彩参数值和透明度参数值生成包括第一区域和第二区域的目标帧图片,其中,所述第一区域的各个色彩通道保存所述第一色彩参数值,所述第二区域的第一色彩通道保存所述透明度参数值,所述第二区域的第二色彩通道保存所述第二色彩参数值。
具体地,为了后续能够实现在生成的动画视频文件中保存透明度信息,首先可以基于视频序列帧中包括的每一张视频帧图片和对应的遮罩序列帧中的遮罩帧图片进行新的图片的生成,在本文中将生成的新的图片称之为目标帧图片。之后,可以将生成的所有目标帧图片合成动画视频文件。
图4为目标帧图片的示意图,其中第一区域指代图4所示图片的左半部分区域,第二区域指代图4所示图片的右半部分区域。
第一区域与第二区域不同的是,第一区域是基于视频帧图片中每一个像素点的色彩参数值生成的,即第一区域仅包括视频帧图片的色彩参数值,换句话说,第一区域的各个色彩通道保存有上述色彩参数值。需要说明的是,以RGB参数值为例,则第一区域的各个色彩通道保存上述第一色彩参数值的含义为:第一区域的R通道用于保存R参数值,第一区域的G通道用于保存G参数值,第一区域的B通道用于保存B参数值。即,各种色彩参数值保存在匹配的色彩通道中。
而第二区域是基于视频帧图片中每一个像素点的透明度参数值及遮罩帧图片的第二色彩参数值生成的,即第二区域包括视频帧图片的透明度参数值及遮罩帧图片的第二色彩参数值,然而,由于遮罩帧图片是用于反映待展示的动态元素的透明度值的图片,换句话说,遮罩帧图片的每一个像素点在各个色彩通道中的色彩参数值是一样的,且该色彩参数值为动态元素的透明度值。因此,在生成第二区域时,可以使用第二区域的各个色彩通道中的任意一个色彩通道用来保存视频帧图片的透明度参数值,使用第二区域的各个色彩通道中的其他一个色彩通道用来保存遮罩帧图片的第二色彩参数值,具体而言,可以使用第一色彩通道来保存透明度参数值,使用第二色彩通道来保存所述第二色彩参数值。继续以RGB模式为例,则这个用于保存上述透明度参数值的色彩通道可以为R通道、G通道以及B通道中的任一个。对于其他两个未保存上述透明度参数值的色彩通道,可以使用一个色彩通道保存上述第二色彩参数值。
在一示例性的实施方式中,参阅图5,所述根据所述第二色彩参数值及所述第一色彩参数值和透明度参数值生成包括第一区域和第二区域的目标帧图片包括:步骤S50,在内存中创建两个图像缓存区域;步骤S51,将所述第一色彩参数值存储至第一个图像缓存区域的各个色彩通道中,并将所述透明度参数值存储至第二个图像缓存区域的第一色彩通道中,以及将所述第二色彩参数值存储至第二个图像缓存区域的第二色彩通道中;步骤S52,根据所述两个图像缓存区域中存储的参数值生成包括所述第一区域和所述第二区域的目标帧图片。
具体地,继续以RGB模式为例,则当获取到像素点的RGB值和透明度参数值,可以现在内存中创建两个图像缓存区域将获取到的像素点的RGB通道值和透明度参数值存储起来,以便后续可以根据这些值来生成目标帧图片。在本实施例中,在存储RGB值和透明度参数值时,是进行分开存储中。具体地,会将视频帧图片的所有的RGB值存储在第一个图像缓存区域的RGB通道中,将所有的透明度参数值存储在第二个图像缓存区域的RGB通道中的任意一个通道中。具体而言,对于获取到的视频帧图片的RGB值,会将R值保存在第一个图像缓存区域的R通道中,将G值保存至第一个图像区域的G通道中,将B值保存至第一个图像缓存区域的B通道中。对于获取到的透明度参数值(A值),会将A值保存至第二个图像缓存区域的R通道、G通道、B通道中的任意一个通道中,比如,将A值保存在R通道中。对于第二个图像缓存区域的其他未保存A值的两个通道,可以选择一个通道用于保存遮罩帧图片的RGB值。在本实施例中,之所以可以采用一个通道保存遮罩帧图片的RGB值,是因为遮罩帧图片的每一个像素点的R值、G值及B值是相同的,故采用一个通道即可以保存遮罩帧图片的RGB值。
步骤S33,将由生成的所有的目标帧图片组合成的目标帧图片序列合成动画视频文件。
具体地,在对视频序列帧图片中的每一张视频帧图片和对应的遮罩帧图片都经过上述步骤处理后,即可以得到目标帧图片序列。之后,可以对该目标帧图片序列进行视频合成,得到所述动画视频文件。在本实施例中,在合成所述动画视频文件时,可以调用预设的多媒体处理工具来实现,比如,调用FFmpeg来实现将所有的目标帧图片合成动画视频文件。在本实施例中,该动画视频文件可以为压缩率较高的MP4文件或者FLV文件等。
其中,FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。
在一示例性的实施方式中,当动画视频有播放声音的需求,则在调用ffmpeg命令合成动画视频文件时,还可以将提供的MP3文件写入至所述动画视频文件中。
步骤S34,构造播放所述动画视频文件所需的参数信息,将所述参数信息写入至所述动画视频文件中。
具体地,为了后续可以实现对动画视频文件进行正常播放,在本实施例中,在将目标帧图片序列合成动画视频文件之后,还需要构造播放所述动画视频文件所需的参数信息,然后,将所述参数信息写入至所述动画视频文件中,这样,后续在对视频文件进行播放时,可以根据该参数信息进行动画视频的播放。
其中,所述参数信息可以包括所述第一区域与所述第二区域在所述目标帧图片中的位置信息、每一张遮罩帧图片在所述目标帧图片中的位置信息、礼物动画的宽高信息及动态元素的标识信息中的至少一种。
其中,第一区域和第二区域的位置信息用于描述第一区域和第二区域在目标视频帧中所对应的区域,在一实施方式中,可以通过该第一区域与第二区域在目标帧图片中的坐标来描述。
每一张遮罩图片在所述目标帧图片中的位置信息用于描述动态元素在动画上的展示位置。
礼物动画的宽高信息用于描述播放的动画的大小。
动态元素的标识信息为用于描述是否需要在动画中添加动态元素,以及用于描述具体需要添加什么动态元素。在一实施方式中,可以采用不同的标签信息来指代不同的动态元素。
需要说明的是,本实施例中的动态元素指的是根据不同的用户展示不同画面,比如,所述动态元素可以为用户头像。
在一示例性的实施方式中,参阅图6,所述构造播放所述动画视频文件所需的参数信息,将所述参数信息写入至所述动画视频文件中包括:步骤S60,将播放所述动画视频文件所需的参数信息构造为预设格式的文件;步骤S61,将所述预设格式的文件转换为二进制文件,并将所述二进制文件写入至所述动画视频文件中。
具体地,所述预设格式为预先设定的用于存储参数信息的数据格式,所述预设格式可以为JSON格式、XML格式等。
作为示例,可以先将参数信息构造为JSON文件,之后将该JSON文件再转换为二进制文件,最后将二进制文件写入所述动画视频文件中。
在一示例性的实施方式中,在生成所述动画视频文件后,可以将该动画视频文件生成至服务器中存储,以便客户端可以在特定的时刻(例如:进入直播间时)从服务器中下载所述动画视频文件,并对下载的动画视频文件进行播放。
本申请通过对于视频序列帧中的每一张视频帧图片,获取所述视频帧图片中的每一个像素点的第一色彩参数值和透明度参数值;对于遮罩序列帧中的每一张遮罩帧图片,获取所述遮罩帧图片中的每一个像素点的第二色彩参数值,其中,每一张遮罩帧图片中的每一个像素点在各个色彩通道中的色彩参数值相同,每一张遮罩帧图片对应一张视频帧图片;根据所述第二色彩参数值及所述第一色彩参数值和透明度参数值生成包括第一区域和第二区域的目标帧图片,其中,所述第一区域的各个色彩通道保存所述第一色彩参数值,所述第二区域的第一色彩通道保存所述透明度参数值,所述第二区域的第二色彩通道保存所述第二色彩参数值;将由生成的所有的目标帧图片组合成的目标帧图片序列合成动画视频文件;构造播放所述动画视频文件所需的参数信息,将所述参数信息写入至所述动画视频文件中。由于本申请在生成动画视频文件时,采用存放目标帧图片的透明度参数值的区域来存储动态元素的透明度参数,从而无需额外的区域来存储该动态元素的透明度参数,进而可以减少动画视频文件的大小,降低播放动画视频文件所需的性能消耗。
参阅图7,其为本申请一实施例的动画视频播放方法的流程示意图。本可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。从图中可以看出,本实施例中所提供的直播间动画视频播放方法包括:
步骤S70,响应于用户在直播间的点击操作,获取所述点击操作对应的动画视频文件。
具体地,所述动画视频文件是通过上述所述的动画视频生成方法所生成的。
其中,所述点击操作可以为用户在直播间的送礼操作,用户在直播间中的弹幕发送操作。
作为示例,当用户在直播间观看直播视频时,用户可以触发送礼操作,此时,客户端会对用户的送礼操作进行响应,从本地磁盘或内存中获取该送礼操作对应的动画视频文件。
比如,用户在直播间送礼操作:送一辆跑车给主播,则客户端会从本地磁盘或内存中获取该跑车所对应的动画视频文件。
可以理解的是,为了客户端可以及时获取到点击操作所对应的动画视频文件,客户端可以在特定的时刻,比如,用户进入直播间时从服务器中下载所述动画视频文件,从而获取到所述动画视频文件,并将下载的动画视频文件存储至本地内存中。后续,当用户通过客户端在直播间进行点击操作时,可以及时从本地内存中获取点击操作对应的动画视频文件,之后对该动画视频文件进行渲染播放。
步骤S71,对所述动画视频文件包含的每一张目标帧图片进行解码,得到所述目标帧图片对应的纹理图片。
具体地,可以通过终端设备中的解码器对获取到的动画视频文件中包含的每一张目标帧图片进行硬件解码,从而得到纹理图片。
步骤S72,从所述动画视频文件中的参数信息中获取每一张目标帧图片包含的第一区域与第二区域的位置信息。
具体地,由于对动画视频文件进行播放的参数信息也存储在该动画视频文件中,因此,在播放动画视频文件时,可以首先从该动画视频文件的参数信息中获取每一张目标帧图片包含的第一区域与第二区域的位置信息。
在一示例性的实施方式中,为了后续对目标帧图片进行渲染,在本实施例中,还可以从所述动画视频文件中的参数信息中获取每一张遮罩帧图片在所述目标帧图片中的位置信息、目标动画的宽高信息。
步骤S73,根据所述第一区域和所述第二区域的位置信息分别对所述纹理图片进行纹理采样,得到待合成的目标动画帧中每一个像素点的第一色彩参数值和透明度参数值,以及得到所述动态元素的第二色彩参数值,并将所述第二色彩参数值作为所述动态元素的透明度参数值。
具体地,由于参数信息中包含有第一区域与第二区域的位置信息,因此,在对目标动画帧进行渲染播放时,可以先从参数信息中获取该第一区域与第二区域的坐标,之后,根据该第一区域与第二区域的坐标来分别对纹理图片的对应区域进行纹理采样,得到待合成的目标动画帧中每一个像素点的第一色彩参数值(比如,RGB值)和透明度参数值。具体而言,在进行纹理采样时,可以通过图形API来调用GPU(graphics processing unit,图形处理器)对纹理图片进行纹理采样,得到待合成的目标动画帧中每一个像素点的RGB值和透明度参数值,以及得到所述动态元素的透明度参数值。所述动态元素的透明度参数值为上述实施例中的遮罩帧图片的色彩参数值。
其中,图形API是用于和GPU交互的应用程序接口,所述图形API可以为WebGL、OpenGL ES、Metal等。纹理采样指的是从图片中采集一个像素颜色的操作。
需要说明的是,所述目标动画帧指的播放的动画帧。色彩参数值以RGB值为例进行说明。
在一示例性的实施方式中,参照图8,所述根据所述第一区域和所述第二区域的位置信息分别对所述纹理图片进行纹理采样,得到待合成的目标动画帧中每一个像素点的第一色彩参数值和透明度参数值,以及得到所述动态元素的第二色彩参数值,并将所述第二色彩参数值作为所述动态元素的透明度参数值包括:
步骤S80,根据所述第一区域的位置信息对所述纹理图片中与所述第一区域的位置信息相对应的区域进行纹理采样,得到所述目标帧图片包含的第一区域中的每一个像素点的色彩参数值,并将所述第一区域中的每一个像素点的色彩参数值作为所述目标动画帧中的每一个像素点的第一色彩参数值。
具体地,通过第一区域的位置信息可以在纹理图片中确定出由视频帧图片的RGB值生成的第一区域,之后,可以通过图形API来调用GPU对该区域进行纹理采样,从而得到第一区域中的包含的每一个像素点的RGB值。
在本实施例中,由于第一区域中的包含的每一个像素点与目标动画帧中的每一个像素点是一一对应的,因此,可以将第一区域中的包含的每一个像素点的RGB值作为目标动画帧中的每一个像素点的RGB值。
步骤S81,根据所述第二区域的位置信息对所述纹理图片中与所述第二区域的位置信息相对应的区域进行纹理采样,得到所述目标帧图片包含的第二区域中的每一个像素点的色彩参数值。
具体地,通过第二区域的位置信息可以在纹理图片中确定出由视频帧图片的透明度参数值及动态元素的透明度参数值生成的第二区域,之后,可以通过图形API来调用GPU对该区域进行纹理采样,从而得到第二区域中的每一个像素点的RGB值。
步骤S82,将所述第二区域中的每一个像素点的色彩参数值中对应于第一目标色彩通道的参数值作为所述目标动画帧中的每一个像素点的透明度参数值。
具体地,色彩参数值以RGB值为例,则第一目标色彩通道为用于存储目标动画帧中的每一个像素点的透明度参数值,其可以为R通道、G通道及B通道中的任意一个通道,具体为哪个通道,可以在生成动画视频文件时进行设定。
所述第一目标色彩通道的参数值指的是存储在该第一目标色彩通道中的数值。假设所述第一目标色彩通道为R通道,则从R通道中获取到的R值即为第一目标色彩通道的参数值。
步骤S83,将所述第二区域中的每一个像素点的色彩参数值中对应于第二目标色彩通道的参数值作为所述动态元素的透明度参数值。
具体地,则第二目标色彩通道为用于存储动态元素的透明度参数值的通道,其也可以为R通道、G通道及B通道中的任意一个通道,具体为哪个通道,可以在生成动画视频文件时进行设定。
作为示例,假设所述第二目标色彩通道为G通道,则从G通道中获取到的G值即为所述动态元素的透明度参数值。
步骤S74,根据所述目标动画帧中每一个像素点的第一色彩参数值和透明度参数值合成所述目标动画帧的纹理数据,并根据所述动态元素的透明度参数值及待融合图片的纹理数据合成所述动态元素的纹理数据。
具体地,可以通过图形API来调用GPU根据待合成的目标动画帧中每一个像素点的RGB值和透明度参数值合成具有透明度值的目标动画帧的纹理数据,即合成的目标动画帧中的每一个像素点都具有ARGB值,其中,ARGB值包括像素点的透明度(A)值、红色(R)值、绿色(G)值、蓝色(B)值。
同理,可以通过图形API来调用GPU根据所述动态元素的透明度参数值及待融合图片的纹理数据合成所述动态元素的纹理数据。
其中,待融合图片根据用户的不同对应不同的图片,比如所述待融合图片为用户头像。所述待融合图片可以从终端设备的本地内存中获取,也可以从服务器中获取。
在一示例性的实施方式中,参阅图9,所述根据所述动态元素的透明度参数值及待融合图片的纹理数据合成所述动态元素的纹理数据包括:
步骤S90,从所述动态元素的标识信息中获取所述动态元素对应的标签。
具体地,所述动态元素的标识信息中包含有用于确定动态元素的类型的标签,比如,所述标签为“1”,表明所述动态元素为用户头像;所述标签为“2”,表明所述动态元素为多个盲盒礼物图片中的一个,具体哪个可以采用随机算法确定。
在一示例性的实施方式中,所述的标识信息中还可以包括是否有动态元素的动态元素判定信息,比如,所述动态元素判定信息为“1”用于表示包含有动态元素,所述动态元素判定信息为“0”用于表示不包含有动态元素。
需要说明的是,标签所指代的动态元素的类型可以预先进行约定。
在一示例性的实施方式中,为了可以灵活进行动态元素的添加,参阅图10,所述从所述动态元素的标识信息中获取所述动态元素对应的标签包括:
步骤S100,根据所述动态元素的标识信息中的动态元素判定信息判断是否在所述动画中添加所述动态元素。
具体地,所述动态元素判定信息为标识信息中用于判定是否需要在动画中添加所述动态元素的信息,比如,所述动态元素判定信息为“需要”,则表明需要在动画中添加所述动态元素;所述动态元素判定信息为“不需要”,则表明不需要在动画中添加所述动态元素。
步骤S101,在判定出在所述动画中添加所述动态元素时,从所述动态元素的标识信息中获取所述动态元素对应的标签。
在实施例中,只有在判定需要添加所述动态元素时,才会从所述动态元素的标识信息中获取所述动态元素对应的标签;在判定出不需要添加所述动态元素时,则无需执行从所述动态元素的标识信息中获取所述动态元素对应的标签的步骤。
可以理解的是,当判定出无需添加动态元素时,则也无需执行根据所述动态元素的透明度参数值及待融合图片的纹理数据合成所述动态元素的纹理数的步骤,以及无需执行对所述动态元素的纹理数据进行渲染的步骤。
步骤S91,根据所述标签获取与所述标签相匹配的待融合图片。
具体地,在得到标签之后,即可以根据该标签获取与标签匹配的待融合图片。比如,获取到的标签为“1”,则可以将用户头像作为待融合图片。
步骤S92,将所述待融合图片转换为对应的纹理数据。
具体地,在获取到待融合图片后,为了后续进行图像渲染,需要先将待融合图片转换为对应的纹理数据。
步骤S93,根据所述动态元素的透明度参数值及转换得到的纹理数据合成所述动态元素的纹理数据。
具体地,由于动态元素的透明度参数值预先存储在动画视频文件中,因此,在得到动态元素的透明度参数值及待融合图片的纹理数据后,可以将两者进行数据合成,从而得到最终的动态元素的纹理数据。
步骤S75,对所述目标动画帧的纹理数据及所述动态元素的纹理数据进行渲染,得到礼目标动画。
具体地,在得到目标动画帧的纹理数据及所述动态元素的纹理数据之后,可以通过GPU对所述目标动画帧的纹理数据及所述动态元素的纹理数据进行渲染,得到目标动画。
具体而言,可以根据所述每一张遮罩帧图片在所述目标帧图片中的位置信息、礼物动画的宽高信息在直播间中对该纹理数据进行渲染,得到具有动态元素的礼物动画。
本实施例中,通过硬解码的方式实现动画视频文件的播放,从而可以减少对CPU的性能消耗。
在一示例性的实施方式中,所述对所述动画视频文件包含的每一张目标帧图片进行解码的步骤之前,还包括:对解码器和渲染器进行初始化;判断所述解码器和所述渲染器的初始化状态是否正常;若所述解码器和所述渲染器的初始化状态正常,则执行步骤S81。
本实施例中,在采用硬解码的方式实现对动画视频文件进行播放时,需要先对解码器和渲染器进行初始化操作,并在进行初始化操作后,监测初始化状态是否正常,也就是说,需要判断解码器和渲染器是否初始化成功,只有解码器和渲染器初始化成功后,客户端才会采用硬解码的方式来对动画视频文件进行播放。
在一示例性的实施方式中,若所述解码器或所述渲染器的初始化状态不正常,则触发动画视频的软解播放器的播放事件,并根据所述播放事件对所述动画视频文件进行软解播放。
具体地,所述软解播放器的播放事件为通过软件解码进行视频播放的事件,通过该播放事件可以通知客户端对视频播放文件进行软解播放。其中,软件解码指的是软件本身占用CPU进行解码的视频播放方式,其对CPU性能消耗较高。
可以理解的是,当进行软件播放时,为了提高播放效果,在进行软解的过程中,只会对目标帧图片中的第一区域进行解码,而无需对第二区域进行解码。
本实施例中,通过硬件解码兼容软件解码的方式对动画视频文件进行播放,可以避免当硬解码播放失败时,就不能对动画视频文件进行播放。
在一示例性的实施方式中,为了提高播放效果,所述获取动画视频文件可以包括:检测当前屏幕所处的视频播放模式,所述视频播放模式包括横屏播放及竖屏播放;根据所述视频播放模式获取与所述视频播放模式相对应的动画视频文件。
本实施例,可以预先生成适用于横屏播放的动画视频文件和适用于竖屏播放的动画视频文件,这样,在播放动画视频文件时,可以根据当前屏幕所处的视频播放模式来获取对应的动画视文件来进行动画播放。
可以理解的是,当在动画视频文件的播放过程中,出现了视频播放模式切换的情况,比如,从横屏播放模式切换到竖屏播放模式,则可以切换当前播放的动画视频文件,也从横屏动画视频文件切换为竖屏动画视频文件,之后,读取之前播放的时间点,然后在竖屏动画视频文件中从当前播放的时间点继续播放,来达到更优秀的显示效果。
参阅图11所示,是本申请动画视频生成装置110一实施例的程序模块图。
本实施例中,所述动画视频生成装置110包括一系列的存储于存储器上的计算机程序指令,当所述计算机程序指令被处理器执行时,可以实现本申请各实施例的动画视频生成功能。在一些实施例中,基于所述计算机程序指令各部分所实现的特定的操作,动画视频生成装置110可以被划分为一个或多个模块,具体可以划分的模块如下:
第一获取模块111,用于对于视频序列帧中的每一张视频帧图片,获取所述视频帧图片中的每一个像素点的第一色彩参数值和透明度参数值;
第二获取模块112,用于对于遮罩序列帧中的每一张遮罩帧图片,获取所述遮罩帧图片中的每一个像素点的第二色彩参数值,其中,每一张遮罩帧图片中的每一个像素点在各个色彩通道中的色彩参数值相同,每一张遮罩帧图片对应一张视频帧图片;
生成模块113,用于根据所述第二色彩参数值及所述第一色彩参数值和透明度参数值生成包括第一区域和第二区域的目标帧图片,其中,所述第一区域的各个色彩通道保存所述第一色彩参数值,所述第二区域的第一色彩通道保存所述透明度参数值,所述第二区域的第二色彩通道保存所述第二色彩参数值;
合成模块114,用于将由生成的所有的目标帧图片组合成的目标帧图片序列合成动画视频文件;
写入模块115,用于构造播放所述动画视频文件所需的参数信息,将所述参数信息写入至所述动画视频文件中。
在一示例性的实施方式中,生成模块113,还用于在内存中创建两个图像缓存区域;将所述第一色彩参数值存储至第一个图像缓存区域的各个色彩通道中,并将所述透明度参数值存储至第二个图像缓存区域的第一色彩通道中,以及将所述第二色彩参数值存储至第二个图像缓存区域的第二色彩通道中;根据所述两个图像缓存区域中存储的参数值生成包括所述第一区域和所述第二区域的目标帧图片。
在一示例性的实施方式中,写入模块115,还用于将播放所述动画视频文件所需的参数信息构造为预设格式的文件;将所述预设格式的文件转换为二进制文件,并将所述二进制文件写入至所述动画视频文件中。
在一示例性的实施方式中,所述参数信息包括所述第一区域与所述第二区域在所述目标帧图片中的位置信息、每一张遮罩帧图片的位置信息、礼物动画的宽高信息及动态元素的标识信息。
在一示例性的实施方式中,所述第一色彩参数值及所述第二色彩参数值为RGB值,所述透明度参数值为透明度值,所述第一区域的各个色彩通道为RGB通道,所述第二区域的第一色彩通道和第二色彩通道为R通道、G通道及B通道中的其中一个通道,所述第二区域的第二色彩通道与所述第一色彩通道为不同的色彩通道。
参阅图12所示,是本申请动画视频播放装置120一实施例的程序模块图。
本实施例中,所述动画视频播放装置120包括一系列的存储于存储器上的计算机程序指令,当所述计算机程序指令被处理器执行时,可以实现本申请各实施例的动画视频播放功能。在一些实施例中,基于所述计算机程序指令各部分所实现的特定的操作,动画视频播放装置120可以被划分为一个或多个模块,具体可以划分的模块如下:
响应模块121,用于响应于用户在直播间的点击操作,获取所述点击操作对应的动画视频文件;
解码模块122,用于对所述动画视频文件包含的每一张目标帧图片进行解码,得到所述目标帧图片对应的纹理图片;
获取模块123,用于从所述动画视频文件中的参数信息中获取每一张目标帧图片包含的第一区域与第二区域的位置信息;
采样模块124,用于根据所述第一区域和所述第二区域的位置信息分别对所述纹理图片进行纹理采样,得到待合成的目标动画帧中每一个像素点的第一色彩参数值和透明度参数值,以及得到所述动态元素的第二色彩参数值,并将所述第二色彩参数值作为所述动态元素的透明度参数值;
合成模块125,用于根据所述目标动画帧中每一个像素点的第一色彩参数值和透明度参数值合成所述目标动画帧的纹理数据,并根据所述动态元素的透明度参数值及待融合图片的纹理数据合成所述动态元素的纹理数据;
渲染模块126,用于对所述目标动画帧的纹理数据及所述动态元素的纹理数据进行渲染,得到目标动画。
在一示例性的实施方式中,所述合成模块125,还用于从所述动态元素的标识信息中获取所述动态元素对应的标签;根据所述标签获取与所述标签相匹配的待融合图片;将所述待融合图片转换为对应的纹理数据;根据所述动态元素的透明度参数值及转换得到的纹理数据合成所述动态元素的纹理数据。
在一示例性的实施方式中,所述获取模块123,还用于从所述动画视频文件中的参数信息中获取每一张遮罩帧图片在所述目标帧图片中的位置信息、目标动画的宽高信息及动态元素的标识信息。
渲染模块126,还用于根据所述每一张遮罩帧图片在所述目标帧图片中的位置信息、目标动画的宽高信息对所述目标动画帧的纹理数据及所述动态元素的纹理数据进行渲染,得到目标动画。
在一示例性的实施方式中,所述采样模块124,还用于根据所述第一区域的位置信息对所述纹理图片中与所述第一区域的位置信息相对应的区域进行纹理采样,得到所述目标帧图片包含的第一区域中的每一个像素点的色彩参数值,并将所述第一区域中的每一个像素点的色彩参数值作为所述目标动画帧中的每一个像素点的第一色彩参数值;根据所述第二区域的位置信息对所述纹理图片中与所述第二区域的位置信息相对应的区域进行纹理采样,得到所述目标帧图片包含的第二区域中的每一个像素点的色彩参数值;将所述第二区域中的每一个像素点的色彩参数值中对应于第一目标色彩通道的参数值作为所述目标动画帧中的每一个像素点的透明度参数值;将所述第二区域中的每一个像素点的色彩参数值中对应于第二目标色彩通道的参数值作为所述动态元素的透明度参数值。
在一示例性的实施方式中,所述合成模块125,还用于根据所述动态元素的标识信息中的动态元素判定信息判断是否在所述动画中添加所述动态元素;在判定出在所述动画中添加所述动态元素时,从所述动态元素的标识信息中获取所述动态元素对应的标签。
在一示例性的实施方式中,所述动画视频播放装置120还包括初始化模块及判断模块及执行模块。
所述初始化模块,用于对解码器和渲染器进行初始化。
所述判断模块,用于判断所述解码器和所述渲染器的初始化状态是否正常。
所述执行模块,用于若所述解码器和所述渲染器的初始化状态正常,则执行所述对所述动画视频文件包含的每一张目标帧图片进行解码的步骤。
图13示意性示出了根据本申请实施例的适于实现动画视频生成、播放方法的计算机设备13的硬件架构示意图。本实施例中,计算机设备13是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图13所示,计算机设备13至少包括但不限于:可通过系统总线相互通信链接存储器130、处理器131、网络接口132。其中:
存储器130至少包括一种类型的计算机可读存储介质,所述可读存储介质可以是易失性的,也可以是非易失性的,具体而言,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器130可以是计算机设备13的内部存储模块,例如所述计算机设备13的硬盘或内存。在另一些实施例中,存储器130也可以是计算机设备13的外部存储设备,例如所述计算机设备13上配备的插接式硬盘,智能存储卡(Smart MediaCard,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器130还可以既包括计算机设备13的内部存储模块也包括其外部存储设备。本实施例中,存储器130通常用于存储安装于计算机设备13的操作系统和各类应用软件,例如动画视频生成、播放方法的程序代码等。此外,存储器130还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器131在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其它动画视频生成、播放芯片。所述处理器131通常用于控制计算机设备13的总体操作,例如执行与计算机设备13进行数据交互或者通信相关的控制和处理等。本实施例中,处理器131用于运行存储器130中存储的程序代码或者处理数据。
网络接口132可包括无线网络接口或有线网络接口,所述网络接口132通常用于在计算机设备13与其它计算机设备之间建立通信链接。例如,网络接口132用于通过网络将计算机设备13与外部终端相连,在计算机设备13与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图13仅示出了具有部件130~132的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器130中的动画视频生成、播放方法可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器131)所执行,以完成本申请。
本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的动画视频生成、播放方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(Smart MediaCard,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的动画视频生成、播放方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到至少两个网络单元上。可以根据实际的需要筛选出其中的部分或者全部模块来实现本申请实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (15)

1.一种动画视频生成方法,其特征在于,包括:
对于视频序列帧中的每一张视频帧图片,获取所述视频帧图片中的每一个像素点的第一色彩参数值和透明度参数值;
对于遮罩序列帧中的每一张遮罩帧图片,获取所述遮罩帧图片中的每一个像素点的第二色彩参数值,其中,每一张遮罩帧图片中的每一个像素点在各个色彩通道中的色彩参数值相同,所述遮罩帧图片指的是待播放的动画中需要添加动态元素的透明度值组成的区域图片;
根据所述第二色彩参数值及所述第一色彩参数值和透明度参数值生成包括第一区域和第二区域的目标帧图片,其中,所述第一区域的各个色彩通道保存所述第一色彩参数值,所述第二区域的第一色彩通道保存所述透明度参数值,所述第二区域的第二色彩通道保存所述第二色彩参数值;
将由生成的所有的目标帧图片组合成的目标帧图片序列合成动画视频文件;
构造播放所述动画视频文件所需的参数信息,将所述参数信息写入至所述动画视频文件中。
2.根据权利要求1所述的动画视频生成方法,其特征在于,所述根据所述第二色彩参数值及所述第一色彩参数值和透明度参数值生成包括第一区域和第二区域的目标帧图片包括:
在内存中创建两个图像缓存区域;
将所述第一色彩参数值存储至第一个图像缓存区域的各个色彩通道中,并将所述透明度参数值存储至第二个图像缓存区域的第一色彩通道中,以及将所述第二色彩参数值存储至第二个图像缓存区域的第二色彩通道中;
根据所述两个图像缓存区域中存储的参数值生成包括所述第一区域和所述第二区域的目标帧图片。
3.根据权利要求1所述的动画视频生成方法,其特征在于,所述构造播放所述动画视频文件所需的参数信息,将所述参数信息写入至所述动画视频文件中包括:
将播放所述动画视频文件所需的参数信息构造为预设格式的文件;
将所述预设格式的文件转换为二进制文件,并将所述二进制文件写入至所述动画视频文件中。
4.根据权利要求1至3任一项所述的动画视频生成方法,其特征在于,所述参数信息包括所述第一区域与所述第二区域在所述目标帧图片中的位置信息、每一张遮罩帧图片在所述目标帧图片中的位置信息、礼物动画的宽高信息及动态元素的标识信息中的至少一种。
5.根据权利要求1至3任一项所述的动画视频生成方法,其特征在于,所述第一色彩参数值及所述第二色彩参数值为RGB值,所述透明度参数值为透明度值,所述第一区域的各个色彩通道为RGB通道,所述第二区域的第一色彩通道和第二色彩通道为R通道、G通道及B通道中的其中一个通道,所述第二区域的第二色彩通道与所述第一色彩通道为不同的色彩通道。
6.一种动画视频播放方法,其特征在于,包括:
响应于用户在直播间的点击操作,获取所述点击操作对应的动画视频文件;
对所述动画视频文件包含的每一张目标帧图片进行解码,得到所述目标帧图片对应的纹理图片;
从所述动画视频文件中的参数信息中获取每一张目标帧图片包含的第一区域与第二区域的位置信息;
根据所述第一区域和所述第二区域的位置信息分别对所述纹理图片进行纹理采样,得到待合成的目标动画帧中每一个像素点的第一色彩参数值和透明度参数值,以及得到动态元素的第二色彩参数值,并将所述第二色彩参数值作为所述动态元素的透明度参数值;
根据所述目标动画帧中每一个像素点的第一色彩参数值和透明度参数值合成所述目标动画帧的纹理数据,并根据所述动态元素的透明度参数值及待融合图片的纹理数据合成所述动态元素的纹理数据;
对所述目标动画帧的纹理数据及所述动态元素的纹理数据进行渲染,得到目标动画。
7.根据权利要求6所述的动画视频播放方法,其特征在于,所述方法还包括:
从所述动画视频文件中的参数信息中获取每一张遮罩帧图片在所述目标帧图片中的位置信息、目标动画的宽高信息及动态元素的标识信息;
所述对所述目标动画帧的纹理数据及所述动态元素的纹理数据进行渲染,得到目标动画包括:
根据所述每一张遮罩帧图片在所述目标帧图片中的位置信息、目标动画的宽高信息对所述目标动画帧的纹理数据及所述动态元素的纹理数据进行渲染,得到目标动画。
8.根据权利要求6所述的动画视频播放方法,其特征在于,所述根据所述动态元素的透明度参数值及待融合图片的纹理数据合成所述动态元素的纹理数据包括:
从所述动态元素的标识信息中获取所述动态元素对应的标签;
根据所述标签获取与所述标签相匹配的待融合图片;
将所述待融合图片转换为对应的纹理数据;
根据所述动态元素的透明度参数值及转换得到的纹理数据合成所述动态元素的纹理数据。
9.根据权利要求6所述的动画视频播放方法,其特征在于,根据所述第一区域和所述第二区域的位置信息分别对所述纹理图片进行纹理采样,得到待合成的目标动画帧中每一个像素点的第一色彩参数值和透明度参数值,以及得到所述动态元素的第二色彩参数值,并将所述第二色彩参数值作为所述动态元素的透明度参数值包括:
根据所述第一区域的位置信息对所述纹理图片中与所述第一区域的位置信息相对应的区域进行纹理采样,得到所述目标帧图片包含的第一区域中的每一个像素点的色彩参数值,并将所述第一区域中的每一个像素点的色彩参数值作为所述目标动画帧中的每一个像素点的第一色彩参数值;
根据所述第二区域的位置信息对所述纹理图片中与所述第二区域的位置信息相对应的区域进行纹理采样,得到所述目标帧图片包含的第二区域中的每一个像素点的色彩参数值;
将所述第二区域中的每一个像素点的色彩参数值中对应于第一目标色彩通道的参数值作为所述目标动画帧中的每一个像素点的透明度参数值;
将所述第二区域中的每一个像素点的色彩参数值中对应于第二目标色彩通道的参数值作为所述动态元素的透明度参数值。
10.根据权利要求8所述的动画视频播放方法,其特征在于,所述从所述动态元素的标识信息中获取所述动态元素对应的标签包括:
根据所述动态元素的标识信息中的动态元素判定信息判断是否在所述动画中添加所述动态元素;
在判定出在所述动画中添加所述动态元素时,从所述动态元素的标识信息中获取所述动态元素对应的标签。
11.根据权利要求6至10任一项所述的动画视频播放方法,其特征在于,所述对所述动画视频文件包含的每一张目标帧图片进行解码的步骤之前,还包括:
对解码器和渲染器进行初始化;
判断所述解码器和所述渲染器的初始化状态是否正常;
若所述解码器和所述渲染器的初始化状态正常,则执行所述对所述动画视频文件包含的每一张目标帧图片进行解码的步骤。
12.一种动画视频生成装置,其特征在于,包括:
第一获取模块,用于对于视频序列帧中的每一张视频帧图片,获取所述视频帧图片中的每一个像素点的第一色彩参数值和透明度参数值;
第二获取模块,用于对于遮罩序列帧中的每一张遮罩帧图片,获取所述遮罩帧图片中的每一个像素点的第二色彩参数值,其中,每一张遮罩帧图片中的每一个像素点在各个色彩通道中的色彩参数值相同,所述遮罩帧图片指的是待播放的动画中需要添加动态元素的透明度值组成的区域图片;
生成模块,用于根据所述第二色彩参数值及所述第一色彩参数值和透明度参数值生成包括第一区域和第二区域的目标帧图片,其中,所述第一区域的各个色彩通道保存所述第一色彩参数值,所述第二区域的第一色彩通道保存所述透明度参数值,所述第二区域的第二色彩通道保存所述第二色彩参数值;
合成模块,用于将由生成的所有的目标帧图片组合成的目标帧图片序列合成动画视频文件;
写入模块,用于构造播放所述动画视频文件所需的参数信息,将所述参数信息写入至所述动画视频文件中。
13.一种动画视频播放装置,其特征在于,包括:
响应模块,用于响应于用户在直播间的点击操作,获取所述点击操作对应的动画视频文件;
解码模块,用于对所述动画视频文件包含的每一张目标帧图片进行解码,得到所述目标帧图片对应的纹理图片;
获取模块,用于从所述动画视频文件中的参数信息中获取每一张目标帧图片包含的第一区域与第二区域的位置信息;
采样模块,用于根据所述第一区域和所述第二区域的位置信息分别对所述纹理图片进行纹理采样,得到待合成的目标动画帧中每一个像素点的第一色彩参数值和透明度参数值,以及得到动态元素的第二色彩参数值,并将所述第二色彩参数值作为所述动态元素的透明度参数值;
合成模块,用于根据所述目标动画帧中每一个像素点的第一色彩参数值和透明度参数值合成所述目标动画帧的纹理数据,并根据所述动态元素的透明度参数值及待融合图片的纹理数据合成所述动态元素的纹理数据;
渲染模块,用于对所述目标动画帧的纹理数据及所述动态元素的纹理数据进行渲染,得到目标动画。
14.一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至11任一项所述的方法的步骤。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11任一项所述的方法的步骤。
CN202210193903.0A 2022-03-01 2022-03-01 动画视频生成、播放方法及装置 Active CN114598937B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210193903.0A CN114598937B (zh) 2022-03-01 2022-03-01 动画视频生成、播放方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210193903.0A CN114598937B (zh) 2022-03-01 2022-03-01 动画视频生成、播放方法及装置

Publications (2)

Publication Number Publication Date
CN114598937A CN114598937A (zh) 2022-06-07
CN114598937B true CN114598937B (zh) 2023-12-12

Family

ID=81807113

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210193903.0A Active CN114598937B (zh) 2022-03-01 2022-03-01 动画视频生成、播放方法及装置

Country Status (1)

Country Link
CN (1) CN114598937B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115643462B (zh) * 2022-10-13 2023-09-08 北京思明启创科技有限公司 一种交互动画展示方法、装置、计算机设备及存储介质
CN116797700A (zh) * 2023-07-13 2023-09-22 北京可利邦信息技术股份有限公司 动态颜色渐变背景图像生成方法、装置、系统及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103971391A (zh) * 2013-02-01 2014-08-06 腾讯科技(深圳)有限公司 一种动画生成方法及装置
CN109272565A (zh) * 2017-07-18 2019-01-25 腾讯科技(深圳)有限公司 动画播放方法、装置、存储介质以及终端
CN111954060A (zh) * 2019-05-17 2020-11-17 上海哔哩哔哩科技有限公司 弹幕蒙版的渲染方法、计算机设备及可读存储介质
CN112070864A (zh) * 2019-06-11 2020-12-11 腾讯科技(深圳)有限公司 动画渲染方法、装置、计算机可读存储介质和计算机设备
CN112870704A (zh) * 2021-03-18 2021-06-01 腾讯科技(深圳)有限公司 一种游戏数据处理方法、装置及存储介质
CN113709554A (zh) * 2021-08-26 2021-11-26 上海哔哩哔哩科技有限公司 动画视频生成、直播间动画视频播放方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103971391A (zh) * 2013-02-01 2014-08-06 腾讯科技(深圳)有限公司 一种动画生成方法及装置
CN109272565A (zh) * 2017-07-18 2019-01-25 腾讯科技(深圳)有限公司 动画播放方法、装置、存储介质以及终端
CN111954060A (zh) * 2019-05-17 2020-11-17 上海哔哩哔哩科技有限公司 弹幕蒙版的渲染方法、计算机设备及可读存储介质
CN112070864A (zh) * 2019-06-11 2020-12-11 腾讯科技(深圳)有限公司 动画渲染方法、装置、计算机可读存储介质和计算机设备
CN112870704A (zh) * 2021-03-18 2021-06-01 腾讯科技(深圳)有限公司 一种游戏数据处理方法、装置及存储介质
CN113709554A (zh) * 2021-08-26 2021-11-26 上海哔哩哔哩科技有限公司 动画视频生成、直播间动画视频播放方法及装置

Also Published As

Publication number Publication date
CN114598937A (zh) 2022-06-07

Similar Documents

Publication Publication Date Title
CN114598937B (zh) 动画视频生成、播放方法及装置
CN113709554A (zh) 动画视频生成、直播间动画视频播放方法及装置
CN108574806B (zh) 视频播放方法和装置
US10986330B2 (en) Method and system for 360 degree head-mounted display monitoring between software program modules using video or image texture sharing
CN111899155B (zh) 视频处理方法、装置、计算机设备及存储介质
CN103617027B (zh) 基于安卓系统的图像渲染引擎构建方法及系统
CN109587546B (zh) 视频处理方法、装置、电子设备和计算机可读介质
US11563915B2 (en) Media content presentation
KR102336179B1 (ko) 비디오 데이터 처리 시스템
WO2020248948A1 (zh) 动画文件处理方法、装置、计算机可读存储介质和计算机设备
CN109327698B (zh) 动态预览图的生成方法、系统、介质和电子设备
CN111899322A (zh) 视频处理方法、动画渲染sdk和设备及计算机存储介质
CN112073794B (zh) 动画处理方法、装置、计算机可读存储介质和计算机设备
CN105791952A (zh) 流媒体视频数据的截图方法和装置以及电子设备
JP6066755B2 (ja) 描画処理装置および描画処理方法
KR20180027917A (ko) 디스플레이장치 및 그 제어방법
US10645306B2 (en) Method for producing media file and electronic device thereof
US20050021552A1 (en) Video playback image processing
CN114222185B (zh) 视频播放方法、终端设备及存储介质
CN111314777B (zh) 视频生成方法及装置、计算机存储介质、电子设备
CN114449305A (zh) 直播间中的礼物动画播放方法及装置
CN108235144B (zh) 播放内容获取方法、装置及计算设备
US20150128029A1 (en) Method and apparatus for rendering data of web application and recording medium thereof
JP2008053884A (ja) 画像処理方法および装置およびこれらを利用した電子機器
CN110557652A (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