CN113015005A - 一种视频剪辑方法、装置、设备及计算机可读存储介质 - Google Patents

一种视频剪辑方法、装置、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN113015005A
CN113015005A CN202110569770.8A CN202110569770A CN113015005A CN 113015005 A CN113015005 A CN 113015005A CN 202110569770 A CN202110569770 A CN 202110569770A CN 113015005 A CN113015005 A CN 113015005A
Authority
CN
China
Prior art keywords
video
target
clip
interface
image data
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.)
Granted
Application number
CN202110569770.8A
Other languages
English (en)
Other versions
CN113015005B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110569770.8A priority Critical patent/CN113015005B/zh
Publication of CN113015005A publication Critical patent/CN113015005A/zh
Application granted granted Critical
Publication of CN113015005B publication Critical patent/CN113015005B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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 or rendering scenes according to encoded video stream scene graphs
    • H04N21/44016Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请提供了一种视频剪辑方法、装置、设备及计算机可读存储介质;涉及视频处理技术和区块链技术;该方法包括:响应目标对象针对展示的视频剪辑界面中的视频剪辑标识的操作,针对待剪辑视频,确定出等待抽取的多个目标视频帧;从获取到的待剪辑视频的编码文件中,并行解码出多个目标视频帧各自对应的图像数据;基于多个目标视频帧各自对应的图像数据,生成剪辑视频;将剪辑视频对应的展示标识展示在视频剪辑界面的标识展示区域中;展示标识用于分隔不同的视频。通过本申请,能够提高视频剪辑的效率。

Description

