掌桥专利:专业的专利平台
掌桥专利
首页

视频生成方法、装置、电子设备和存储介质

文献发布时间:2024-04-18 19:58:26


视频生成方法、装置、电子设备和存储介质

技术领域

本公开的实施方式涉及计算机领域,更具体地,本公开的实施方式涉及一种视频生成方法、装置、电子设备和存储介质。

背景技术

本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

当前,用户在进行页面内容分享时,可以通过将页面内容生成为视频的形式,以便快捷的在社交平台上发布。

相关技术在将页面内容生成为视频的过程中,通常需要占用客户端大量的资源,生成效率较低,且无法兼容各类客户端设备及页面类型。

发明内容

相关技术在生成页面对应的视频时中,需要消耗大量客户端资源,且无法兼容各类客户端设备或页面类型。

为此,在本上下文中,本公开的实施方式期望提供一种视频生成方法、装置、电子设备和存储介质。

在本公开实施例的第一方面中,提供了一种视频生成方法,应用于服务器,该方法包括:

响应于针对初始页面的视频生成请求,获取与初始页面对应的目标页面,目标页面包括添加有至少一种动画效果的初始页面;

录制目标页面,得到数据帧队列,其中,目标页面在录制过程中展示至少一种动画效果;

基于数据帧队列,生成与目标页面对应的目标视频。

在一些实施例中,响应于针对初始页面的视频生成请求,获取与初始页面对应的目标页面,包括:

响应于针对初始页面的视频生成请求,获取初始页面;

在初始页面中添加至少一种动画效果,得到目标页面。

在一些实施例中,目标页面与初始页面预先配置有对应关系;

在响应于针对初始页面的视频生成请求,获取与初始页面对应的目标页面之前,该方法还包括:

响应于针对初始页面的创建请求,创建与初始页面对应的目标页面。

在一些实施例中,至少一种动画效果包括页面滚动效果;

录制目标页面,得到数据帧队列,包括:

录制目标页面,其中,目标页面在录制过程中展示页面滚动效果,以使目标页面在浏览器中滚动;

当目标页面在浏览器中滚动至底部时,停止录制,得到数据帧队列。

在一些实施例中,至少一种动画效果还包括页面静止效果,页面静止效果在页面滚动效果之前展示。

在一些实施例中,目标页面包括动态元素,动态元素在目标页面中处于静止状态,该方法还包括:

在目标页面的当前录制区域包含动态元素的情况下,将动态元素设置为播放状态;

在动态元素播放完成的情况下,将动态元素设置为静止状态。

在一些实施例中,至少一种动画效果包括页面滚动效果,该方法还包括:

在目标页面的当前录制区域包含动态元素的情况下,暂停展示页面滚动效果;

在动态元素播放完成的情况下,继续展示页面滚动效果。

在一些实施例中,在目标页面包括动态元素的情况下,数据帧包括音频帧和视频帧;

在基于数据帧队列,生成与目标页面对应的目标视频之前,该方法还包括:

根据将动态元素设置为播放状态的时刻,将音频帧和视频帧对齐。

在一些实施例中,在基于数据帧队列,生成与目标页面对应的目标视频之前,该方法还包括:

判断数据帧队列中是否存在异常帧;

若是,则将异常帧从数据帧队列中剔除。

在一些实施例中,判断数据帧队列中是否存在异常帧,包括:

针对数据帧队列中的每个数据帧,若该数据帧的容量小于预设容量阈值,则该数据帧为异常帧。

在一些实施例中,在基于数据帧队列,生成与目标页面对应的目标视频之前,该方法还包括:

将数据帧队列中的首个数据帧重复插入数据帧队列的队首,以使首个数据帧在目标视频中静止显示。

在一些实施例中,该方法还包括:

在目标页面的录制过程中,对至少一种动画效果进行指定倍速的快放;

基于数据帧队列,生成与目标页面对应的目标视频,包括:

