获取视频关键帧的方法及装置与流程

文档序号:18124733发布日期:2019-07-10 09:50阅读:412来源:国知局
获取视频关键帧的方法及装置与流程

本申请涉及视频数据处理技术领域,尤其涉及一种获取视频关键帧的方法及装置。



背景技术:

目前,用户在视频网站例如优酷中观看视频的过程中,可通过将光标定位到播放进度栏上的某个时间点查看所对应的剧情提要,若用户对该时间点上的剧情感兴趣,用户可直接点击对应的时间点,视频网站将根据用户的操作播放对应时间点的视频。其中,上述对视频添加剧情提要的过程主要由人工进行编辑并添加,人工在视频中添加剧情提要的具体过程为:获得对应视频的至少一个视频关键帧,并在视频关键帧处添加对应的剧情提要,除了添加剧情提要外,还可以添加其他内容,例如广告。

在人工对视频关键帧进行编辑的过程中,准确提取视频关键帧至关重要,这关系到视频关键帧是否能正常发挥提示作用。目前常用的视频关键帧提取方式主要有两种,第一种方式为:获取一个视频中所有的镜头边界,再将该组镜头拆分成图像帧,把该组镜头中第一帧和最后一帧作为视频关键帧保存;第二种方式:使用像素帧平均法,获取一个视频中所有的镜头边界后,获取某组镜头所有帧在某位置上的像素平均值,再从该镜头中选择一帧最接近平均值的图像帧作为关键帧。然而,通过上述方式提取到的视频关键帧并不准确。



技术实现要素:

本申请旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本申请的第一个目的在于提出一种获取视频关键帧的方法,该方法通过分析客户端上传的视频点击记录可以准确获得用户感兴趣的视频关键帧,方便了编辑人员根据该视频关键帧进行编辑,进而可提高视频关键帧的提示作用,提高用户观看视频的用户体验度。

本申请的第二个目的在于提出一种获取视频关键帧的装置。

为达上述目的,本申请第一方面实施例提出了一种获取视频关键帧的方法,包括:接收并保存客户端上传的视频点击记录,其中,所述视频点击记录中包括视频标识信息、视频时长和用户对对应视频的点选时间点;以第一预设时间段为单位将所述视频时长划分为至少一个时间片段,并根据所述点选时间点计算每个时间片段内的用户点击量;以及根据所述用户点击量筛选时间片段,并从筛选出的时间片段中获得视频关键帧。

本申请实施例的获取视频关键帧的方法,接收并保存客户端上传的包含视频标识信息、视频时长和用户对对应视频的点选时间点的视频点击记录,并以第一预设时间段为单位将视频时长划分为至少一个时间片段,并根据点选时间点计算每个时间片段内的用户点击量;以及根据用户点击量筛选时间片段,并从筛选出的时间片段中获得视频关键帧,该实施例通过分析客户端上传的视频点击记录可以准确获得用户感兴趣的视频关键帧,方便了编辑人员根据该视频关键帧进行编辑,进而可提高视频关键帧的提示作用,提高用户观看视频的用户体验度。

为达上述目的,本申请第二方面实施例提出了一种获取视频关键帧的装置,包括:接收模块,用于接收并保存客户端上传的视频点击记录,其中,所述视频点击记录中包括视频标识信息、视频时长和用户对对应视频的点选时间点;计算模块,用于以第一预设时间段为单位将视频时长划分为至少一个时间片段,并根据所述点选时间点计算每个时间片段内的用户点击量;以及处理模块,用于根据所述用户点击量筛选时间片段,并从筛选出的时间片段中获得视频关键帧。

本申请实施例的获取视频关键帧的装置,通过接收模块接收并保存客户端上传的包含视频标识信息、视频时长和用户对对应视频的点选时间点的视频点击记录,并通过计算模块以第一预设时间段为单位将视频时长划分为至少一个时间片段,并根据点选时间点计算每个时间片段内的用户点击量;以及处理模块根据用户点击量筛选时间片段,并从筛选出的时间片段中获得视频关键帧,该实施例通过分析客户端上传的视频点击记录可以准确获得用户感兴趣的视频关键帧,方便了编辑人员根据该视频关键帧进行编辑,进而可提高视频关键帧的提示作用,提高用户观看视频的用户体验度。

附图说明

图1是本申请一个实施例的获取视频关键帧的方法的流程图。

图2是本申请另一个实施例的获取视频关键帧的方法的流程图。

图3是本申请又一个实施例的获取视频关键帧的方法的流程图。

图4是本申请一个实施例的获取视频关键帧的装置的结构示意图。

图5是本申请另一个实施例的获取视频关键帧的装置的结构示意图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。