一种视频剪辑方法、装置、设备及计算机可读存储介质
技术领域
本申请涉及计算机视觉领域的视频处理技术,尤其涉及一种视频剪辑方法、装置、设备及计算机可读存储介质。
背景技术
视频智能剪辑是指用户针对本地的视频或者图片等内容进行检测,自动选取出具有代表性的高光片段,或者精彩片段,以自动帮助用户进行视频剪辑。视频智能剪辑需要先对视频进行有序抽帧,从而确定出需要剪辑的片段,得到剪辑视频。然而,相关技术中,抽帧所消耗的时间较多,从而使得视频剪辑的效率较低。
发明内容
本申请实施例提供一种视频剪辑方法、装置、设备及计算机可读存储介质,能够提高视频剪辑的效率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种视频剪辑方法,包括:
响应目标对象针对展示的视频剪辑界面中的视频剪辑标识的操作,针对待剪辑视频,确定出等待抽取的多个目标视频帧;
从获取到的所述待剪辑视频的编码文件中,并行解码出所述多个目标视频帧各自对应的图像数据;
基于所述多个目标视频帧各自对应的图像数据,生成剪辑视频;
将所述剪辑视频对应的展示标识展示在所述视频剪辑界面的标识展示区域中;所述展示标识用于分隔不同的视频。
在本申请的一些实施例中,所述当前目标视频帧为所述多个目标视频帧中的最后一个目标视频帧;在所述将所述当前目标视频帧的图像数据传输至所述图像分析系统之后,所述方法还包括:
当所述多个目标视频帧中的所述最后一个目标视频帧的图像数据成功发送给所述图像分析系统时,释放所述系统内存空间和硬盘空间。
在本申请的一些实施例中,所述关键视频帧包括多个关键帧;所述基于所述关键视频帧,将所述多个目标视频帧各自所对应的编码数据,划分为各个解码任务组,包括:
将从当前关键帧至所述当前关键帧在时间顺序上的下一个关键帧之间的目标视频帧的编码数据,作为当前解码任务组;其中,所述当前关键帧为所述多个关键帧中的任意一个;
当对所述多个目标视频帧均确定出对应的解码任务组时,得到所述各个解码任务组。
在本申请的一些实施例中,在所述通过多个解码器,并行对所述各个解码任务组进行解码,得到所述多个目标视频帧各自对应的图像数据之前,所述方法还包括:
对系统性能进行检测,得到性能检测结果;
利用所述性能检测结果,确定出参与并行解码的解码器数量;
对所述解码器数量个初始解码器分别进行初始化,得到所述多个解码器。
本申请实施例提供一种视频剪辑装置,包括:
视频帧确定模块,用于响应目标对象针对展示的视频剪辑界面中的视频剪辑标识的操作,针对待剪辑视频,确定出等待抽取的多个目标视频帧;
图像解码模块,用于从获取到的所述待剪辑视频的编码文件中,并行解码出所述多个目标视频帧各自对应的图像数据;
视频剪辑模块,用于基于所述多个目标视频帧各自对应的图像数据,生成剪辑视频;
内容展示模块,用于将所述剪辑视频对应的展示标识展示在所述视频剪辑界面的标识展示区域中;所述展示标识用于分隔不同的视频。
在本申请的一些实施例中,所述内容展示模块,还用于响应于所述目标对象针对所述剪辑视频对应的所述展示标识的操作,在所述视频剪辑界面的视频展示区域中,展示所述剪辑视频。
在本申请的一些实施例中,视频帧确定模块,还用于响应于所述目标对象针对所述视频剪辑界面中的视频剪辑标识的操作,在所述视频剪辑界面上展示剪辑方式窗口;所述剪辑方式窗口提供了不同的剪辑方式;响应于所述目标对象针对所述剪辑方式窗口中的推荐时长剪辑标识的操作,针对所述待剪辑视频,确定出等待抽取的所述多个目标视频帧;
所述视频剪辑模块,还用于基于所述多个目标视频帧各自对应的所述图像数据,生成视频时长为推荐时长的剪辑视频,所述推荐时长为自动确定出的时长。
在本申请的一些实施例中,视频帧确定模块,还用于响应于所述目标对象针对所述剪辑方式窗口中的指定时长剪辑标识的操作,在所述视频剪辑界面中展示时长设置窗口;响应于所述目标对象针对所述时长设置窗口的输入操作,获取所述目标对象的输入时长;针对所述待剪辑视频,确定出等待抽取的所述多个目标视频帧;
所述视频剪辑模块,还用于依据所述多个目标视频帧各自对应的所述图像数据,生成视频时长为所述输入时长的剪辑视频。
在本申请的一些实施例中,所述视频剪辑装置还包括:文件获取模块;
所述文件获取模块,用于响应于所述目标对象针对展示的内容创建界面中的本地上传标识的操作,从所述内容创建界面跳转至本地文件选择界面;其中,所述本地文件选择界面以列表的形式提供了存储在本地的各个视频;响应于所述目标对象在所述本地文件选择界面中的选中操作,将所述目标对象选中的视频作为所述待剪辑视频,并获取所述待剪辑视频的编码文件。
在本申请的一些实施例中,所述内容展示模块,还用于响应于所述目标对象在展示的内容浏览界面的内容创建标识的操作,从所述内容浏览界面跳转至所述内容创建界面。
在本申请的一些实施例中,所述文件获取模块,还用于响应于所述目标对象针对展示的内容创建界面中的实时采集标识的操作,从所述内容创建界面跳转至视频录制界面;响应于所述目标对象针对所述视频录制界面中的录制开始标识的操作,开始视频录制,并对录制到的视频进行编码,直至检测到所述目标对象针对所述视频录制界面中的录制结束标识的操作时,将所述录制到的视频作为所述待剪辑视频,并对所述录制到的视频的编码结果进行获取,得到所述编码文件。
在本申请的一些实施例中,所述图像解码模块,还用于从待剪辑视频的所述编码文件中,提取出所述多个目标视频帧各自对应的编码数据;从所述多个目标视频帧中,定位出关键视频帧;其中,所述关键视频帧为视频编码时画面数据的保留完整度大于完整度阈值的视频帧;基于所述关键视频帧,将所述多个目标视频帧各自所对应的编码数据,划分为各个解码任务组;其中,解码任务组包括了单个解码器所需要解码的数据;通过多个解码器,并行对所述各个解码任务组进行解码,得到所述多个目标视频帧各自对应的图像数据。
在本申请的一些实施例中,所述图像解码模块,还用于利用所述多个解码器中的任意一个当前解码器,对所述当前解码器所对应的匹配解码任务组中的当前编码数据进行解码,得到所述当前编码数据所对应的当前目标视频帧的图像数据;所述当前编码数据为所述匹配解码任务组所包含的任意一个编码数据;当通过所述当前解码器对所述匹配解码任务组所包含的至少一个目标视频帧的编码数据均完成解码时,得到至少一个图像数据;当利用所述多个解码器并行对所述各个解码任务组均确定出对应的至少一个图像数据时,得到所述多个目标视频帧各自对应的图像数据。
在本申请的一些实施例中,所述图像解码模块,还用于在所述当前目标视频帧对应的时间戳处于滑动时间窗内时,将所述当前目标视频帧的图像数据缓存至系统内存中;或者,在所述当前目标视频帧对应的时间戳未处于所述滑动时间窗内时,将所述当前目标视频帧的图像数据存储至硬盘空间中;其中,所述滑动时间窗决定了所述当前目标视频帧的图像数据的缓存级别。
在本申请的一些实施例中,所述图像解码模块,还用于当确定出所述当前目标视频帧在时间顺序上的上一个目标视频帧的图像数据成功传输至图像分析系统时,将所述当前目标视频帧的图像数据传输至所述图像分析系统;所述图像分析系统用于分析所述当前目标视频帧的图像数据的精彩程度。
在本申请的一些实施例中,所述图像解码模块,还用于当确定出所述当前目标视频帧的图像数据成功传输至所述图像分析系统时,将所述当前目标视频帧在时间顺序上的下一个目标视频帧的时间戳作为所述滑动时间窗的最新起始时间,将所述滑动时间窗的当前结束时间所对应的目标视频帧的在时间顺序上的下一个目标视频帧的时间戳,作为所述滑动时间窗的最新结束时间。
在本申请的一些实施例中,所述图像解码模块,还用于当所述多个目标视频帧中的所述最后一个目标视频帧的图像数据成功发送给所述图像分析系统时,释放所述系统内存空间和硬盘空间。
在本申请的一些实施例中,所述图像解码模块,还用于将从当前关键帧至所述当前关键帧在时间顺序上的下一个关键帧之间的目标视频帧的编码数据,作为当前解码任务组;其中,所述当前关键帧为所述多个关键帧中的任意一个;当对所述多个目标视频帧均确定出对应的解码任务组时,得到所述各个解码任务组。
在本申请的一些实施例中,所述图像解码模块,还用于对系统性能进行检测,得到性能检测结果;利用所述性能检测结果,确定出参与并行解码的解码器数量;对所述解码器数量个初始解码器分别进行初始化,得到所述多个解码器。
本申请实施例提供一种视频剪辑设备,包括:
存储器,用于存储可执行视频剪辑指令;
处理器,用于执行所述存储器中存储的可执行视频剪辑指令时,实现本申请实施例提供的视频剪辑方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行视频剪辑指令,用于引起处理器执行时,实现本申请实施例提供的视频剪辑方法。
本申请实施例具有以下有益效果:视频剪辑设备会先响应于目标对象针对视频剪辑界面中的视频剪辑标识的操作,针对已经加载了的待剪辑视频,确定出多个目标视频帧,通过对待剪辑视频的编码文件进行并行解码,得到多个目标视频帧各自所对应的图像数据,从而基于所得到的图像数据生成剪辑视频,并展示剪辑视频的展示标识,以提示目标对象视频剪辑完成,可以播放剪辑视频。如此,能够通过并发解码大幅度减少视频帧解码所需要的时间,从而减少了抽帧耗时,最终减少了视频剪辑的耗时,也就提高了视频剪辑的效率。
附图说明
图1A是本申请实施例提供的视频剪辑系统100的一个可选的架构示意图;
图1B是本申请实施例提供的视频剪辑系统100的另一个可选的架构示意图;
图2是本申请实施例提供的视频剪辑设备的结构示意图;
图3是本申请实施例提供的视频剪辑方法的一个可选的流程示意图一;
图4是本申请实施例提供的视频剪辑界面的示意图;
图5是本申请实施例提供的展示标识的示意图;
图6是本申请实施例提供的展示剪辑视频的示意图;
图7是本申请实施例提供的剪辑方式窗口的示意图;
图8是本申请实施例提供的展示时长设置窗口的示意图;
图9是本申请实施例提供的内容创建界面的示意图;
图10是本申请实施例提供的在本地文件选择界面中指定待剪辑视频的示意图;
图11是本申请实施例提供的展示内容创建界面的示意图;
图12是本申请实施例提供的实时采集待剪辑视频的示意图;
图13是本申请实施例提供的视频剪辑方法的一个可选的流程示意图二;
图14是本申请实施例提供的划分解码任务组的示意图;
图15是本申请实施例提供的智能剪辑时抽帧的过程示意图;
图16是本申请实施例提供的任务调度的示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三\第四”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三\第四”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
2)计算机视觉技术(Computer Vision,CV)是一门如何研究如何使机器“看”的科学,更进一步说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机实际研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机实际技术通常包括图像处理、图像识别、图像语义理解、图像检索、OCR、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
3)视频解码,是视频编码的逆过程,即是将压缩后的视频文件,还原为原始的视频帧数据的过程。
4)视频解码组件,是指在移动终端上利用解码器并发技术,进行大批量解码的过程,利用并发技术,能够提高视频解码的效率。
5)多级高速缓存,是指对解码所得到的视频帧数据,按照一定的策略,利用内存或者硬盘进行高速缓存的技术。
6)任务调度,指对视频抽帧过程进行管理。通过任务调度,决定了每个视频帧数据的处理方式,以及抽帧任务整体的处理进度。
7)滑动时间窗,是可以在时间轴上进行滑动的时间窗口,用于确定解码出的视频帧的图像数据的存储位置,即确定将视频帧的属性数据存储在系统内存还是存储装硬盘空间的时间窗口。通过滑动时间窗,能够实现对视频帧的图像数据的多级存储。
视频智能剪辑是指用户针对本地的视频或者图片等内容进行检测,自动选取出具有代表性的高光片段,或者精彩片段,以自动帮助用户进行视频剪辑。视频智能剪辑需要先对视频进行有序抽帧,然后对抽取出的视频帧进行分析,从而确定出需要剪辑的片段,得到剪辑视频。
视频一般是以编码文件进行存储的,因此,在抽帧过程中需要对编码文件进行解码。相关技术中,大多是使用单解码器对编码文件进行解码,即只能逐帧解码,后续的解码任务只能等待。尤其是需要大量抽帧时,解码所消耗的时间会线性增长,从而使得抽帧所消耗的时间大幅增加,影响了抽帧的效率,也就影响了视频剪辑的效率。
进一步地,视频剪辑的效率低下,会使得用户在用户需要花费较长的时间等待剪辑完成,对于用户而言,长时间的等待极有可能导致用户放弃剪辑,从而用户体验较差。
基于上述问题,本申请实施例提供一种视频剪辑方法、装置、设备和计算机可读存储介质,能够提高视频剪辑的效率。下面说明本申请实施例提供的视频剪辑设备的示例性应用,本申请实施例提供的设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,移动手表、便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的终端,也可以实施为服务器。下面,将说明设备实施为终端的时示例性应用。
参见图1A,图1A是本申请实施例提供的视频剪辑系统100的一个可选的架构示意图,为实现支撑一个视频剪辑应用,终端(示例性示出了终端400-1和终端400-2)通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。
终端400-1用于响应于目标对象针对在图形界面400-11展示的视频剪辑界面中的视频剪辑标识的操作,针对待剪辑视频,确定出等待抽取的多个目标视频帧;从获取到的待剪辑视频的编码文件中,并行解码出多个目标视频帧各自对应的图像数据;基于多个目标视频帧各自对应的图像数据,生成剪辑视频;将剪辑视频对应的展示标识展示在视频剪辑界面的标识展示区域中,其中,展示标识用于分隔不同的视频。
终端400-1可以通过网络300将剪辑视频发送给服务器200,服务器200将剪辑视频发布给其他的终端,例如终端400-2,以使得其他的用户可以在终端400-2的图形界面400-21中查看剪辑视频。
在一些实施例中,终端400-1和终端400-2可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
本申请还可以借助于区块链技术来实现。参见图1B,图1B是本申请实施例提供的视频剪辑系统100的另一个可选的架构示意图。在图1B中,终端400可以将待剪辑视频和剪辑视频上链,使得每次剪辑过程有迹可循且不可篡改,提高安全性。
在一些实施例中,终端400可以加入区块链网络500而成为其中的一个节点。区块链网络500的类型是灵活多样的,例如可以为公有链、私有链或者联盟链中的任意一种。以公有链为例,任何业务主体当然电子设备,都可以在不需要授权的情况下接入区块链网络500,以作为区块链网络500的共识节点,例如,将终端700映射为区块链网络500中的共识节点500-1,以在将目标身份信息、待支付信息和支付成功信息上链时进行共识。
在一些实施例中,终端400可以加入区块链网络500而成为其中的一个节点。区块链网络500的类型是灵活多样的,例如可以为公有链、私有链或者联盟链中的任意一种。以公有链为例,任何业务主体当然电子设备,都可以在不需要授权的情况下接入区块链网络500,以作为区块链网络500的共识节点,例如,将终端700映射为区块链网络500中的共识节点500-1,以在将待剪辑视频和剪辑视频上链时进行共识。
以区块链网络500为联盟链为例,终端700在获得授权后可以接入区块链网络500而成为节点。终端400响应于目标对象针对在图形界面展示的视频剪辑界面中的视频剪辑标识的操作,针对待剪辑视频,确定出等待抽取的多个目标视频帧;从获取到的待剪辑视频的编码文件中,并行解码出多个目标视频帧各自对应的图像数据;基于多个目标视频帧各自对应的图像数据,生成剪辑视频;将剪辑视频对应的展示标识展示在视频剪辑界面的标识展示区域中,其中,展示标识用于分隔不同的视频。之后,终端400将待剪辑视频和剪辑视频发送至区块链网络500中进行共识。当共识通过时,区块链网络500会为待剪辑视频和剪辑视频分配新区块,将待剪辑视频和剪辑视频写入分配的新区块中,并将新区块添加在区块链的末端,以实现上链。
参见图2,图2是本申请实施例提供的视频剪辑设备的结构示意图,图2所示的视频剪辑设备600包括:至少一个处理器610、存储器650、至少一个网络接口620和用户接口630。视频剪辑设备600中的各个组件通过总线系统640耦合在一起。可理解,总线系统640用于实现这些组件之间的连接通信。总线系统640除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统640。
处理器610可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口630包括使得能够呈现媒体内容的一个或多个输出装置631,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口630还包括一个或多个输入装置632,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器650可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器650可选地包括在物理位置上远离处理器610的一个或多个存储设备。
存储器650包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器650旨在包括任意适合类型的存储器。
在一些实施例中,存储器650能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统651,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块652,用于经由一个或多个(有线或无线)网络接口620到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(Wi-Fi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块653,用于经由一个或多个与用户接口630相关联的输出装置631(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块654,用于对一个或多个来自一个或多个输入装置632之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图2示出了存储在存储器650中的视频剪辑装置655,其可以是程序和插件等形式的软件,包括以下软件模块:视频帧确定模块6551、图像解码模块6552、视频剪辑模块6553、内容展示模块6554和文件获取模块6555,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的视频剪辑装置可以采用硬件方式实现,作为示例,本申请实施例提供的视频剪辑装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的视频剪辑方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
示例性的,本申请实施例提供一种视频剪辑设备,包括:
存储器,用于存储可执行视频剪辑指令;
处理器,用于执行所述存储器中存储的可执行视频剪辑指令时,实现本申请实施例提供的视频剪辑方法。
下面,将结合本申请实施例提供的终端的示例性应用和实施,说明本申请实施例提供的视频剪辑方法。
参见图3,图3是本申请实施例提供的视频剪辑方法的一个可选的流程示意图一,将结合图3示出的步骤进行说明。
S101、响应目标对象针对视频剪辑界面中的视频剪辑标识的操作,针对待剪辑视频,确定出等待抽取的多个目标视频帧。
本申请实施例是在目标对象对视频进行剪辑的场景下实现的,例如,目标对象对视频进行一键剪辑,或者是目标对象对视频进行半自助剪辑的场景下实现的(即由视频剪辑设备完成剪辑的部分功能,辅助目标对象进行剪辑)。视频剪辑设备在视频剪辑过程开始时,需要先明确等待剪辑的待剪辑视频是哪个,然后针对待剪辑视频确定出需要进行抽取的目标视频帧,从而得到多个目标视频帧。
需要说明的是,待剪辑视频可以是在进入视频剪辑界面之前就指定好的,例如,由目标对象在视频剪辑界面之前所展示的本地视频列表中选择,或者是由目标对象在视频剪辑界面展示之前实时录制的,本申请在此不作限定。
视频剪辑标识用于触发开始视频剪辑流程。视频剪辑标识设置在视频剪辑界面的第一预设区域中,其中,第一预设区域的大小和位置均可以根据实际情况进行设置,本申请在此不作限定。
例如,第一预设区域设置在视频剪辑界面的左下角,大小设置为200×100,或者是设置在视频剪辑界面的右上角,大小设置为200×200等,本申请在此不作限定。
在一些实施例中,视频剪辑界面中除了视频剪辑标识之外,还可以设置有其他功能的入口标识。例如,视频片段的播放速率的调整入口标识,为不同视频片段添加转场的入口标识等,本申请在此不作限定。
进一步的,视频剪辑界面中还可以包括视频展示区域,视频展示区域用于展示待剪辑视频和剪辑好的视频片段。视频展示区域可以设置在视频剪辑界面的第二预设区域中。与第一预设区域类似,第二预设区域的大小和位置均可以根据实际情况进行设置。
示例性的,图4是本申请实施例提供的视频剪辑界面的示意图。参见图4,在视频剪辑界面4-1的第一预设区域4-11中,设置有视频剪辑标识,即剪一下4-12。除此之外,视频剪辑界面4-1中还设置有转场功能的标识4-13、调序功能的标识4-14。
多个目标视频帧可以是按照预设抽帧规则,从待剪辑视频中确定出的。其在,预设抽帧规则可以根据实际情况进行设置。例如,将预设抽帧规则设置为按照一定的时间间隔进行抽帧,例如,每隔100ms抽帧一次,或者是按照视频帧的时间戳进行抽帧,例如,分别抽取待剪辑视频在100ms、200ms时的视频帧。
需要说明的是,多个目标视频帧还可以是从待剪辑视频中随机抽取出的,本申请在此不作限定。
本申请实施例中,目标对象为进行视频剪辑的任意用户。目标对象针对视频剪辑标识的操作,或者是下文中对于其他标识的操作,可以为点击、双击、长按、拖拽等,本申请在此不作限定。
S102、从获取到的待剪辑视频的编码文件中,并行解码出多个目标视频帧各自对应的图像数据。
由于视频的原始图像数据所占用的存储空间十分巨大,为了减小存储压力,本申请实施例中,是对待剪辑视频的编码文件进行存储的,多个目标视频帧也是以编码数据存在于编码文件之中的。从而,视频剪辑设备在从待剪辑视频进行抽帧时,实际上是从所获取到的待剪辑视频的编码文件中,解码出上述步骤中的等待抽取的多个目标视频帧所对应的图像数据。
需要说明的是,待剪辑视频的编码文件是在指定出待剪辑视频之后就获取到的,待剪辑视频的编码文件可以是从本地存储空间获取的,此时,该编码文件可以是在本轮次视频剪辑开始之前录制并编码所得到的,也可以是从网络上下载的。
可以理解的是,编码文件的格式可以是指音频视频交错格式(Audio VideoInterleaved,AVI)、高级串流格式(Advanced Streaming Format,ASF)等,本申请在此不作限定。
本申请实施例中,视频编辑设备可以是利用一定数量(大于1)的解码器,同步对多个目标视频帧中的每个目标视频帧进行解码,即多个目标视频帧经过一个或若干个(由于解码器数量大于1,因此,解码的轮次必然会小于目标视频帧的数量)轮次,就能完成解码,从而相比于单解码器,能够大幅度减少视频剪辑抽帧过程中的解码时间,从而提高了抽帧的效率,最终使得视频剪辑的效率得到提高。
在一些实施例中,解码器的数量可以与目标视频帧的数量相等,此时,视频编辑设备仅通过一个轮次的解码,得到多个目标视频帧各自对应的图像数据。
在另一些实施例中,由于解码都是基于关键视频帧进行的,视频剪辑设备可以基于关键视频帧对多个目标视频帧进行分组,得到若干个解码任务组,由同一个解码器对处于一个同一个解码任务组之内的目标视频帧进行解码,此时,每个解码器所对应的解码轮次,可以由其负责的解码任务组中的目标视频帧的个数,以及其所负责的解码任务组的个数决定。
S103、基于多个目标视频帧各自对应的图像数据,生成剪辑视频。
视频剪辑设备在得到多个目标视频帧各自对应的图像数据之后,可以直接将这些图像数据在时间轴上进行排列,得到剪辑视频,或者是从多个目标视频帧中,挑选出转折较为突兀的视频帧,利用人工智能针对这些视频帧生成平滑图像数据,然后将多个目标视频帧的图像数据和平滑视频帧在时间轴上进行排列,得到剪辑视频。
需要说明的是,转折较为突兀的视频帧,是指从多个目标视频帧的图像数据中,无法找出与其的图像数据较为类似的图像数据,即该视频帧在多个目标视频帧中是孤立存在的,若是利用该视频帧生成剪辑视频,会有不自然的转折。
在一些实施例中,视频剪辑设备还可以通过人工智能对多个目标视频帧的各自所对应的图像数据进行分析,从而确定出待剪辑视频中包含精彩时刻的视频片段,将该视频片段作为剪辑视频。
在另一些实施例中,视频剪辑设备还可以将多个目标视频帧各自对应的图像数据展示给目标对象,以便于目标对象从多个目标视频帧中挑选自己喜欢的视频帧,利用目标对象所挑选出的视频帧合成剪辑视频。
S104、将剪辑视频对应的展示标识展示在视频剪辑界面的标识展示区域中。
视频剪辑设备在生成剪辑视频之后,就会针对剪辑生成展示标识。接着,视频编辑设备会将生成的展示标识,显示在视频剪辑界面的标识展示区域之中,以便于目标对象通过该展示标识,触发播放剪辑视频。也就是说,本申请实施例在,展示标识用于分隔不同的视频。
可以理解的是,标识展示区域用于展示剪辑视频的触发标识。在一些实施例中,标识展示区域还可以展示出了剪辑视频的展示标识之外的其他视频的触发标识。
标识展示区域设置在视频剪辑界面的第三预设区域中,而展示标识设置在标识展示区域的第四预设区域中。其中,第三预设区域和第四预设区域的大小和位置均可以根据实际情况进行设置,本申请在此不作限定。
在一些实施例中,标识展示区域除了显示剪辑视频的展示标识之外,还可以显示剪辑视频的缩略图。剪辑视频的缩略图可以是从剪辑视频中挑选出来的有代表性的图,例如,剪辑视频的第一帧,剪辑视频的精彩视频帧等,还可以是剪辑视频中的预设时间的视频帧,例如,剪辑视频第1s的视频帧,第2s的视频帧等,本申请在此不作限定。
示例性的,图5是本申请实施例提供的展示标识的示意图。在视频剪辑界面5-1中,设置有标识展示区域5-11,其中,设置有展示标识5-12,以通过展示标识5-12将不同的剪辑视频区分开来。在标识展示区域5-11中,还展示有剪辑视频的缩略图5-13,即第一帧、第2s的视频帧、……第6s的视频帧等,从而以缩略的方式向目标对象提供剪辑视频的概略。在此情况下,展示标识5-12可以设置在缩略图5-13的上层。
本申请实施例中,视频剪辑设备会先响应于目标对象针对视频剪辑界面中的视频剪辑标识的操作,针对已经加载了的待剪辑视频,确定出多个目标视频帧,通过对待剪辑视频的编码文件进行并行解码,得到多个目标视频帧各自所对应的图像数据,从而基于所得到的图像数据生成剪辑视频,并展示剪辑视频的展示标识,以提示目标对象视频剪辑完成,可以播放剪辑视频。如此,能够通过并发解码大幅度减少视频帧解码所需要的时间,从而减少了抽帧耗时,最终减少了视频剪辑的耗时,也就提高了视频剪辑的效率。
在本申请的一些实施例中,在将剪辑视频对应的展示标识展示在视频剪辑界面的标识展示区域中之后,即在S104之后,该方法还可以包括:S105,如下:
S105、响应于目标对象针对剪辑视频对应的展示标识的操作,在视频剪辑界面的视频展示区域中,展示剪辑视频。
视频剪辑设备将剪辑视频对应的展示标识展示在标识展示区域之后,就会检测目标对象是否在标识展示区域中进行了操作,从而判断出目标对象是否要播放剪辑视频。当视频剪辑设备检测到目标对象针对展示标识的操作时,就会明确目标对象需要播放剪辑视频,将剪辑视频显示在视频展示区域中。
示例性的,图6是本申请实施例提供的展示剪辑视频的示意图,参见图6,在视频剪辑界面6-1中,设置有视频展示区域6-11和剪辑视频对应的展示标识6-12。当目标对象点击了展示标识6-12之后,视频剪辑设备就会在视频展示区域6-11中播放剪辑视频。
在另一些实施例中,视频剪辑设备在检测出目标对象触发了剪辑视频的展示标识之后,还可以是从视频剪辑界面跳转到转场添加界面或者是在视频剪辑界面上弹出转场添加窗口,以便于目标对象在转场添加界面或者是转场添加窗口为剪辑视频添加相应的转场。
本申请实施例中,视频剪辑设备在将剪辑视频对应的展示标识展示在视频展示区域中之后,还可以响应于目标对象针对该展示标识的操作,在视频展示区域中显示剪辑视频,以便于目标对象查看剪辑视频,并进行下一步的修改。
在本申请的一些实施例中,响应目标对象针对展示的视频剪辑界面中的视频剪辑标识的操作,针对待剪辑视频,确定出等待抽取的多个目标视频帧,即S101的具体实现过程,可以包括:S1011-S1012,如下:
S1011、响应于目标对象针对视频剪辑界面中的视频剪辑标识的操作,在视频剪辑界面上展示剪辑方式窗口。
视频剪辑设备在检测到目标对象针对视频剪辑标识的操作,明确目标对象需要开始视频剪辑流程之后,还需要明确目标对象期望以何种方式来剪辑待剪辑视频。在此情况下,视频剪辑设备会响应于目标对象针对视频剪辑标识的操作,在视频剪辑界面上弹出剪辑方式窗口,以便于视频剪辑设备通过目标对象在剪辑方式窗口上的操作,来确定目标对象所选中的视频剪辑方式。也就是说,剪辑方式窗口提供了不同的剪辑方式。
需要说明的是,剪辑方式窗口中可以设置有推荐时长剪辑标识,其中,推荐时长剪辑标识提供了剪辑出推荐时长的视频的功能入口。在另一些实施例中,剪辑方式窗口中还可以设置有固定时长剪辑标识,输入时长剪辑标识等,本申请在此不作限定。
示例性的,图7是本申请实施例提供的剪辑方式窗口的示意图。剪辑方式窗口7-11可以设置在视频剪辑界面7-1的左下角,在剪辑方式窗口7-11中,设置有推荐时长剪辑标识7-111和固定时长剪辑标识7-112(例如30s),目标对象可以通过触发这两个标识中的一个,来选择自己需求的剪辑方式。
S1012、响应于目标对象针对剪辑方式窗口中的推荐时长剪辑标识的操作,针对待剪辑视频,确定出等待抽取的多个目标视频帧。
视频剪辑设备在检测到目标对象针对剪辑方式窗口中的推荐时长剪辑标识进行了操作时,就会明确目标对象期望视频剪辑设备能够自动为待剪辑视频,剪辑出一个时长较为合适的剪辑视频,从而,视频剪辑设备可以通过预设抽帧规则,或者是随机抽帧,针对指定的待剪辑视频自动确定出多个目标视频帧,以便于后续的抽取这些目标视频帧的图像数据。
需要说明的是,在目标对象针对剪辑方式窗口中的推荐时长剪辑标识进行了操作之后,基于多个目标视频帧各自对应的图像数据,生成剪辑视频,即S103的具体实现过程,就会相应地变为:S1031,如下:
S1031、基于多个目标视频帧各自对应的图像数据,生成视频时长为推荐时长的剪辑视频。
可以理解的是,推荐时长为自动确定出的时长。在一些实施例中,视频剪辑设备可以先针对待剪辑视频,确定出推荐时长,然后再利用所得到的图像数据,生成推荐时长的剪辑视频。例如,视频剪辑设备将待剪辑视频的原始时长的三分之一,确定为推荐时长,然后从多个目标视频帧各自对应的图像数据中,抽取出能够组成推荐时长的视频的图像数据,并利用这些图像数据组合成剪辑视频。
也就是说,多个目标视频帧的数量和推荐时长之间并没有必然的联系,多个目标视频帧的数量只与确定待抽取的视频帧的方式有关。
在另一些实施例中,视频剪辑设备可以对所得到的图像数据进行分析,依据这些图像数据确定出推荐时长,进而得到推荐时长的剪辑视频。例如,视频剪辑设备可以对多个目标视频帧各自对应的图像数据进行分析,从而依据这些图像数据,从待剪辑视频中确定出包含精彩时刻的视频段,该视频段的时长就是推荐时长,将该视频段剪辑出来得到推荐时长的剪辑视频。
本申请实施例中,视频剪辑设备响应于目标对象针对视频剪辑标识的操作,在视频剪辑界面上弹出剪辑方式窗口,以供目标对象选择自己需求的剪辑方式,并在目标对象触发了剪辑方式窗口中的推荐时长剪辑标识时,能够基于确定出的等待抽取的多个目标视频帧所对应的图像数据,为目标对象生成推荐时长的剪辑视频,以满足目标对象的需求。
在本申请的一些实施例中,在响应于目标对象针对视频剪辑界面中的视频剪辑标识的操作,在视频剪辑界面上展示剪辑方式窗口之后,即在S1011之后,该方法还可以包括:S1013-S1015,如下:
S1013、响应于目标对象针对剪辑方式窗口中的输入时长剪辑标识的操作,在视频剪辑界面中展示时长设置窗口。
当视频剪辑设备检测到目标对象对输入时长剪辑标识进行了操作时,就会明确目标对象需要剪辑出其所输入的时长的剪辑视频,此时,视频剪辑设备就会创建时长设置窗口,并将时长设置窗口显示在视频剪辑界面的上层,以便于目标对象设置其所输入的时长。
可以理解的是,在一些实施例中,视频剪辑设备可以将时长设置窗口显示在于剪辑方式窗口不重叠的区域中,从而保证目标对象在输入时长时不会受到干扰。在另一些实施例中,视频剪辑设备还可以将时长设置窗口覆盖在剪辑方式窗口的上层,以减少视频剪辑界面中的窗口的数量,避免视频剪辑界面画面杂乱。当然,视频剪辑设备还可以通过其他的方式展示时长设置窗口,本申请在此不作限定。
需要说的是,在时长设置窗口中设置有时长输入区域,目标对象可以在该时长输入区域中输入时长。
示例性的,图8是本申请实施例提供的展示时长设置窗口的示意图。视频剪辑界面8-1上展示有剪辑方式窗口8-11,在剪辑方式窗口8-11中,设置有输入时长剪辑标识8-111。当目标对象点击了输入时长剪辑标识8-111时,视频剪辑设备就会利用时长设置窗口8-12,覆盖剪辑方式窗口8-11。同时,时长设置窗口8-12中,设置有时长输入区域8-121,以便于目标对象输入其所指定的时长。
S1014、响应于目标对象针对时长设置窗口的输入操作,获取目标对象的输入时长。
S1015、针对待剪辑视频,确定出等待抽取的多个目标视频帧。
视频剪辑设备对目标对象在时长设置窗口中输入的内容进行获取,将获取到的内容作为指定时长。接着,视频剪辑设备仍旧会针对待剪辑视频确定出多个目标视频帧。
可以理解的是,指定时长一般是一个时间长度,例如10s,或者是5s等。视频剪辑设备可以针对目标对象在指定时长输入区域中所输入的内容进行检测,当检测出其为数字(假设时长的单位为s)时,可以直接得到指定时长,而当检测出目标对象输入的不是数字,而是字符时,可以提示在时长设置窗口中展示提示信息,以提示目标对象需要输入数字,或者是对字符的含义进行解析,从而确定出指定时长等。
需要说明的是,在目标对象针对剪辑方式窗口中的指定时长剪辑标识进行了操作之后,基于多个目标视频帧各自对应的图像数据,生成剪辑视频,即S103的具体实现过程,就会相应地变为:S1032,如下:
S1032、基于多个目标视频帧各自对应的图像数据,生成视频时长为输入时长的剪辑视频。
需要说明的是,生成输入时长的剪辑视频的方式,与S1031中生成推荐时长的剪辑视频的方式较为类似,只不过时长略有不同,在此不再赘述。
本申请实施例中,剪辑方式窗口中还设置有输入时长剪辑标识,从而目标对象可以在通过触发输入时长剪辑标识所展示的时长设置窗口中输入指定的时长,视频剪辑设备获取输入时长,从而在后续能够生成输入时长的剪辑视频,以满足目标对象的需求。
在本申请的一些实施例中,在响应目标对象针对展示的视频剪辑界面中的视频剪辑标识的操作,针对待剪辑视频,确定出等待抽取的多个目标视频帧之前,即在S101之前,该方法还可以包括:S106-S107,如下:
S106、响应于目标对象针对展示的内容创建界面中的本地上传标识的操作,从内容创建界面跳转至本地文件列表展示界面。
视频剪辑设备在视频剪辑过程开始之前,需要先明确目标对象所指定的待见视频是哪个,以及获取待剪辑视频的编码文件。此时,视频剪辑设备会实时检测目标对象是否针对目前所展示的内容创建界面中的本地上传标识进行了操作,当视频剪辑设备检测到目标对象在本地上传标识上进行了操作时,就会明确目标对象需要从本地视频中挑选待剪辑视频,从而视频剪辑设备会创建本地文件选择界面。需要说明的是,本地文件选择界面以列表的形式提供了存储在本地的各个视频,以供目标对象指定待剪辑视频。
可以理解的是,内容创建界面中除了本地上传标识之外,也可以有实时采集标识,还可以有其他功能的入口标识,例如直播的入口标识、领取红包的入口标识等,本申请在此不作限定。
示例性的,图9是本申请实施例提供的内容创建界面的示意图。在内容创建界面9-1中,设置有本地上传标识9-11、实时采集标识9-12、模板库的标识9-13和直播的标识9-14。目标对象可以通过这些标识,触发对应的功能,例如点击本地上传标识9-11后,触发从本地存储的各个视频中指定待剪辑视频。
S107、响应于目标对象在本地文件选择界面中的选中操作,将目标对象选中的视频作为待剪辑视频,并获取待剪辑视频的编码文件。
视频剪辑设备在检测到目标对象在本地文件选择界面中的选中操作时,就会将目标对象所选中的视频,作为待剪辑视频,同时从本地的存储空间中获取对应的编码文件。
可以理解的是,由于原始视频所占用的存储空间都比较大,因此,在视频存储过程中,一般都需要对原始视频进行编码,将原始视频经过编码所得到的文件存储在存储空间中,以减轻存储压力。因此,本申请实施例中,视频编辑设备并不是获取原始的待剪辑视频,而是获取待剪辑视频的编码文件。
示例性的,基于图9,参见图10,图10是本申请实施例提供的在本地文件选择界面中指定待剪辑视频的示意图。当目标对象点击了内容创建界面9-1中的本地上传标识9-11之后,可以跳转到展示了本地所存储的各个视频的本地文件选择界面10-1中,目标对象可以从展示的视频中,指定视频10-11作为待剪辑视频。
本申请实施例中,视频剪辑设备可以响应于目标对象针对本地上传标识的操作,跳转到本地文件选择界面,并在本地文件选择界面以列表的形式展示的在本地所存储的各个视频。之后,视频剪辑设备会将目标对象在本地文件选择界面中所选中的视频,作为待剪辑视频,并同步获取待剪辑视频的编码文件,以便于后续开始视频剪辑过程。
在本申请的一些实施例中,在响应于目标对象针对展示的内容创建界面中的本地上传标识的操作,从内容创建界面跳转至本地文件选择界面之前,即在S106之前,该方法还可以包括:S108,如下:
S108、响应于目标对象在展示的内容浏览界面的内容创建标识的操作,从内容浏览界面跳转至内容创建界面。
视频剪辑可以是内容创建的一个功能,视频剪辑设备在检测目标对象针对内容创建界面的内容创建标识的操作之前,还需要先进入到内容创建界面之中。本申请实施例中,视频剪辑设备可以实时检测目标对象是否在内容浏览界面中的内容创建标识的操作,以明确目标对象是否要创建新内容。当视频剪辑设备检测到目标对象针对内容创建标识的操作时,就会创建内容创建界面,并利用内容创建界面覆盖内容浏览界面。
示例性的,基于图9,参见图11,图11是本申请实施例提供的展示内容创建界面的示意图。在内容浏览界面11-1的底部,设置有内容创建标识11-11,还设置有首页11-12、消息11-13等标识。当目标对象点击了内容创建标识11-11之后,就会进入到如图9所示的内容创建界面9-1中。
本申请实施例中,提供了进入内容创建界面的方式,以便于目标对象通过界面操作,能够触发待剪辑视频的指定过程,进而触发视频剪辑过程。
在本申请的一些实施例中,在响应目标对象针对展示的视频剪辑界面中的视频剪辑标识的操作,针对待剪辑视频,确定出等待抽取的多个目标视频帧之前,即在S101之前,该方法还可以包括:S109-S110,如下:
S109、响应于目标对象针对展示的内容创建界面中的实时采集标识的操作,从内容创建界面跳转至视频录制界面。
需要说明的是,视频录制界面中可以仅设置有录制开始标识,还可以同时设置有录制开始标识和录制结束标识。
S110、响应于目标对象针对视频录制界面中的录制开始标识的操作,开始视频录制,并对录制到的视频进行编码,直至检测到目标对象针对视频录制界面中的录制结束标识的操作时,将录制到的视频作为待剪辑视频,并对录制到的视频的编码结果进行获取,得到编码文件。
视频剪辑设备在检测到目标对象对于录制开始标识的操作之后,就会开始对当前场景进行视频录制,并同时对录制到的视频进行编码。当视频剪辑设备检测到目标对象针对视频录制界面中的录制结束标识的操作时,就会明确目标对象需要结束录制,从而将已经录制到的视频作为待剪辑视频,并在系统内存或者是硬盘空间中获取已经录制到的视频的编码结果,从而得到待剪辑视频的编码文件。
可以理解的是,在视频录制界面中可以仅设置有录制开始标识的情况下,当目标对象触发了录制开始标识之后,视频编辑设备会对视频录制界面进行更新,更新后的视频录制界面中设置有录制结束标识,以便于目标对象触发结束视频录制。
示例性的,基于图9,参见图12,图12是本申请实施例提供的实时采集待剪辑视频的示意图。当目标对象点击了内容创建界面9-1中的实时采集标识9-12之后,视频剪辑设备就会创建视频录制界面12-1。在检测到目标对象点击视频录制界面12-1底部的录制开始标识12-11之后,视频剪辑设备会开始通过摄像头进行视频录制,同时视频剪辑设备会更新视频录制界面12-1,即在其底部展示录制结束标识12-12,以便于目标对象结束录制,得到待剪辑视频和编码文件。
本申请实施例中,视频剪辑设备还可以响应于目标对象对于实时采集标识的操作,实时采集视频,并在结束录制时,将已经录制到的视频作为待剪辑视频,将已经录制到的视频的编码结果作为编码文件,以便于后续进行视频剪辑。
参见图13,图13是本申请实施例提供的视频剪辑方法的一个可选的流程示意图二。在本申请的一些实施例中,从获取到的待剪辑视频的编码文件中,并行解码出多个目标视频帧的各自对应的图像数据,即S102的具体实现过程,可以包括:S1021-S1024,如下:
S1021、从待剪辑视频的编码文件中,提取出多个目标视频帧各自对应的编码数据。
视频剪辑设备在并发解码时,先是从编码文件中,定位出多个目标视频帧所对应的编码数据,然后对这些编码数据进行获取,以便于后续进行解码。
可以理解的是,每个目标视频帧对应的编码数据,都可以看作是一个解码任务,并且,由于多个目标视频帧之间存在一定的时间先后顺序,从而,这些编码数据,即解码任务之间,也会存在时间先后顺序。
S1022、从多个目标视频帧中,定位出关键视频帧。
其中,关键视频帧为视频编码时画面数据被完整保留的视频帧,即视频编码时画面数据的保留完整度大于完整度阈值的视频帧。
S1023、基于关键视频帧,将多个目标视频帧各自所对应的编码数据,划分为各个解码任务组。
由于解码时,一般都是从关键视频帧开始解码的,即解码出关键视频帧之后,再利用编码数据中所记录的关键视频帧的像素与其他的视频帧的像素之间的运动相关系,解码出其他的视频帧。并且,在并发解码时,不同的视频帧可能落在同一个画面组中,此时,若将落在同一个画面组中的视频分别分配给不同的解码器进行解码,这些解码器都需要对该画面组对应的关键帧进行解码。对此,本申请实施例中,视频剪辑设备基于关键视频帧,将多个目标视频帧各自对应的编码数据进行分组,从而尽可能地保证由同一个解码器负责一个画面组,也即,解码任务组包括了单个解码器所需要解码的数据,以便于后续并发解码。
S1024、通过多个解码器,并行对各个解码任务组进行解码,得到多个目标视频帧的图像数据。
视频剪辑设备在得到各个解码任务组之后,就会将这些解码任务组,分配给多个解码器,并且,这些解码器会同步开始解码工作,从而实现并发解码,能够快速完成解码,得到多个目标视频帧的图像数据。通过这种方式,可以在仅对关键视频帧进行一次解码的情况下,就能够得到该画面组中的所有视频帧的图像数据,从而减少解码所需要的时间。
需要说明的是,解码器的数量可以是根据目标视频帧的数量决定的,还可以是根据视频剪辑设备的性能决定的,本申请在此不作限定。
可以理解的是,解码器的数量和解码任务组的数量可以是相等的,此时,每个解码器都可以领取到一个解码任务组。解码器的数量还可以是小于解码任务组的数量的,此时,可以先对每个解码器都分配一个解码任务组,然后在某个解码任务组完成解码之后,然后再从剩余的解码任务组中挑选出一个解码任务组,分配给该解码器,直至所有的解码任务组都被解码完成。解码器的数量还可以是大于解码任务组的数量的,此时,可以从众多解码器中,选择出与解码任务组相同数量的解码器来参与解码。
本申请实施例中,视频剪辑设备先从编码文件中提取出多个目标视频帧各自对应的编码数据,并基于多个目标视频帧中的关键视频帧将这些编码数据划分为各个解码任务组,然后通过多个解码器并发对各个解码任务组中的编码数据进行解码,从而得到多个目标视频帧的图像数据。如此,视频剪辑设备就能够实现并发解码,减少抽帧时解码所需要的时间。
在本申请的一些实施例中,通过多个解码器,并行对各个解码任务进行解码,得到多个目标视频帧的图像数据,即S1024的具体实现过程,可以包括:S201-S203,如下:
S201、利用多个解码器中的当前解码器,对当前解码器所对应的匹配解码任务组中的当前编码数据进行解码,得到当前编码数据所对应的任意目标视频帧的图像数据,其中,当前编码数据为匹配解码任务组所包含的任意一个编码数据。
S202、当通过当前解码器对匹配解码任务组所包含的至少一个目标视频帧的编码数据均完成解码时,得到至少一个图像数据。
本申请实施例是以单独的当前解码器为例,来说明多个解码器中的每个解码器在并行解码时的工作流程。视频剪辑设备通过当前解码器,分配给其的匹配解码任务中的至少一个目标视频帧各自所对应的编码数据逐个进行解码,从而从匹配解码任务组解码得到其所对应的至少一个目标视频帧的至少一个图像数据。
S203、当利用多个解码器并行对各个解码任务组均确定出对应的至少一个图像数据时,得到多个目标视频帧各自对应的图像数据。
视频剪辑设备在利用多个解码器,并行完成解码之后,就会得到多个目标视频帧各自对应的图像数据。
本申请实施例中,视频剪辑设备利用多个解码器中的当前解码器,对其所对应的匹配解码任务组所包含的至少一个目标视频帧的编码数据进行解码,从而完成一个解码任务组的解码过程。视频剪辑设备同时针对每个解码任务组都按照上述流程实现解码,就能够实现并行解码,得到多个目标视频帧各自对应的图像数据,以便于后续生成剪辑视频。
在本申请的一些实施例中,利用多个解码器中的任意一个当前解码器,对当前解码器所对应的匹配解码任务组中的当前编码数据进行解码,得到当前编码数据所对应的当前目标视频帧的图像数据,即在S201之后,该方法还可以包括:S204或S205,如下:
S204、在当前目标视频帧对应的时间戳处于滑动时间窗内时,将当前目标视频帧的图像数据存储至系统内存中。
由于多个目标视频帧的图像数据,都是按照时间顺序被使用的,例如,按照时间顺序返回给图像分析系统,以分析精彩时刻,或者是按照时间顺序进行排序生成剪辑视频,乃至是按照时间顺序返回展示给目标对象等。视频剪辑设备将当前目标视频帧的时间戳,与滑动时间窗进行对比,从而判断出当前目标视频帧的图像数据,是否能够缓存在系统内存中。当当前目标视频帧的时间戳处于滑动时间窗时,视频剪辑设备就会明确当前目标视频帧的图像数据很快就会被用到,从而会将当前目标视频帧的图像数据存储在系统内存中,以便于后续快速获得当前目标视频帧的图像数据,以便于生成剪辑视频或者是传输至图像分析系统。
也就是说,本申请实施例中,滑动时间窗是用于确定当前目标视频帧的图像数据的存储位置的,从而对每个视频帧的图像数据都确定出存储位置之后,就能够实现多级缓存。
S205、在当前目标视频帧对应的时间戳未处于滑动时间窗内时,将当前目标视频帧的图像数据存储至硬盘空间中。
反之,视频剪辑设备在判断出当前目标视频帧的时间戳不在滑动时间窗内时,就会明确当前目标视频帧的图像数据并不会马上被使用,从而会将当前目标视频帧的图像数据存储在硬盘空间中。
由于系统内存和硬盘空间是视频剪辑设备中的两个不同级别的存储位置,从而,滑动时间窗决定了当前目标视频帧的图像数据的缓存级别,据此,视频剪辑设备能够对多个目标视频帧的图像数据实现多级存储。
本申请实施例中,视频剪辑设备可以通过滑动时间窗与当前目标视频帧的时间戳之间的对应关系,来确定出当前目标视频帧的图像数据的存储位置,从而实现对多个目标视频帧的图像数据的多级存储。
在本申请的一些实施例中,在当前目标视频帧对应的时间戳处于滑动时间窗内时,将当前目标视频帧的图像数据缓存至系统内存中之后,即在S204之后,该方法还可以包括:S206,如下:
S206、当确定出当前目标视频帧的在时间顺序上的上一个目标视频帧的图像数据成功传输至图像分析系统时,将当前目标视频帧的图像数据传输至图像分析系统。
其中,图像分析系统用于分析当前目标视频帧的图像数据的精彩程度。
视频剪辑设备在确定出当前目标视频帧的上一个目标视频帧的图像数据,已经成功传输给图像分析系统时,就会开始将当前目标视频帧的图像数据的传输给图像分析系统,以便于图像分析系统对当前目标视频帧的图像数据进行精彩程度的分析。
本申请实施例中,视频剪辑设备能够在当前目标视频帧的上一个目标视频帧的图像数据被成功传输给图像分析系统时,开始将当前目标视频帧的图像数据传输给图像分析系统的过程,以便于图像分析系统分析当前目标视频帧的图像数据。
在本申请的一些实施例中,在将当前目标视频帧的图像数据传输至图像分析系统之后,即在S206之后,该方法还可以包括:S207,如下:
S207、当确定出当前目标视频帧的图像数据成功传输至图像分析系统时,将当前目标视频帧在时间顺序上的下一个目标视频帧的时间戳,作为滑动时间窗的最新起始时间,将滑动时间窗的当前结束时间所对应的目标视频帧在时间顺序上的下一个视频帧的时间戳,作为滑动时间窗的最新结束时间。
当判断出当前目标视频帧的图像数据已经成功传输给了图像分析系统,视频剪辑设备需要对滑动时间窗进行更新,即将滑动时间窗在时间轴上向后滑动。此时,视频剪辑设备会将当前目标视频帧的下一个目标视频帧的时间戳,作为滑动时间窗的最新起始时间。由于滑动时间窗在当前时刻具有一个当前结束时间,这个当前结束时间也可对应了一个目标视频帧的时间戳,从而,视频剪辑设备会将该目标视频帧的下一个目标视频帧的时间戳,作为滑动时间窗对应的最新结束时间,从而实现滑动时间窗在时间轴上的滑动。
在一些实施例中,视频剪辑设备还可以在当前目标视频帧的图像数据成功传输至图像分析系统,在判断出图像分析系统对当前目标视频帧的图像数据分析完成,并将当前目标视频帧的图像数据销毁之后,将滑动时间窗在时间轴上向后滑动一个目标视频帧的时间长度。
本申请实施例中并在当前目标视频帧的图像数据成功传输至图像分析系统时,将滑动时间窗在时间轴上向后滑动一个目标视频帧的时间长度,以便于后续继续利用滑动时间窗确定后续的目标视频帧的缓存级别。
在本申请的一些实施例中,在当确定出当前目标视频帧的图像数据成功传输至图像分析系统时,将当前目标视频帧的下一个目标视频帧的时间戳作为滑动时间窗的最新起始时间,将滑动时间窗的当前结束时间所对应的目标视频帧的下一个目标视频帧的时间戳,作为滑动时间窗的最新结束时间之后,即在S207的具体实现过程之后,该方法还可以包括:S208,如下:
S208、将硬盘空间中存储的各个目标视频帧的中时间戳最早的目标视频帧的图像数据,压入系统内存中。
视频剪辑设备在判断出滑动时间窗的当前结束时间所对象的目标视频帧的下一个视频帧,是否被解码完毕。在解码完毕并将解码所得到的下一个视频帧的图像数据存储在硬盘空间,并将滑动时间窗在时间轴上向后移动了一个目标视频帧所占用的时间长度之后,可以从硬盘空间中读取出时间戳最早的目标视频帧的图像数据,将该图像数据压入到系统内存中,以便于在系统内存中总是保存着一定数量的目标视频帧的图像数据,以保证时间戳属于滑动时间窗内部的目标视频帧的图像数据,都能够快速被使用。
当然,视频剪辑设备在判断出滑动时间窗的当前结束时间对应的目标视频帧的下一个视频帧还未解码时,可以在后续该视频帧完成解码时,直接将该视频帧的图像数据存储在系统内存中。
在本申请的一些实施例中,当前目标视频帧为多个目标视频帧中的最后一个目标视频帧,此时,在所述将所述当前目标视频帧的图像数据传输至所述图像分析系统之后,即在S206之后,该方法还可以包括:S209,如下:
S209、当多个目标视频帧中的最后一个目标视频帧的图像数据成功发送给图像分析系统时,释放系统内存和硬盘空间。
当最后一个目标视频帧的图像数据已经成功发送给图像分析系统时,视频剪辑设备可以将所占用的系统内存和硬盘空间进行释放,以便于后续其他的应用能够使用这些空间。
在一些实施例中,视频剪辑设备除了使用系统额昵称和硬盘空间之外,还可以对使用到的多个解码器进行释放。
在本申请的一些实施例中,关键视频帧包括多个关键帧,即关键视频帧是多个关键帧的统称。在此情况下,基于关键视频帧,将多个目标视频帧各自所对应的编码数据,划分为各个解码任务组,即S1023的具体实现过程,可以包括:1023a-S1023b,如下:
S1023a、将从当前关键帧至当前关键帧在时间顺序上的下一个关键帧之间的目标视频帧的编码数据,作为当前解码任务组。
视频编辑设备从多个关键帧中任选一个关键帧,作为当前关键帧,并在当前关键帧之后的一个关键帧,这个关键帧即为下一个关键帧。然后,视频剪辑设备将处于当前关键帧开始和下一个关键帧之间的目标视频帧所对应的编码数据,以及当前关键帧,组成一个解码任务组,从而得到当前解码任务组。
S1023b、当对多个目标视频帧均确定出对应的解码任务组时,得到各个解码任务组。
利用上述步骤,视频剪辑设备针对每个目标视频帧,都能够确定出处于哪个解码任务组中,在对多个目标视频帧均进行了解码任务组的划分之后,视频剪辑设备就得到了各个解码任务组。
示例性的,图14是本申请实施例提供的划分解码任务组的示意图。如图14所示,多个目标视频帧中包含了3个关键帧,即关键帧14-1、关键帧14-2和关键帧14-3,除了这3个关键帧之外的目标视频帧,可以为B帧,也可以为P帧。视频剪辑设备从将关键帧14-1,以及关键帧14-1与关键帧14-2之间的目标视频帧,看作是解码任务组14-4,同理,视频剪辑设备还可以得到关键帧14-2的解码任务组14-5和关键帧14-3的解码任务组14-6。这样,视频剪辑设备就得到了各个解码任务组。
本申请实施例中,视频剪辑设备能够将当前关键帧,以及处于当前关键帧与下一个关键帧之间的目标视频帧的编码数据,共同作为当前解码任务组,然后按照该方式对多个目标视频帧均确定出其所属的解码任务组时,就能够得到各个解码任务组,以便于后续通过多解码器对各个解码任务组并发解码。
在本申请的实施例中,在通过多个解码器,并发对各个解码任务组进行解码,得到多个目标视频帧各自对应的图像数据之前,即在S1024之前,该方法还可以包括:S1025-S1027,如下:
S1025、对系统性能进行检测,得到性能检测结果。
S1026、利用性能检测结果,确定出参与并行解码的解码器数量。
视频剪辑设备在开始并发解码之前,需要先确定出有多少解码器参与并发解码。视频剪辑设备对自身的系统性能进行检测,例如对其的内存大小进行检测,对CPU的内核数进行检测等,从而得到性能检测结果。接着,视频剪辑设备利用性能检测结果,查询预设解码器性能关系,从而确定出视频剪辑设备所能够运行的解码器数量。或者,视频剪辑设备利用性能检测结果,在网络上查询其他与其性能类似的设备所使用的解码器的数量,将查询到的数量作为解码器数量。
S1027、对解码器数量个初始解码器分别进行初始化,得到多个解码器。
视频剪辑设备获取解码器数量的初始解码器,然后对获取到的初始解码器进行初始化,就能够得到多个解码器。
本申请实施例中,视频剪辑设备能够根据自身的系统性能,确定出参与并发解码的解码器数量,从而对初始解码器进行初始化之后,得到多个解码器。如此,能够充分利用视频剪辑设备的运算能力,进一步提高解码的效率。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例是在终端(视频剪辑设备)对用户(目标对象)的视频进行智能剪辑的场景下实现的。用户可以通过依次点击图11中的内容创建标识11-11、图9中的本地上传标识9-11,进入到图10本地文件选择界面10-1,然后在本地文件选择界面10-1中选中视频10-11,从而进入到图7示出的视频剪辑界面7-1,用户点击推荐时长剪辑标识7-111,就可以开始智能剪辑,在智能剪辑完成时则得到如图5所显示的展示标识5-12和缩略图5-13。
智能剪辑主要分为两个阶段,第一个阶段为抽帧,第二个阶段为对抽取出的帧进行分析,确定出需要剪辑的视频段。其中,抽帧分为三个阶段,第一个阶段为针对用户提交的视频确定抽帧任务,对视频进行分析,以检测出关键帧,基于关键帧对抽帧任务进行分组,并初始化解码器。第二个阶段为多解码器并发解码,基于任务调度组件和多级缓存开始解码得到视频帧。第三个阶段为抽帧完成,释放资源。
下面,重点对智能剪辑时的抽帧过程进行说明。图15是本申请实施例提供的智能剪辑时抽帧的过程示意图,抽帧过程可以包括:
S301、开始。
S302、提交视频。
用户通过本地上传标识,选中需要进行剪辑的视频(待剪辑视频)。
S303、确定抽帧任务(等待抽出的多个目标视频帧)。
抽帧任务特指需要抽取的帧,例如,指定对100ms时视频帧、200ms时的视频帧等进行抽取。
S304、关键帧检测。
由于选中的视频是以编码结果(编码文件)进行存储的,得到抽帧任务的图像(多个目标视频帧各自对应的图像数据)必须要经过视频解码。由于视频解码一定是从关键帧开始的,而确定出的抽帧任务并没有经过处理,并发解码的时候,不同的抽帧任务可能会落在相同的GOP区间(从一个关键帧(当前关键帧)开始到下一个关键帧),导致重复解码,影响抽帧效率,因此需要对视频进行关键帧检测,以备后续抽帧任务的分组。
S305、抽帧任务分组。
对确定出的抽帧任务,按照抽帧时间顺序排列,以视频的关键帧进行分组,同一个组(一个解码任务组)的任务会交给同一个解码器进行解码,保证解码效率最大化。
S306、初始化解码器。
对终端的性能进行检测,基于性能检测结果决定并发解码的解码器数量,性能越高解码器数量越多。解码器初始化(对初始解码器进行初始化,得到多个解码器)之后会处于空闲队列,等待抽帧的开始。
S307、并发抽帧。
当抽帧开始时,解码器会从空闲队列移动到工作队列,每个解码器会按照时间顺序分配到一组抽帧任务,开始并发解码。当某个解码器完成当前组(当前解码器对匹配解码任务组所包含的值上一个目标视频帧的编码数据完成解码)的抽帧任务后,会回到空闲队列,如何还存在未解码的抽帧任务组,则分配该抽帧任务组到空闲解码器,依次类推,直至所有抽帧任务解码完成(利用多个解码器并行对各个解码任务组确定出对应的至少一个图像数据)。
S308、结束。当所有抽怎任务完成后,需要对抽则组件所占用的系统资源进行释放,例如解码器的释放、内存缓存和硬盘缓存的释放。
其中,并发抽帧过程中伴随着任务调度。继续参见图15,并发抽帧分为了3个过程,分别为:
S3071、任务调度。
由于并发抽帧会产生大量的帧数据(图像数据),并且真数据并非按照时间顺序传输给智能分析系统(图像分析系统)。在保证传输给智能分析系统的真数据一定是按时间顺序的条件下,必然会产生大量暂时用不到的真数据,需要暂时缓存起来。由于每帧数据体积较大,这里需要同时调用内存(系统内存)和硬盘(硬盘空间),以进行多级缓存(任务调度使得多级缓存伴随并发解码进行,即解码出一个帧数据立即进行调度判断出缓存在硬盘还是内存),保证整个抽帧任务的有序进行。
图16是本申请实施例提供的任务调度的示意图。参见图16,每个方格代表一个抽帧任务,整个抽帧任务16-1从左到右按照时间顺序排列。每个抽帧任务16-11有都有其对应的时间戳16-12和状态16-13,即未填充16-131(未解码完成)、已填充16-132(解码完成得到对应的图像数据)、已回收16-133(成功传输给图像分析系统)。滑窗16-2(滑动时间窗)的时间范围决定了内存可以缓存的帧数据的数量,解码器解码出的帧数据的时间戳(当前目标视频帧对应的时间戳)如果再次区域内,则帧数据缓存在内存16-3中。滑窗16-2左边的区域,代表帧数据已经被回收16-4(确定出图像数据成功传输给图像分析系统),每次帧数据的回收,都会驱动滑窗16-2向右滑动一格16-5,即滑窗16-2的起始和结束都向右滑动。滑窗16-2的右边区域,代表硬盘缓存的范围,解码器解码出的帧数据的时间戳如果在此区域内(当前目标视频帧的时间戳未处于滑动时间窗内时),则存储于硬盘16-6中。整个抽帧的过程,就是滑窗16-2从左到右滑动的过程。
S3072、多级缓存。
即指直接存储。在多级缓存中,帧数据直接以RGB方式保存,不进行编码压缩,提高效率。内存缓存直接存储在MAP结构中。硬盘缓存直接利用线程池+文件偏移的方式进行读写,保证IO速度。
S3073、传输帧数据。即将帧数据发送给智能分析系统进行分析。
通过上述方式,能够有效降低抽帧过程中解码的耗时,使得抽帧任务的效率大大提高,也就会使得视频剪辑的效率大大提高。并且,通过任务调度,解码和缓存互不影响,最大限度的利用了内存和硬盘的存储能力。
下面继续说明本申请实施例提供的视频剪辑装置655的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器650的视频剪辑装置655中的软件模块可以包括:
视频帧确定模块6551,用于响应目标对象针对展示的视频剪辑界面中的视频剪辑标识的操作,针对待剪辑视频,确定出等待抽取的多个目标视频帧;
图像解码模块6552,用于从获取到的所述待剪辑视频的编码文件中,并行解码出所述多个目标视频帧各自对应的图像数据;
视频剪辑模块6553,用于基于所述多个目标视频帧各自对应的图像数据,生成剪辑视频;
内容展示模块6554,用于将所述剪辑视频对应的展示标识展示在所述视频剪辑界面的标识展示区域中;所述展示标识用于分隔不同的视频。
在本申请的一些实施例中,所述内容展示模块6554,还用于响应于所述目标对象针对所述剪辑视频对应的所述展示标识的操作,在所述视频剪辑界面的视频展示区域中,展示所述剪辑视频。
在本申请的一些实施例中,视频帧确定模块6551,还用于响应于所述目标对象针对所述视频剪辑界面中的视频剪辑标识的操作,在所述视频剪辑界面上展示剪辑方式窗口;所述剪辑方式窗口提供了不同的剪辑方式;响应于所述目标对象针对所述剪辑方式窗口中的推荐时长剪辑标识的操作,针对所述待剪辑视频,确定出等待抽取的所述多个目标视频帧;
所述视频剪辑模块6553,还用于基于所述多个目标视频帧各自对应的所述图像数据,生成视频时长为推荐时长的剪辑视频,所述推荐时长为自动确定出的时长。
在本申请的一些实施例中,视频帧确定模块6551,还用于响应于所述目标对象针对所述剪辑方式窗口中的输入时长剪辑标识的操作,在所述视频剪辑界面中展示时长设置窗口;响应于所述目标对象针对所述时长设置窗口的输入操作,获取所述目标对象的输入时长;针对所述待剪辑视频,确定出等待抽取的所述多个目标视频帧;
所述视频剪辑模块6553,还用于依据所述多个目标视频帧各自对应的所述图像数据,生成视频时长为所述输入时长的剪辑视频。
在本申请的一些实施例中,所述视频剪辑装置655还包括:文件获取模块6555;
所述文件获取模块6555,用于响应于所述目标对象针对展示的内容创建界面中的本地上传标识的操作,从所述内容创建界面跳转至本地文件选择界面;其中,所述本地文件选择界面以列表的形式提供了存储在本地的各个视频;响应于所述目标对象在所述本地文件选择界面中的选中操作,将所述目标对象选中的视频作为所述待剪辑视频,并获取所述待剪辑视频的编码文件。
在本申请的一些实施例中,所述内容展示模块6554,还用于响应于所述目标对象在展示的内容浏览界面的内容创建标识的操作,从所述内容浏览界面跳转至所述内容创建界面。
在本申请的一些实施例中,所述文件获取模块6555,还用于响应于所述目标对象针对展示的内容创建界面中的实时采集标识的操作,从所述内容创建界面跳转至视频录制界面;响应于所述目标对象针对所述视频录制界面中的录制开始标识的操作,开始视频录制,并对录制到的视频进行编码,直至检测到所述目标对象针对所述视频录制界面中的录制结束标识的操作时,将所述录制到的视频作为所述待剪辑视频,并对所述录制到的视频的编码结果进行获取,得到所述编码文件。
在本申请的一些实施例中,所述图像解码模块6552,还用于从待剪辑视频的所述编码文件中,提取出所述多个目标视频帧各自对应的编码数据;从所述多个目标视频帧中,定位出关键视频帧;其中,所述关键视频帧为视频编码时画面数据的保留完整度大于完整度阈值的视频帧;基于所述关键视频帧,将所述多个目标视频帧各自所对应的编码数据,划分为各个解码任务组;其中,解码任务组包括了单个解码器所需要解码的数据;通过多个解码器,并行对所述各个解码任务组进行解码,得到所述多个目标视频帧各自对应的图像数据。
在本申请的一些实施例中,所述图像解码模块6552,还用于利用所述多个解码器中的任意一个当前解码器,对所述当前解码器所对应的匹配解码任务组中的当前编码数据进行解码,得到所述当前编码数据所对应的当前目标视频帧的图像数据;所述当前编码数据为所述匹配解码任务组所包含的任意一个编码数据;当通过所述当前解码器对所述匹配解码任务组所包含的至少一个目标视频帧的编码数据均完成解码时,得到至少一个图像数据;当利用所述多个解码器并行对所述各个解码任务组均确定出对应的至少一个图像数据时,得到所述多个目标视频帧各自对应的图像数据。
在本申请的一些实施例中,所述图像解码模块6552,还用于在所述当前目标视频帧对应的时间戳处于滑动时间窗内时,将所述当前目标视频帧的图像数据缓存至系统内存中;或者,在所述当前目标视频帧对应的时间戳未处于所述滑动时间窗内时,将所述当前目标视频帧的图像数据存储至硬盘空间中;其中,所述滑动时间窗决定了所述当前目标视频帧的图像数据的缓存级别。
在本申请的一些实施例中,所述图像解码模块6552,还用于当确定出所述当前目标视频帧在时间顺序上的上一个目标视频帧的图像数据成功传输至图像分析系统时,将所述当前目标视频帧的图像数据传输至所述图像分析系统;所述图像分析系统用于分析所述当前目标视频帧的图像数据的精彩程度。
在本申请的一些实施例中,所述图像解码模块6552,还用于当确定出所述当前目标视频帧的图像数据成功传输至所述图像分析系统时,将所述当前目标视频帧在时间顺序上的下一个目标视频帧的时间戳作为所述滑动时间窗的最新起始时间,将所述滑动时间窗的当前结束时间所对应的目标视频帧在时间顺序上的下一个目标视频帧的时间戳,作为所述滑动时间窗的最新结束时间。
在本申请的一些实施例中,所述图像解码模块6552,还用于当所述多个目标视频帧中的所述最后一个目标视频帧的图像数据成功发送给所述图像分析系统时,释放所述系统内存空间和硬盘空间。
在本申请的一些实施例中,所述图像解码模块6552,还用于将从当前关键帧至所述当前关键帧在时间顺序上的下一个关键帧之间的目标视频帧的编码数据,作为当前解码任务组;其中,所述当前关键帧为所述多个关键帧中的任意一个;当对所述多个目标视频帧均确定出对应的解码任务组时,得到所述各个解码任务组。
在本申请的一些实施例中,所述图像解码模块6552,还用于对系统性能进行检测,得到性能检测结果;利用所述性能检测结果,确定出参与并行解码的解码器数量;对所述解码器数量个初始解码器分别进行初始化,得到所述多个解码器。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的视频剪辑方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行视频剪辑指令,当可执行视频剪辑指令被处理器执行时,将引起处理器执行本申请实施例提供的视频剪辑方法,例如,如图3示出的方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行视频剪辑指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行视频剪辑指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,HyperText Markup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行视频剪辑指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (15)

1.一种视频剪辑方法,其特征在于,包括:
响应目标对象针对展示的视频剪辑界面中的视频剪辑标识的操作,针对待剪辑视频,确定出等待抽取的多个目标视频帧;
从获取到的所述待剪辑视频的编码文件中,并行解码出所述多个目标视频帧各自对应的图像数据;
基于所述多个目标视频帧各自对应的图像数据,生成剪辑视频;
将所述剪辑视频对应的展示标识展示在所述视频剪辑界面的标识展示区域中;所述展示标识用于分隔不同的视频。
2.根据权利要求1所述的方法,其特征在于,在所述将所述剪辑视频对应的展示标识展示在所述视频剪辑界面的标识展示区域中之后,所述方法还包括:
响应于所述目标对象针对所述剪辑视频对应的所述展示标识的操作,在所述视频剪辑界面的视频展示区域中,展示所述剪辑视频。
3.根据权利要求1或2所述的方法,其特征在于,所述响应目标对象针对展示的视频剪辑界面中的视频剪辑标识的操作,针对待剪辑视频,确定出等待抽取的多个目标视频帧,包括:
响应于所述目标对象针对所述视频剪辑界面中的视频剪辑标识的操作,在所述视频剪辑界面上展示剪辑方式窗口;所述剪辑方式窗口提供了不同的剪辑方式;
响应于所述目标对象针对所述剪辑方式窗口中的推荐时长剪辑标识的操作,针对所述待剪辑视频,确定出等待抽取的所述多个目标视频帧;
所述基于所述多个目标视频帧各自对应的图像数据,生成剪辑视频,包括:
基于所述多个目标视频帧各自对应的所述图像数据,生成视频时长为推荐时长的剪辑视频,所述推荐时长为自动确定出的时长。
4.根据权利要求3所述的方法,其特征在于,在所述响应于所述目标对象针对所述视频剪辑界面中的视频剪辑标识的操作,在所述视频剪辑界面上展示剪辑方式窗口之后,所述方法还包括:
响应于所述目标对象针对所述剪辑方式窗口中的输入时长剪辑标识的操作,在所述视频剪辑界面中展示时长设置窗口;
响应于所述目标对象针对所述时长设置窗口的输入操作,获取所述目标对象的输入时长;
针对所述待剪辑视频,确定出等待抽取的所述多个目标视频帧;
基于所述多个目标视频帧各自对应的图像数据,生成剪辑视频,包括:
依据所述多个目标视频帧各自对应的所述图像数据,生成视频时长为所述输入时长的剪辑视频。
5.根据权利要求1或2所述的方法,其特征在于,在所述响应目标对象针对展示的视频剪辑界面中的视频剪辑标识的操作,针对待剪辑视频,确定出等待抽取的多个目标视频帧之前,所述方法还包括:
响应于所述目标对象针对展示的内容创建界面中的本地上传标识的操作,从所述内容创建界面跳转至本地文件选择界面;其中,所述本地文件选择界面以列表的形式提供了存储在本地的各个视频;
响应于所述目标对象在所述本地文件选择界面中的选中操作,将所述目标对象选中的视频作为所述待剪辑视频,并获取所述待剪辑视频的编码文件。
6.根据权利要求5所述的方法,其特征在于,在所述响应于所述目标对象针对展示的内容创建界面中的本地上传标识的操作,从所述内容创建界面跳转至本地文件选择界面之前,所述方法还包括:
响应于所述目标对象在展示的内容浏览界面的内容创建标识的操作,从所述内容浏览界面跳转至所述内容创建界面。
7.根据权利要求1或2所述的方法,其特征在于,在所述响应目标对象针对展示的视频剪辑界面中的视频剪辑标识的操作,针对待剪辑视频,确定出等待抽取的多个目标视频帧之前,所述方法还包括:
响应于所述目标对象针对展示的内容创建界面中的实时采集标识的操作,从所述内容创建界面跳转至视频录制界面;
响应于所述目标对象针对所述视频录制界面中的录制开始标识的操作,开始视频录制,并对录制到的视频进行编码,直至检测到所述目标对象针对所述视频录制界面中的录制结束标识的操作时,将所述录制到的视频作为所述待剪辑视频,并对所述录制到的视频的编码结果进行获取,得到所述编码文件。
8.根据权利要求1或2所述的方法,其特征在于,所述从获取到的所述待剪辑视频的编码文件中,并行解码出所述多个目标视频帧各自对应的图像数据,包括:
从待剪辑视频的所述编码文件中,提取出所述多个目标视频帧各自对应的编码数据;
从所述多个目标视频帧中,定位出关键视频帧;其中,所述关键视频帧为视频编码时画面数据的保留完整度大于完整度阈值的视频帧;
基于所述关键视频帧,将所述多个目标视频帧各自所对应的编码数据,划分为各个解码任务组;其中,解码任务组包括了单个解码器所需要解码的数据;
通过多个解码器,并行对所述各个解码任务组进行解码,得到所述多个目标视频帧各自对应的图像数据。
9.根据权利要求8所述的方法,其特征在于,所述通过多个解码器,并行对所述各个解码任务组进行解码,得到所述多个目标视频帧各自对应的图像数据,包括:
利用所述多个解码器中的任意一个当前解码器,对所述当前解码器所对应的匹配解码任务组中的当前编码数据进行解码,得到所述当前编码数据所对应的当前目标视频帧的图像数据;所述当前编码数据为所述匹配解码任务组所包含的任意一个编码数据;
当通过所述当前解码器对所述匹配解码任务组所包含的至少一个目标视频帧的编码数据均完成解码时,得到至少一个图像数据;
当利用所述多个解码器并行对所述各个解码任务组均确定出对应的至少一个图像数据时,得到所述多个目标视频帧各自对应的图像数据。
10.根据权利要求9所述的方法,其特征在于,在所述利用所述多个解码器中的任意一个当前解码器,对所述当前解码器所对应的匹配解码任务组中的当前编码数据进行解码,得到所述当前编码数据所对应的当前目标视频帧的图像数据之后,所述方法还包括:
在所述当前目标视频帧对应的时间戳处于滑动时间窗内时,将所述当前目标视频帧的图像数据缓存至系统内存中;或者,
在所述当前目标视频帧对应的时间戳未处于所述滑动时间窗内时,将所述当前目标视频帧的图像数据存储至硬盘空间中;
其中,所述滑动时间窗决定了所述当前目标视频帧的图像数据的缓存级别。
11.根据权利要求10所述的方法,其特征在于,所述在所述当前目标视频帧对应的时间戳处于滑动时间窗内时,将所述当前目标视频帧的图像数据缓存至系统内存中之后,所述方法还包括:
当确定出所述当前目标视频帧在时间顺序上的上一个目标视频帧的图像数据成功传输至图像分析系统时,将所述当前目标视频帧的图像数据传输至所述图像分析系统;所述图像分析系统用于分析所述当前目标视频帧的图像数据的精彩程度。
12.根据权利要求11所述的方法,其特征在于,在所述将所述当前目标视频帧的图像数据传输至所述图像分析系统之后,所述方法还包括:
当确定出所述当前目标视频帧的图像数据成功传输至所述图像分析系统时,将所述当前目标视频帧在时间顺序上的下一个目标视频帧的时间戳作为所述滑动时间窗的最新起始时间,将所述滑动时间窗的当前结束时间所对应的目标视频帧的在时间顺序上的下一个目标视频帧的时间戳,作为所述滑动时间窗的最新结束时间。
13.一种视频剪辑装置,其特征在于,包括:
视频帧确定模块,用于响应目标对象针对展示的视频剪辑界面中的视频剪辑标识的操作,针对待剪辑视频,确定出等待抽取的多个目标视频帧;
图像解码模块,用于从获取到的所述待剪辑视频的编码文件中,并行解码出所述多个目标视频帧各自对应的图像数据;
视频剪辑模块,用于基于所述多个目标视频帧各自对应的图像数据,生成剪辑视频;
内容展示模块,用于将所述剪辑视频对应的展示标识展示在所述视频剪辑界面的标识展示区域中;所述展示标识用于分隔不同的视频。
14.一种视频剪辑设备,其特征在于,包括:
存储器,用于存储可执行视频剪辑指令;
处理器,用于执行所述存储器中存储的可执行视频剪辑指令时,实现权利要求1至12任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,存储有可执行视频剪辑指令,用于被处理器执行时,实现权利要求1至12任一项所述的方法。
CN202110569770.8A 2021-05-25 2021-05-25 一种视频剪辑方法、装置、设备及计算机可读存储介质 Active CN113015005B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110569770.8A CN113015005B (zh) 2021-05-25 2021-05-25 一种视频剪辑方法、装置、设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110569770.8A CN113015005B (zh) 2021-05-25 2021-05-25 一种视频剪辑方法、装置、设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN113015005A true CN113015005A (zh) 2021-06-22
CN113015005B CN113015005B (zh) 2021-08-31

Family

ID=76380822

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110569770.8A Active CN113015005B (zh) 2021-05-25 2021-05-25 一种视频剪辑方法、装置、设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN113015005B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113490051A (zh) * 2021-07-16 2021-10-08 北京奇艺世纪科技有限公司 一种视频抽帧方法、装置、电子设备及存储介质
CN113891113A (zh) * 2021-09-29 2022-01-04 阿里巴巴(中国)有限公司 视频剪辑合成方法及电子设备
CN114125341A (zh) * 2021-10-29 2022-03-01 北京达佳互联信息技术有限公司 视频处理方法、装置、电子设备、存储介质及产品
CN114598925A (zh) * 2022-03-18 2022-06-07 脸萌有限公司 一种视频编辑方法、装置、设备及存储介质
US20220303642A1 (en) * 2021-03-19 2022-09-22 Product Development Associates, Inc. Securing video distribution
CN115278306A (zh) * 2022-06-20 2022-11-01 阿里巴巴(中国)有限公司 视频剪辑方法及装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104394353A (zh) * 2014-10-14 2015-03-04 浙江宇视科技有限公司 视频浓缩方法及装置
CN105992005A (zh) * 2015-03-04 2016-10-05 广州市动景计算机科技有限公司 视频解码方法、装置及终端设备
CN108156407A (zh) * 2017-12-13 2018-06-12 深圳市金立通信设备有限公司 一种视频剪辑方法及终端
CN108833787A (zh) * 2018-07-19 2018-11-16 百度在线网络技术(北京)有限公司 用于生成短视频的方法和装置
CN109120994A (zh) * 2017-06-22 2019-01-01 中兴通讯股份有限公司 一种视频文件自动剪辑方法、装置及计算机可读介质
CN109167934A (zh) * 2018-09-03 2019-01-08 咪咕视讯科技有限公司 一种视频处理方法、装置及计算机可读存储介质
US20200221171A1 (en) * 2019-01-04 2020-07-09 Gracenote, Inc. Generation of media station previews using a reference database
CN112738418A (zh) * 2020-12-25 2021-04-30 北京百度网讯科技有限公司 视频获取方法、装置以及电子设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104394353A (zh) * 2014-10-14 2015-03-04 浙江宇视科技有限公司 视频浓缩方法及装置
CN105992005A (zh) * 2015-03-04 2016-10-05 广州市动景计算机科技有限公司 视频解码方法、装置及终端设备
CN109120994A (zh) * 2017-06-22 2019-01-01 中兴通讯股份有限公司 一种视频文件自动剪辑方法、装置及计算机可读介质
CN108156407A (zh) * 2017-12-13 2018-06-12 深圳市金立通信设备有限公司 一种视频剪辑方法及终端
CN108833787A (zh) * 2018-07-19 2018-11-16 百度在线网络技术(北京)有限公司 用于生成短视频的方法和装置
CN109167934A (zh) * 2018-09-03 2019-01-08 咪咕视讯科技有限公司 一种视频处理方法、装置及计算机可读存储介质
US20200221171A1 (en) * 2019-01-04 2020-07-09 Gracenote, Inc. Generation of media station previews using a reference database
CN112738418A (zh) * 2020-12-25 2021-04-30 北京百度网讯科技有限公司 视频获取方法、装置以及电子设备

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220303642A1 (en) * 2021-03-19 2022-09-22 Product Development Associates, Inc. Securing video distribution
CN113490051A (zh) * 2021-07-16 2021-10-08 北京奇艺世纪科技有限公司 一种视频抽帧方法、装置、电子设备及存储介质
CN113490051B (zh) * 2021-07-16 2024-01-23 北京奇艺世纪科技有限公司 一种视频抽帧方法、装置、电子设备及存储介质
CN113891113A (zh) * 2021-09-29 2022-01-04 阿里巴巴(中国)有限公司 视频剪辑合成方法及电子设备
CN113891113B (zh) * 2021-09-29 2024-03-12 阿里巴巴(中国)有限公司 视频剪辑合成方法及电子设备
CN114125341A (zh) * 2021-10-29 2022-03-01 北京达佳互联信息技术有限公司 视频处理方法、装置、电子设备、存储介质及产品
CN114125341B (zh) * 2021-10-29 2024-01-23 北京达佳互联信息技术有限公司 视频处理方法、装置、电子设备、存储介质及产品
CN114598925A (zh) * 2022-03-18 2022-06-07 脸萌有限公司 一种视频编辑方法、装置、设备及存储介质
CN114598925B (zh) * 2022-03-18 2023-10-20 脸萌有限公司 一种视频编辑方法、装置、设备及存储介质
CN115278306A (zh) * 2022-06-20 2022-11-01 阿里巴巴(中国)有限公司 视频剪辑方法及装置
CN115278306B (zh) * 2022-06-20 2024-05-31 阿里巴巴(中国)有限公司 视频剪辑方法及装置

Also Published As

Publication number Publication date
CN113015005B (zh) 2021-08-31

Similar Documents

Publication Publication Date Title
CN113015005B (zh) 一种视频剪辑方法、装置、设备及计算机可读存储介质
CN109547819B (zh) 直播列表展示方法、装置以及电子设备
CN101300567B (zh) 在Web上的媒体共享和创作的方法
KR102290419B1 (ko) 디지털 컨텐츠의 시각적 내용 분석을 통해 포토 스토리를 생성하는 방법 및 장치
US11317139B2 (en) Control method and apparatus
CN111930994A (zh) 视频编辑的处理方法、装置、电子设备及存储介质
CN113010703B (zh) 一种信息推荐方法、装置、电子设备和存储介质
CN111899322B (zh) 视频处理方法、动画渲染sdk和设备及计算机存储介质
CN111800668B (zh) 弹幕的处理方法、装置、设备及存储介质
CN110166650A (zh) 视频集的生成方法及装置、计算机设备与可读介质
CN110691281B (zh) 视频播放处理方法、终端设备、服务器及存储介质
CN111277910A (zh) 弹幕显示方法、装置、电子设备及存储介质
CN114286169B (zh) 视频生成方法、装置、终端、服务器及存储介质
CN112040273A (zh) 视频合成方法及装置
CN110930325B (zh) 基于人工智能的图像处理方法、装置及存储介质
CN114501103B (zh) 基于直播视频的互动方法、装置、设备及存储介质
CN114845149B (zh) 视频片段的剪辑方法、视频推荐方法、装置、设备及介质
CN114139491A (zh) 一种数据处理方法、装置及存储介质
CN114341866A (zh) 同声传译方法、装置、服务器和存储介质
JP2021012466A (ja) メタデータ生成システム、映像コンテンツ管理システム及びプログラム
CN116389849A (zh) 视频生成方法、装置、设备及存储介质
CN112784074B (zh) 一种多媒体数据处理方法、计算机及可读存储介质
CN115529497A (zh) 弹幕播放方法和装置
CN109729425B (zh) 一种关键片段的预测方法及系统
CN111225250A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40047323

Country of ref document: HK