对数据帧队列进行指定倍速的慢放,以生成与目标页面对应的目标视频。

在一些实施例中,在录制目标页面,得到数据帧队列之前,该方法还包括:

确定目标页面加载完成;

在目标页面加载完成后,确定用于展示至少一个动画效果的资源加载完成。

在本公开实施例的第二方面中,提供了一种视频生成方法,应用于客户端,该方法包括:

向服务器发送针对初始页面的视频生成请求,以使服务器获取与初始页面对应的目标页面,目标页面包括添加有至少一种动画效果的初始页面;

获取目标视频,目标视频由服务器基于数据帧队列生成,数据帧队列由服务器录制目标页面获得,其中,目标页面在录制过程中展示至少一种动画效果。

在本公开实施例的第三方面中,提供了一种视频生成装置,应用于服务器,该装置包括:

获取模块,用于响应于针对初始页面的视频生成请求,获取与初始页面对应的目标页面,目标页面包括添加有至少一种动画效果的初始页面;

录制模块,用于录制目标页面,得到数据帧队列,其中,目标页面在录制过程中展示至少一种动画效果;

生成模块,用于基于数据帧队列,生成与目标页面对应的目标视频。

在本公开实施例的第四方面中,提供了一种视频生成装置,应用于客户端,该装置包括:

发送模块,用于向服务器发送针对初始页面的视频生成请求,以使服务器获取与初始页面对应的目标页面,目标页面包括添加有至少一种动画效果的初始页面;

获取模块,用于获取目标视频,目标视频由服务器基于数据帧队列生成,数据帧队列由服务器录制目标页面获得,其中,目标页面在录制过程中展示至少一种动画效果。

在本公开实施例的第五方面中,提供了一种电子设备,包括:

处理器;以及

存储器,用于存储处理器的可执行指令;

其中,处理器配置为经由执行可执行指令来执行第一方面或第二方面的方法。

在本公开实施例的第六方面中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行第一方面或第二方面的方法。

根据本公开实施例的方案,可以响应于针对初始页面的视频生成请求,获取与初始页面对应的目标页面,随后通过录制目标页面,可以得到数据帧队列,进而根据数据帧队列生成与目标页面对应的目标视频。其中,目标页面包括添加有至少一种动画效果的初始页面,且目标页面在录制过程中展示至少一种动画效果。本公开实施例提供的方案,可以根据页面内容快速生成相应的视频,且视频生成期间无需消耗客户端资源,能够适配于不同种类的页面类型及客户端设备。

附图说明

通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:

图1示意性地示出了本公开实施例的系统架构示意图。

图2示意性地示出了本公开实施例的一种视频生成方法的流程示意图。

图3示意性地示出了本公开实施例的一种目标页面录制方法的流程示意图。

图4示意性地示出了本公开实施例的另一种视频生成方法的流程示意图。

图5示意性地示出了本公开实施例的存储介质的结构示意图。

图6示意性地示出了本公开实施例的一种视频生成装置的结构示意图。

图7示意性地示出了本公开实施例的另一种视频生成装置的结构示意图。

图8示意性地示出了本公开实施例的电子设备的结构示意图。

在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

根据本公开的实施方式,提出了一种视频生成方法、装置、电子设备和存储介质。

在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。

下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。

发明概述

当前,用户在进行页面内容分享时,可以通过将页面内容生成为视频的形式,以便快捷的在社交平台上发布。

相关技术在视频生成的过程中,主要包含以下两种方式:

其一,通过提取页面中的内容,并嵌入至特定的视频帧模板,以生成与页面内容相应的视频。

其二,通过客户端系统中原生的内容捕获能力,直接将页面内容转换为视频帧,以生成与页面内容相应的视频。

本发明人发现,针对以上第一种方式而言,只有在页面内容可以嵌入预设模板的情况下,才能生成相应的视频。即视频的生成需要保证页面内容与模板匹配。而针对以上第二种方式而言,系统原生的内容捕获能力仅能够将页面内容中的动态元素生成为视频,而页面中的静态元素可能会发生缺失。