下面参考附图描述本申请实施例的获取视频关键帧的方法及装置。

图1是本申请一个实施例的获取视频关键帧的方法的流程图,如图1所示,该获取视频关键帧的方法包括:

S101,接收并保存客户端上传的视频点击记录,其中,视频点击记录中包括视频标识信息、视频时长和用户对对应视频的点选时间点(为了叙述方便,下面简称点选时间点)。

具体地,服务器通过接口接收多个客户端上传的视频点击记录,并判断接收到的视频点击记录是否正确,若正确,则保存视频点击记录;若不正确,则将对应的视频点击记录删除。其中,视频标识信息可以为视频ID(Identity,身份标识码)。

具体而言,针对每个视频点击记录,服务器在接收到客户端上传的视频点击记录后,可判断视频点击记录中的视频标识信息与数据库中保存的视频标识信息是否一致,若不一致,则将对应的视频点击记录删除;若一致,则判断视频点击记录中的点选时间点是否大于0,若是,则将对应的视频点击记录保存到服务器中,否则将对应的视频点击记录删除。

S102,以第一预设时间段为单位将视频时长划分为至少一个时间片段,并根据点选时间点计算每个时间片段内的用户点击量。

在该实施例中,如图2所示,S102可以包括:

S1021,以第一预设时间段为单位将视频时长划分为至少一个时间片段。

针对每个视频,服务器中保存大量的视频点击记录,可以以第一预设时间段例如1分钟为单位将视频时长划分为至少一个时间片段。

S1022,根据点选时间点计算每个时间片段内的用户点击量。

由于用户对对应视频的点选时间点不同,因此,在以第一预设时间段为单位将视频时长划分为至少一个时间片段后,可遍历服务器中的视频点击记录,并根据视频点击记录中的点选时间点计算每个时间片段内的用户点击量。

例如,当前视频的视频时长为150秒,总的点击时间点为100个,即用户点击量为100次,以1分钟为单位对视频时长进行划分可获得三个时间片段,分别为第1-60秒、第61-120秒和第121-150秒,假设根据点击时间点计算得到三个时间片段的用户点击量为:第1-60秒内的用户点击量为20次、第61-120秒内的用户点击量为50次、第121-150秒的用户点击量为30次。

S103,根据用户点击量筛选时间片段,并从筛选出的时间片段中获得视频关键帧。

在该实施例中,如图2所示,S103可以包括:

S1031,根据用户点击量对时间片段进行排序,并根据排序结果获得预定数量的时间片段。

其中,预定数量与时间片段的个数有关,预定数量小于或者等于时间片段的个数。例如,当前视频被划分为10个时间片段,在获得对应时间片段的用户点击量后,可根据用户点击量从这10个时间片段中筛选出5个时间片段。

再例如,当前视频被划分为4个时间片段,在获得对应时间片段的用户点击量后,可根据用户点击量从这4个时间片段中筛选出1个或者2时间片段。

例如,当前视频的三个时间片段对应的点击量分别为:第1-60秒内的用户点击量为20次、第61-120秒内的用户点击量为50次、第121-150秒的用户点击量为30次,可根据用户点击量的大小对这三个时间片段进行排序,排序后的结果为:第61-120秒内的用户点击量为50次,第121-150秒的用户点击量为30次,第1-60秒内的用户点击量为20次。此时,可根据排序获得一个用户点击量最多的时间片段,即当前视频的第61-120秒。

S1032,以第二预设时间段为单位将筛选出的时间片段划分为至少一个子时间片段。

其中,该实施例中的第二预设时间段小于第一预设时间段,第二预设时间例如可以是1秒钟。

为了可以准确获得视频关键帧,在获得预定数量的时间片段后,针对每个筛选出的时间片段,以第二预设时间段例如1秒钟为单位将筛选出的时间片段划分为至少一个子时间片段。

S1033,根据点选时间点计算每个子时间片段内的用户点击量。

S1034,获得用户点击量最多的子时间片段,并根据子时间片段和视频标识信息获得对应的视频关键帧。

具体地,在获得每个子时间片段内的用户点击量后,并根据用户点击量获得用户点击量最多的子时间片段,并根据子时间片段和视频标识信息获得对应的视频关键帧。

在该实施例中,在根据筛选出的时间片段获得视频关键帧之后,还可以根据视频标识信息在数据库中保存对应的视频关键帧,以方便编辑人员编辑视频关键帧。例如,编辑人员可在视频关键帧处添加剧情提要或者广告等。