因此,以上两种视频生成方式均对页面内容的形式具有一定的限制,无法兼容各类页面。

此外,以上两种视频生成方式均由客户端设备执行,在视频生成过程中需要占用大量客户端上的系统资源,影响用户体验。受限于客户端设备算力与系统的影响,以上两种方式在不同类型的客户端设备上同样可能存在兼容性问题,致使视频生成失败。

为此,本公开实施例提供的方案,可以响应于针对初始页面的视频生成请求,获取与初始页面对应的目标页面,其中,目标页面包括添加有至少一种动画效果的初始页面。通过录制目标页面,可以得到数据帧队列,其中,目标页面在录制过程中展示至少一种动画效果。基于数据帧队列,即可生成与目标页面对应的目标视频。本公开实施例提供的方案,可以根据页面内容快速生成相应的视频,且视频生成期间无需消耗客户端资源,能够适配于不同种类的页面类型及客户端设备。

在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。

应用场景总览

首先,对本公开实施例涉及的应用场景进行介绍。

请参考图1,图1示出了可以应用于本公开实施例的视频生成方法或视频生成装置的示例性系统架构示意图。

如图1所示,该系统架构100包括终端101和服务器102。终端101通过网络连接服务器102,网络可以是广域网或者局域网,又或者是二者的组合。

在一些实施例中,终端101可以向服务器102发送针对初始页面的视频生成请求,并接收服务器102返回的视频生成结果。其中,视频生成结果可以是目标视频的视频链接。

示例性地,终端101可以包括手机、智能电视、平板电脑、笔记本电脑、或个人计算机(PC,Personal Computer)等。终端101上还可以设置客户端,该客户端可以是应用程序客户端或者浏览器客户端等等。

在一些实施例中,服务器102可以响应于针对初始页面的视频生成请求,获取与初始页面对应的目标页面;录制目标页面,得到数据帧队列;基于数据帧队列,生成与目标页面对应的目标视频。当然,服务器还可以将生成的目标视频转换为视频链接,以便返回终端101,并使用户能够通过视频链接快速分享或发布生成的目标视频。

示例性地,服务器102既可以为单独配置的支持各种业务的一个服务器,亦可以配置为一个服务器集群。

本领域技术人员可以知晓,图1中示出的终端和服务器的数量仅仅是示意性的,根据实际需要,可以具有任意数目的终端和服务器,本公开对此不做限制。

示例性方法

下面结合图1提供的应用场景,参考图2来描述根据本公开示例性实施方式的用于视频生成的方法。需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。

首先,本公开实施例中提供了一种视频生成方法,该方法可以由服务器执行。

图2示出本公开实施例中一种视频生成方法的流程示意图,如图2所示,本公开实施例中提供的视频生成方法包括如下步骤。

S201,响应于针对初始页面的视频生成请求,获取与初始页面对应的目标页面,目标页面包括添加有至少一种动画效果的初始页面。

需要说明的是,初始页面是可以在浏览器中展示的任意具有Web元素的页面。示例性地,初始页面中可以包含静态元素(例如,文本、静态图片等)和动态元素(例如,视频、音频、文本动效、动态图片等)中的至少一种。

应当理解的是,本公开实施例中的浏览器可以是独立的浏览器程序,例如,IE浏览器、Chrome浏览器等,也可以是内嵌浏览器的其他客户端程序,例如,能够访问网络资源的内容分享类应用程序,本公开实施例对此不做限定。

通过在初始页面中添加动画效果,可以得到目标页面。其中,动画效果可以是针对初始页面全局的动画效果(例如,页面滚动、页面静止、更改页面背景图片等),也可以是针对初始页面中某一特定页面元素的动画效果(例如,将图片放大显示、改变文本样式等),本公开实施例对此不做限定。

应当理解的是,本公开实施例中的动画效果,旨在丰富初始页面的展示效果,并使仅包含静态元素的初始页面能够以动态的形式呈现,以便录制相应的动态目标视频。因此,本公开实施例中的动画效果可以是视觉上的动画效果,例如,页面滚动,页面静止等,也可以是不可视的动画效果,例如,在初始页面中插入背景音乐。

本公开实施例通过在初始页面中添加动画,可以丰富生成后目标视频的视频效果。同时,由于初始页面中可能是仅包括静态元素的静态页面,通过在静态页面中添加动画效果,可以使静态页面同样能够被录制为视频的形式。例如,在静态页面中添加页面滚动效果,并对滚动的静态页面进行录制,可以使静态页面中的完整内容以视频的形式呈现。

在一些实施例中,目标页面可以在接收到视频生成请求后创建。具体地,服务器可以响应于针对初始页面的视频生成请求,获取与视频生成请求相应的初始页面。随后在初始页面中添加至少一种动画效果,从而得到目标页面。

具体地,服务器通过在初始页面的源代码中插入动画效果指令,即可得到目标页面。其中,插入的动画效果指令可以预先配置,也可以由用户指定,本公开实施例对此不做限定。

在另一些实施例中,目标页面可以在初始页面创建时创建,且目标页面与初始页面预先配置有对应关系。也就是说,服务器可以响应于针对初始页面的创建请求,创建与初始页面对应的目标页面。例如,针对内容分享类应用而言,初始页面可以是用户在该内容分享类应用中创建的帖子或分享的内容。当用户在该应用内执行内容发布操作时,服务器可以接收到针对包含该内容的初始页面的创建请求。此时,服务器除了创建该初始页面之外,还可以通过在初始页面中添加动画效果,创建与该初始页面对应的目标页面,并将初始页面和目标页面共同存储至服务器中。

其中,被创建的目标页面的数量可以是一个,也可以是多个。多个目标页面可以分别被添加有不同的动画效果。用户可以通过在视频生成请求中指定期望的动画效果,从而在多个目标页面中匹配到包含指定动画效果的目标页面。

S202,录制目标页面,得到数据帧队列,其中,目标页面在录制过程中展示至少一种动画效果。

需要说明的是,当获取到与初始页面对应的目标页面后,服务器可以访问目标页面,以便对目标页面的内容进行录制。

具体地,服务器可以通过预先配置的自动化模拟工具(例如,Puppeteer库)调用浏览器(例如,Chromium),从而通过该浏览器访问目标页面。其中,调用的浏览器可以以无头(Headless)方式运行,即不显示目标页面的前端界面。当然,调用的浏览器也可以是包含完整功能的浏览器,本公开实施例对此不作限定。

类似地,通过上述自动化模拟工具,还可以实现对目标页面的录制,从而得到数据帧队列。其中,根据录制内容的不同,数据帧队列中可以包括视频帧(或称“图像帧”),可以包括音频帧,也可以同时包含视频帧和音频帧。

可以理解的是,视频是由多个连续的静态图像组成,每个视频帧均为其中一幅静态图像。

音频帧是音频信号在时间上被划分成的一小段连续数据,音频帧用于描述被划分时间段内的声音波形。

示例性地,用户可以在视频生成请求中指定期望录制的内容。例如,通过指定录制页面中的可视内容,可以得到包含视频帧的数据帧队列。通过指定录制页面中的音频内容,可以得到包含音频帧的数据帧队列。而同时录制页面中的可视内容以及音频内容,可以得到同时包含视频帧和音频帧的数据帧队列。

而当用户未指定录制的内容时,可以录制页面的完整内容,即当页面中存在音频内容时,同时录制可视内容和音频内容,而当页面中不存在音频内容时,仅录制页面中的可视内容。