例如,当前视频的视频时长为150秒,假定当前视频的第1-60秒内的用户点击量为20次、第61-120秒内的用户点击量为50次、第121-150秒内的用户点击量为30次,根据用户点击量筛选出的时间片段为当前视频的第61-120秒,为了可以更加准确的获得用户点击量最多对应的时间点,该时间点即为当前视频的视频关键帧所对应的时间点,可以以1秒钟对当前视频的时间片段进行划分,即以1秒钟为单位将当前视频的第61-120秒划分为多个子时间片段,并获得每个子时间片段对应的用户点击量,若根据分析获得子时间片段第80秒内的用户点击量最多,此时,可根据视频标识信息从服务器中获得当前视频第80秒处对应的视频帧,该视频帧即为当前视频对应的视频关键帧。由此,结合用户的使用情况获得了当前视频的视频关键帧,方便了编辑人员向该视频关键帧中添加对应的剧情提要,进而方便用户在观看当前视频时,定位到视频关键帧对应的时间点,以提前了解视频关键帧处的精彩剧情提要,提高了用户观看视频的用户体验。

本申请实施例的获取视频关键帧的方法,接收并保存客户端上传的包含视频标识信息、视频时长和用户对对应视频的点选时间点的视频点击记录,并以第一预设时间段为单位将视频时长划分为至少一个时间片段,并根据点选时间点计算每个时间片段内的用户点击量;以及根据用户点击量筛选时间片段,并从筛选出的时间片段中获得视频关键帧,该实施例通过分析客户端上传的视频点击记录可以准确获得用户感兴趣的视频关键帧,方便了编辑人员根据该视频关键帧进行编辑,进而可提高视频关键帧的提示作用,提高用户观看视频的用户体验度。

图3是本申请又一个实施例的获取视频关键帧的方法的流程图,如图3所示,该获取视频关键帧的方法包括:

S301,客户端获得视频点击记录,并上传视频点击记录。

其中,视频点击记录中可以包括但不限于视频标识信息、视频时长和用户对对应视频的点选时间点,例如,视频点击记录中还可以包括视频的当前播放时间点,即当前正在播放视频的时间点。

具体地,在用户通过客户端观看视频的过程中,客户端中的脚本语言可以获得用户操作播放器的行为,并在监控到用户点选视频的播放进度栏时,客户端中的脚本语言可获得用户点选视频的点选时间点、当前视频的视频时长、视频ID和当前视频的当前播放时间点,并将获得的上述信息上传给服务器。