应当理解的是,上述可视内容用于指示在视觉上可以被感知的内容,例如,页面中的文本、图片,页面中视频播放时展示的画面等。上述音频内容用于指示页面中的声音,例如,页面的背景音乐,页面中插入的音频,页面中视频播放时的声音等。

需要说明的是,目标页面在录制过程中可以展示前述添加的动画效果。例如,通过展示页面滚动效果,可以使目标页面中的静态内容滚动展示,从而使初始页面中的内容被完整录制。通过展示图片放大效果,可以在录制过程中将目标页面中的图片进行放大,以便用户能够在录制后生成的视频中查看图片细节,本公开实施例对此不再赘述。

示例性地,目标页面可以在开始录制时展示前述动画效果,当全部动画效果展示完毕时,则录制过程结束。

本公开实施例中对目标页面的录制过程由服务器完成,可以减少对客户端设备资源的消耗,提升录制效率。并使录制过程可以不被用户感知,提升用户体验。

在一些实施例中,在录制目标页面之前,还可预先确定目标页面加载完成,以避免录制过程中目标页面存在缺失,致使录制内容不全。并在目标页面加载完成后,确定用于展示至少一个动画效果的资源加载完成。其中,用于展示至少一个动画效果的资源可以理解为展示动画效果的过程中所依赖的资源,这些资源可能存储于目标页面之外。例如,在目标页面中添加有背景图片切换效果时,可能需要从服务器中预设的图片库中预先调用一定数量的背景图片用于切换,并在录制开始前完成加载,从而保证录制过程中动画效果能够被完整展示。

S203,基于数据帧队列,生成与目标页面对应的目标视频。

示例性地,服务器可以调用FFmpeg将数据帧队列转换为目标视频。

其中,在数据帧队列同时包括音频帧和视频帧的情况下,在生成目标视频前还可将音频帧和视频帧预先进行对齐,以使音频帧和视频帧的内容匹配。

在一些实施例中,在对目标页面的录制过程中可能存在程序错误,导致录制到的数据帧队列中存在异常帧。在生成目标视频前,可以预先将异常帧从数据帧队列中剔除。

示例性地,由于数据帧队列是通过录制生成,其中的异常帧通常表现为空白帧。因此可以通过判断每个数据帧的大小,从而区分数据帧队列中的异常帧。

具体地,可以遍历数据帧队列中的每个数据帧,若该数据帧的容量小于预设容量阈值,则该数据帧为异常帧。例如,可以配置当数据帧的容量小于60KB,则判断该数据帧为异常帧,并将该异常帧从数据帧队列中剔除。

在一些实施例中,由于目标视频的生成速度主要取决于目标页面的录制速度,而录制过程中需要在目标页面中的全部动画效果展示完毕后后结束。

因此,为了加快目标视频的生成速度,可以在目标页面的录制过程中,对目标页面中的动画效果进行指定倍速的快放,例如,加快页面滚动速度,加快页面背景图片切换速度等,从而缩短录制时占用的时间。而在生成目标视频的过程中,通过将录制得到的数据帧队列按照相同的指定倍速进行慢放,即可得到按照原始速度播放的目标视频。

本公开实施例通过将视频生成完整的过程迁移至服务器执行,能够避免对客户端设备的资源占用。同时,本公开实施例提供的视频生成方法适用范围广泛,可以直接应用于任意类型的页面(例如,静态页面、动态页面),且不依赖于客户端设备的系统功能,对客户端设备具有较强的兼容能力。

在一些应用场景中,由于大多数页面中均包含静态元素,例如,文本、图片等。为了使这些静态元素能够在目标视频中完整展示,可以在这些页面中添加页面滚动效果。下面将以添加有页面滚动效果的目标页面为例,具体说明目标页面的录制过程。

图3示出本公开实施例中一种目标页面录制方法的流程示意图,如图3所示,本公开实施例中提供的目标页面录制方法包括如下步骤。

S301,录制目标页面,其中,目标页面在录制过程中展示页面滚动效果,以使目标页面在浏览器中滚动。