例如,用户在计算机上通过浏览器观看优酷网站上的视频,在用户观看视频的过程中,浏览器中的Javascript(http://player.youku.com/jsapi),其中,Javascript是一种直译式脚本语言,广泛应用于客户端中。当监控到用户主动点选播放的时间点时,可从应用程序编程接口API(Application Programming Interface)中获得对应的当前视频的视频ID、视频时长、当前播放时间点和点选时间点,其中,可从获取视频基本信息接口https://openapi.youku.com/v2/videos/show_basic.json中获得当前视频的视频ID、视频时长(duration)等信息;可从http://player.youku.com/jsapi中获得当前视频的当前播放时间点,其中,获得当前视频的当前播放时间点的代码为:

function currentTime(){

return player.currentTime();

}

可从http://player.youku.com/jsapi中获得用户对对应视频的点选时间点,其中,获得用户对对应视频的点选时间点的代码为:

function seekTo(s){

player.seekTo(s);

}

在获得当前视频的视频ID、视频时长、当前播放时间点和点选时间点后,客户端将获得的上述信息上传给服务器。

S302,服务器接收并保存客户端上传的视频点击记录。

具体地,服务器从预定接口中获得客户端上传的视频点击记录,其中,该预定接口是服务器预先定义的接口,服务器定义该接口的部分代码为:

public void sendInfo(Long video_id,Long video_duration,Long video_current_time,Long user_seek_time)

其中,定义中的video_id表示视频ID;video_duration表示视频时长;video_current_time表示视频的当前播放时间点;user_seek_time表示点选时间点。

具体地,在通过预定接口接收到客户端上传的视频点击记录后,在对获得视频点击记录进行保存时,可先对接收到的视频点击记录是否正确进行判断,若视频点击记录正确,则保存对应的视频点击记录,否则删除对应的视频点击记录。

具体而言,针对每个视频点击记录,服务器在接收到客户端上传的视频点击记录后,可判断视频点击记录中的视频标识信息与数据库中保存的视频标识信息是否一致,若不一致,则将对应的视频点击记录删除;若一致,则判断视频点击记录中的点选时间点是否大于0,若是,则将对应的视频点击记录保存在服务器中,否则将对应的视频点击记录删除。由此,可以减少不正确的视频点击记录对服务器资源的占用,减少后续计算的工作量。

S303,以第一预设时间段为单位将视频时长划分为至少一个时间片段,并根据点选时间点计算每个时间片段内的用户点击量。

由于用户的操作习惯不同,用户对对应视频的点选时间点不可能集中于某一秒钟,而是离散分布在某一秒钟的左右一段时间范围内,且一段视频中通常包含多处精彩点,因此,在分析获得视频的视频关键帧时,可以以第一预设时间段例如1分钟为单位将视频时长划分为至少一个时间片段,并根据点选时间点计算每个时间片段内的用户点击量。

需要说明的是,对于视频时长不超过第一预定时间例如1分钟的视频,所获得时间片段即为当前视频的视频时长。

以第一预设时间为1分钟为例,对视频时长小于1分钟的视频和大于或者等于1分钟的视频划分时间片段的过程,实现该过程的JAVA代码如下:

其中,TimeZone类只有两个属性即该段时间片段的开始时间和结束时间,类定义如下:

在对对应视频的视频时长进行划分后,根据点选时间点计算每个时间片段内的用户点击量。具体地,在获得点选时间点后,将点选时间点映射到对应的时间片段上,并统计每个时间片段上的点选时间点的数量,该数量即为每个时间片段上的用户点击量。

在JAVA语言中,根据点选时间计算每个时间片段内的用户点击量的代码如下:

S304,根据用户点击量筛选时间片段,并从筛选出的时间片段中获得视频关键帧。

S304与S103相同,此处不赘述。

本申请实施例的获取视频关键帧的方法,接收并保存客户端上传的包含视频标识信息、视频时长和用户对对应视频的点选时间点的视频点击记录,并以第一预设时间段为单位将视频时长划分为至少一个时间片段,并根据点选时间点计算每个时间片段内的用户点击量;以及根据用户点击量筛选出预定数量的时间片段,并从筛选出的时间片段中获得视频关键帧,该实施例通过分析客户端上传的视频点击记录可以准确获得用户感兴趣的视频关键帧,方便了编辑人员根据该视频关键帧进行编辑,进而可提高视频关键帧的提示作用,提高用户观看视频的用户体验度。

为了实现上述实施例,本申请还提出一种获取视频关键帧的装置。

图4是本申请一个实施例的获取视频关键帧的装置的结构示意图,如图4所示,该装置包括:接收模块100、计算模块200和处理模块300,其中:

接收模块100用于接收并保存客户端上传的视频点击记录,其中,视频点击记录中包括视频标识信息、视频时长和用户对对应视频的点选时间点;计算模块200用于以第一预设时间段为单位将视频时长划分为至少一个时间片段,并根据点选时间点计算每个时间片段内的用户点击量;以及处理模块300用于根据用户点击量筛选时间片段,并从筛选出的时间片段中获得视频关键帧。

上述计算模块200具体用于:针对每个筛选出的时间片段,以第二预设时间段为单位将筛选出的时间片段划分为至少一个子时间片段,并根据点选时间点计算每个子时间片段内的用户点击量;以及获得用户点击量最多的子时间片段,并根据子时间片段和视频标识信息获得对应的视频关键帧。其中,第一预设时间段与第二预设时间段是系统中预先设置的时间段,并且第二预设时间段小于第一预设时间段,例如,第一预设时间段为1分钟,第二预设时间段为1秒钟。

具体地,上述接收模块100在接收客户端上传的视频点击记录后,可判断接收到的视频点击记录是否正确,若正确,则保存视频点击记录。

上述处理模块300具体用于:根据用户点击量对时间片段进行排序,并根据排序结果获得预定数量的时间片段。

其中,预定数量与时间片段的个数有关,预定数量小于时间片段的个数。例如,当前视频被划分为10个时间片段,在获得对应时间片段的用户点击量后,可根据用户点击量从这10个时间片段筛选出5个时间片段。

另外,如图5所示,上述装置还可以包括保存模块400,该保存模块400用于在处理模块300根据筛选出的时间片段获得视频关键帧之后,根据视频标识信息在数据库中保存对应的视频关键帧。

上述获取视频关键帧的装置获取视频关键帧的过程可参见图1-图2及其对应的文字描述,此处不赘述。

本申请实施例的获取视频关键帧的装置,通过接收模块接收并保存客户端上传的包含视频标识信息、视频时长和用户对对应视频的点选时间点的视频点击记录,并通过计算模块以第一预设时间段为单位将视频时长划分为至少一个时间片段,并根据点选时间点计算每个时间片段内的用户点击量;以及处理模块根据用户点击量筛选时间片段,并从筛选出的时间片段中获得视频关键帧,该实施例通过分析客户端上传的视频点击记录可以准确获得用户感兴趣的视频关键帧,方便了编辑人员根据该视频关键帧进行编辑,进而可提高视频关键帧的提示作用,提高用户观看视频的用户体验度。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

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