需要说明的是,若目标页面在录制时立刻开始滚动,则可能使用户在浏览最终生成的目标视频时,错过目标页面顶部的内容。也就是说,目标页面顶部的内容会在开始录制时立刻被滚动至浏览器窗口之外,使用户无法充分浏览。

因此,为了使用户在生成的目标视频中有充足的时间浏览目标页面,可以在目标页面开始滚动前增加页面静止效果。换言之,可以通过延长目标页面顶部内容在录制过程中的展示时间,使用户有足够的时间查看该部分内容。

在一些实施例中,页面静止效果可以通过使目标页面延迟滚动实现。具体地,在向初始页面中添加页面滚动效果时,可以配置页面滚动效果延迟执行,例如,在录制开始5秒后执行,从而实现页面静止效果。

在另一些实施例中,页面静止效果可以在录制得到的数据帧队列中,通过将数据帧队列中的首个数据帧重复插入数据帧队列的队首,以使首个数据帧在目标视频中静止显示。可以理解的是,由于本公开实施例旨在实现页面静止效果,因此这里仅涉及视频帧的重复插入,而不涉及对音频帧的处理。

其中,通过重复插入首个数据帧的方式实现页面静止效果,可以不增加录制时长,相较于在录制过程中使页面静止,可以节省大量录制时间。

S302,当目标页面在浏览器中滚动至底部时,停止录制,得到数据帧队列。

需要说明的是,当目标页面在浏览器中滚动至底部时,可认为目标页面中的全部内容录制完成。

示例性地,还可以通过类似的方式在浏览器滚动底部后添加静止效果,从而使用户有足够的时间浏览目标页面底部的内容,本公开实施例对此不再赘述。

在一些应用场景中,目标页面中包含可播放的动态元素,例如,音频、视频。用户可能希望在目标页面的录制过程中,对这些动态元素中的内容同时进行。例如,使生成的目标视频中能够包含目标页面中的视频内容和/或音频内容。

此时,可以在开始录制时,将这些可播放的动态元素在目标页面中配置为静止状态。同时,在目标页面的当前录制区域包含动态元素的情况下,将动态元素设置为播放状态,并在动态元素播放完成的情况下,将动态元素再次设置为静止状态。即通过控制动态元素开始播放以及结束播放的时机,使录制过程能够完整记录动态元素的内容。

在一些实施例中,添加的动画效果的展示可能与动态元素的播放存在一定冲突。例如,在动态元素尚未播放完毕的情况下,若发生页面滚动,则可能使动态元素无法被录制。

示例性地,当以上冲突发生时,可以暂停动画效果的展示,优先完成动态元素的播放,以避免动态元素无法被录制至目标视频。在动态元素播放完毕后,再继续展示动画效果。

仍以上述页面滚动效果和动态元素播放的冲突为例,在目标页面的当前录制区域包含动态元素的情况下,可以暂停展示页面滚动效果。而在动态元素播放完成的情况下,可以继续展示页面滚动效果。

应当理解的是,以上冲突不限于页面滚动效果与动态元素播放的冲突,例如,也可能是背景音乐效果与动态元素播放的冲突。但各类冲突的解决原理相似,均可以通过暂停动画效果,优先完成动态元素的播放,并在动态元素播放完成后继续展示动画效果解决,本公开实施例对此不再赘述。

可以理解的是,在需要对目标页面中的动态元素进行录制时,应等待动画效果展示结束且动态元素播放完毕后停止录制。例如在上例中,当目标页面滚动至底部时,若目标页面中的动态元素处于播放状态,则应等待该动态元素播完完毕后停止录制。

本公开实施例能够协调动画效果与动态元素之间的关系,从而在用户在对动态元素具有录制需求的情况下,完整的录制动态元素的内容。

在一些实施例中,在目标页面包括动态元素的情况下,录制得到的数据帧中可能包含与该动态元素中音频内容对应的音频帧,以及与该动态元素中可视内容对应的视频帧。在生成相应的目标视频前,可以根据根据将动态元素设置为播放状态的时刻,将音频帧和视频帧对齐。

也就是说,可以通过记录将动态元素设置为播放状态的时刻,并将与该动态元素对应的音频帧的首部均对齐至该时刻,以使音频帧和视频帧对齐。

基于同一发明构思,本公开实施例中还提供了另一种视频生成方法,应用于客户端,如下面的实施例。由于该方法实施例解决问题的原理与上述方法实施例相似,因此该方法实施例的实施可以参见上述方法实施例的实施,重复之处不再赘述。

图4示出本公开实施例中另一种视频生成方法的流程示意图,该方法可以由客户端执行,如图4所示,本公开实施例中提供的视频生成方法包括如下步骤。

S401,向服务器发送针对初始页面的视频生成请求,以使服务器获取与初始页面对应的目标页面,目标页面包括添加有至少一种动画效果的初始页面。

S402,获取目标视频,目标视频由服务器基于数据帧队列生成,数据帧队列由服务器录制目标页面获得,其中,目标页面在录制过程中展示至少一种动画效果。

需要说明的是,本公开实施例的具体实施过程及相应的效果可以参照前述图2和图3示出的实施例,为简洁描述,本公开实施例此处不再赘述。

示例性存储介质

在介绍了本公开示例性实施方式的视频生成方法之后,接下来,参考图5对本公开示例性实施方式的存储介质进行说明。

图5显示的计算机可读存储介质500仅仅是一个示例,不应对本公开实施例的功能和适用范围带来任何限制。

在本公开的示例性实施例中,计算机可读存储介质500可以是可读信号介质或者可读存储介质500。其上存储有能够实现本公开上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。

本公开中的计算机可读存储介质500的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

在本公开中,计算机可读存储介质500可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可选地,计算机可读存储介质500上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。

在一些应用场景中,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

示例性装置

在介绍了本公开示例性实施方式的存储介质之后,接下来,参考图6对本公开示例性实施方式的视频生成装置进行说明。

图6示出本公开实施例中一种视频生成装置的结构示意图。该视频生成装置600应用于服务器,包括:获取模块601、录制模块602和生成模块603。

其中,获取模块601用于,响应于针对初始页面的视频生成请求,获取与初始页面对应的目标页面,目标页面包括添加有至少一种动画效果的初始页面。

录制模块602用于,录制目标页面,得到数据帧队列,其中,目标页面在录制过程中展示至少一种动画效果。

生成模块603用于,基于数据帧队列,生成与目标页面对应的目标视频。

在一些实施例中,获取模块601具体用于,响应于针对初始页面的视频生成请求,获取初始页面;在初始页面中添加至少一种动画效果,得到目标页面。

在一些实施例中,目标页面与初始页面预先配置有对应关系。视频生成装置600还包括创建模块(图中未示出),用于响应于针对初始页面的创建请求,创建与初始页面对应的目标页面。

在一些实施例中,至少一种动画效果包括页面滚动效果。录制模块602具体用于,录制目标页面,其中,目标页面在录制过程中展示页面滚动效果,以使目标页面在浏览器中滚动;当目标页面在浏览器中滚动至底部时,停止录制,得到数据帧队列。

在一些实施例中,至少一种动画效果还包括页面静止效果,页面静止效果在页面滚动效果之前展示。

在一些实施例中,目标页面包括动态元素,动态元素在目标页面中处于静止状态。视频生成装置600还包括控制模块(图中未示出),用于在目标页面的当前录制区域包含动态元素的情况下,将动态元素设置为播放状态;在动态元素播放完成的情况下,将动态元素设置为静止状态。

在一些实施例中,至少一种动画效果包括页面滚动效果。控制模块还用于,在目标页面的当前录制区域包含动态元素的情况下,暂停展示页面滚动效果;在动态元素播放完成的情况下,继续展示页面滚动效果。

在一些实施例中,在目标页面包括动态元素的情况下,数据帧包括音频帧和视频帧。视频生成装置600还包括对齐模块(图中未示出),用于根据将动态元素设置为播放状态的时刻,将音频帧和视频帧对齐。

在一些实施例中,视频生成装置600还包括判断模块(图中未示出),用于判断数据帧队列中是否存在异常帧;若是,则将异常帧从数据帧队列中剔除。

在一些实施例中,判断模块具体用于,针对数据帧队列中的每个数据帧,若该数据帧的容量小于预设容量阈值,则该数据帧为异常帧。

在一些实施例中,视频生成装置600还包括插帧模块(图中未示出),用于将数据帧队列中的首个数据帧重复插入数据帧队列的队首,以使首个数据帧在目标视频中静止显示。

在一些实施例中,控制模块还用于,在目标页面的录制过程中,对至少一种动画效果进行指定倍速的快放。生成模块603还用于,对数据帧队列进行指定倍速的慢放,以生成与目标页面对应的目标视频。

在一些实施例中,视频生成装置600还包括确定模块(图中未示出),用于确定目标页面加载完成;在目标页面加载完成后,确定用于展示至少一个动画效果的资源加载完成。

图7示出本公开实施例中另一种视频生成装置的结构示意图。该视频生成装置700应用于客户端,包括:发送模块701和获取模块702。

其中,发送模块701,用于向服务器发送针对初始页面的视频生成请求,以使服务器获取与初始页面对应的目标页面,目标页面包括添加有至少一种动画效果的初始页面;

获取模块702,用于获取目标视频,目标视频由服务器基于数据帧队列生成,数据帧队列由服务器录制目标页面获得,其中,目标页面在录制过程中展示至少一种动画效果。

所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

示例性电子设备

在介绍了本公开示例性实施方式的视频生成方法、存储介质和视频生成装置之后,接下来,参考图8对本公开示例性实施方式的电子设备进行说明。

图8显示的电子设备800仅仅是一个示例,不应对本公开实施例的功能和适用范围带来任何限制。

如图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:至少一个处理单元810、至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830。

其中,存储单元存储有程序代码,程序代码可以被处理单元810执行,使得处理单元810执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。

在一些实施例中,处理单元810可以执行上述视频生成方法实施例的如下步骤:响应于针对初始页面的视频生成请求,获取与初始页面对应的目标页面,目标页面包括添加有至少一种动画效果的初始页面;录制目标页面,得到数据帧队列,其中,目标页面在录制过程中展示至少一种动画效果;基于数据帧队列,生成与目标页面对应的目标视频。

在一些实施例中,处理单元810还可以执行上述视频生成方法实施例的如下步骤:向服务器发送针对初始页面的视频生成请求,以使服务器获取与初始页面对应的目标页面,目标页面包括添加有至少一种动画效果的初始页面;获取目标视频,目标视频由服务器基于数据帧队列生成,数据帧队列由服务器录制目标页面获得,其中,目标页面在录制过程中展示至少一种动画效果。

存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(ROM)8203。

存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线830可以包括数据总线、地址总线和控制总线。

电子设备800也可以与一个或多个外部设备840(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(I/O)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图8所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例的方法。

应当注意,尽管在上文详细描述中提及了视频生成装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。

此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

相关技术
  • 视频生成、视频播放方法、装置、电子设备及存储介质
  • 视频摘要生成方法、装置、存储介质和电子设备
  • 一种视频集锦的生成方法、装置、电子设备及存储介质
  • 视频生成方法及其装置、电子设备、存储介质
  • 直播视频的生成发布方法、存储介质、电子设备及系统
  • 视频生成模型的训练方法、视频生成方法、装置、电子设备及可读存储介质
  • 视频生成方法、视频生成装置、电子设备、存储介质
技术分类

06120116487204