一种直播视频文件拆条方法、装置及系统
技术领域
本发明涉及计算机技术领域,特别涉及一种直播视频文件拆条方法、装置及系统。
背景技术
视频拆条,就是将视频文件按需拆分成若干视频片段。如此,用户可以按需观看感兴趣的视频片段,而不用观看完整视频。
通常情况下,直播视频经过网络传输、转码、切片等系列操作,会分别同步至公有云和各个私有云,从而最终注入各个云端的CDN(Content Delivery Network,内容分发网络)中。之后,公有云可将打点标记信息同步至各个私有云,以使私有云可根据打点标记信息来执行视频拆条。这一打点标记信息可以包括拆条开始时间和拆条结束时间。
不过,不同云环境的转码、切片能力不一致,易导致各个CDN视频相比直播视频存在不同程度的延迟,即CDN时钟与直播时钟不一致。比如,19:00:00时的直播视频经过网络传输、转码、切片等系列操作后,最终注入CDN的时刻通常并不是19:00:00,有可能是19:00:15,也可能是19:00:05。如此,使用同步来的打点标记信息执行视频拆条时,会存在误差。比如,拆分出的视频片段,有可能会出现主持人的话截取了一半、多截取了广告片段等问题,影响用户观看体验。
发明内容
本发明提供了一种直播视频文件拆条方法、装置及系统,能够修正云拆条误差问题。
为了达到上述目的,本发明是通过如下技术方案实现的:
第一方面,本发明提供了一种直播视频文件拆条方法,包括:
接收外部发来的打点标记信息,所述打点标记信息包括:一拆条时间和所述拆条时间时的第一视频截图;
确定第一时间区间,其中,所述第一时间区间的起始时间比所述拆条时间提前第一预设时间值,所述第一时间区间的终止时间比所述拆条时间延后第二预设时间值;
获取预先存储的直播视频文件中,对应于所述第一时间区间的第一直播视频片段;
执行抽帧处理,以获得所述第一直播视频片段的每一帧第一直播图片;
从所有所述第一直播图片中确定出目标直播图片,其中,所述目标直播图片与所述第一视频截图的图片相似度,不低于任一其他所述第一直播图片与所述第一视频截图的图片相似度;
根据所述目标直播图片的帧数,修正所述拆条时间;
利用修正后的所述拆条时间,对所述直播视频文件执行拆条处理。
进一步地,所述根据所述目标直播图片的帧数,修正所述拆条时间,包括:根据所述目标直播图片的帧数,利用公式一,修正所述拆条时间;
所述公式一包括:Ts′=Ts-t1+(i/n);
其中,Ts′为修正后的所述拆条时间;Ts为所述拆条时间;t1为所述第一预设时间值;i为所述目标直播图片的帧数;n为单位时间内可抽帧数。
进一步地,所述拆条时间为拆条开始时间;
所述打点标识信息还包括:拆条结束时间、所述拆条结束时间时的第二视频截图;
在所述对所述直播视频文件执行拆条处理之前,进一步包括:
确定第二时间区间,其中,所述第二时间区间的起始时间比所述拆条结束时间提前所述第一预设时间值,所述第二时间区间的终止时间比所述拆条结束时间延后所述第二预设时间值;
获取所述直播视频文件中,对应于所述第二时间区间的第二直播视频片段;
执行抽帧处理,以获得所述第二直播视频片段的每一帧第二直播图片;
从所有所述第二直播图片中确定出目的直播图片,其中,所述目的直播图片与所述第二视频截图的图片相似度,不低于任一其他所述第二直播图片与所述第二视频截图的图片相似度;
根据所述目的直播图片的帧数,修正所述拆条结束时间;
以及,
所述利用修正后的所述拆条时间,对所述直播视频文件执行拆条处理,包括:确定以修正后的所述拆条开始时间为起始时间、以修正后的所述拆条结束时间为结束时间的第三时间区间;获取所述直播视频文件中,对应于所述第三时间区间的直播视频片段。
进一步地,所述拆条时间为拆条开始时间;
所述打点标识信息还包括:拆条持续时间;
所述利用修正后的所述拆条时间,对所述直播视频文件执行拆条处理,包括:确定第四时间区间,其中,所述第四时间区间的起始时间为修正后的所述拆条开始时间,所述第四时间区间的持续时长为所述拆条持续时间;获取所述直播视频文件中,对应于所述第四时间区间的直播视频片段。
进一步地,所述拆条时间为拆条结束时间;
所述打点标识信息还包括:拆条持续时间;
所述利用修正后的所述拆条时间,对所述直播视频文件执行拆条处理,包括:确定第五时间区间,其中,所述第五时间区间的结束时间为修正后的所述拆条结束时间,所述第五时间区间的持续时长为所述拆条持续时间;获取所述直播视频文件中,对应于所述第五时间区间的直播视频片段。
进一步地,所述从所有所述第一直播图片中确定出目标直播图片,包括:
将所述第一视频截图和每一帧所述第一直播图片依次作为目标图片,并执行:将所述目标图片缩小到n×m的尺寸,使得缩小后的所述目标图片具有N个像素,其中,N等于n和m的乘积;
将缩小后的所述目标图片转换成灰度图像;
计算所述灰度图像中所有像素的灰度平均值;
针对所述灰度图像中每一个像素均执行:当前像素的灰度值不小于所述灰度平均值时,将所述当前像素的标记值记为1,否则,将所述当前像素的标记值记为0;
基于预设的组合顺序,顺序组合所述灰度图像中每一个像素的标记值,以构成一个N位的整数,来作为所述目标图片的hash指纹;
以及,
在每一个所述目标图片的hash指纹均确定好后,依次计算所述第一视频截图的hash指纹和各个所述第一直播图片的hash指纹的汉明距离,直至计算出不大于2的汉明距离;
确定出目标直播图片,其中,所述第一视频截图的hash指纹和所述目标直播图片的hash指纹的汉明距离不大于2。
第二方面,本发明提供了一种直播视频文件拆条装置,包括:
接收单元,用于接收外部发来的打点标记信息,所述打点标记信息包括:一拆条时间和所述拆条时间时的第一视频截图;
处理单元,用于确定第一时间区间,其中,所述第一时间区间的起始时间比所述拆条时间提前第一预设时间值,所述第一时间区间的终止时间比所述拆条时间延后第二预设时间值;获取预先存储的直播视频文件中,对应于所述第一时间区间的第一直播视频片段;
抽帧单元,用于执行抽帧处理,以获得所述第一直播视频片段的每一帧第一直播图片;
确定单元,用于从所有所述第一直播图片中确定出目标直播图片,其中,所述目标直播图片与所述第一视频截图的图片相似度,不低于任一其他所述第一直播图片与所述第一视频截图的图片相似度;
修正单元,用于根据所述目标直播图片的帧数,修正所述拆条时间;
拆条单元,用于利用修正后的所述拆条时间,对所述直播视频文件执行拆条处理。
进一步地,所述拆条单元,用于根据所述目标直播图片的帧数,利用公式一,修正所述拆条时间;
所述公式一包括:Ts′=Ts-t1+(i/n);
其中,Ts′为修正后的所述拆条时间;Ts为所述拆条时间;t1为所述第一预设时间值;i为所述目标直播图片的帧数;n为单位时间内可抽帧数。
进一步地,所述拆条时间为拆条开始时间;
所述打点标识信息还包括:拆条结束时间、所述拆条结束时间时的第二视频截图;
所述处理单元,还用于确定第二时间区间,其中,所述第二时间区间的起始时间比所述拆条结束时间提前所述第一预设时间值,所述第二时间区间的终止时间比所述拆条结束时间延后所述第二预设时间值;获取所述直播视频文件中,对应于所述第二时间区间的第二直播视频片段;
所述抽帧单元,还用于执行抽帧处理,以获得所述第二直播视频片段的每一帧第二直播图片;
所述确定单元,还用于从所有所述第二直播图片中确定出目的直播图片,其中,所述目的直播图片与所述第二视频截图的图片相似度,不低于任一其他所述第二直播图片与所述第二视频截图的图片相似度;
所述修正单元,还用于根据所述目的直播图片的帧数,修正所述拆条结束时间;
以及,
所述拆条单元,用于确定以修正后的所述拆条开始时间为起始时间、以修正后的所述拆条结束时间为结束时间的第三时间区间;获取所述直播视频文件中,对应于所述第三时间区间的直播视频片段。
进一步地,所述拆条时间为拆条开始时间;
所述打点标识信息还包括:拆条持续时间;
所述拆条单元,用于确定第四时间区间,其中,所述第四时间区间的起始时间为修正后的所述拆条开始时间,所述第四时间区间的持续时长为所述拆条持续时间;获取所述直播视频文件中,对应于所述第四时间区间的直播视频片段。
进一步地,所述拆条时间为拆条结束时间;
所述打点标识信息还包括:拆条持续时间;
所述拆条单元,用于确定第五时间区间,其中,所述第五时间区间的结束时间为修正后的所述拆条结束时间,所述第五时间区间的持续时长为所述拆条持续时间;获取所述直播视频文件中,对应于所述第五时间区间的直播视频片段。
第三方面,本发明提供了一种直播视频文件拆条系统,包括:文件发送端、公有云端和至少一个私有云端;
其中,每一个所述私有云端中均包括有上述任一所述的直播视频文件拆条装置;
所述文件发送端,用于将直播视频文件实时发送给所述公有云端和每一个所述私有云端;
所述公有云端,用于接收并存储所述直播视频文件;将外部针对所述直播视频文件而输入的打点标记信息,同步至每一个所述私有云端;
每一个所述私有云端,均用于接收所述直播视频文件并存储至内部的直播视频文件拆条装置中。
本发明提供了一种直播视频文件拆条方法、装置及系统,该方法包括:接收外部发来的、包括有一拆条时间及该拆条时间时的视频截图的打点标记信息;确定起始时间比拆条时间提前、终止时间比拆条时间延后的时间区间;获取预存直播视频文件中,对应于该时间区间的直播视频片段;从直播视频片段的所有帧直播图片中,确定出与视频截图具有最高图片相似度的目标直播图片;根据目标直播图片的帧数修正拆条时间;利用修正后的拆条时间,对直播视频文件执行拆条处理。本发明基于图像相似度对比,来修正拆条时间,并基于修正后的拆条时间以执行拆条处理,故能够修正云拆条误差问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种直播视频文件拆条方法的流程图;
图2是本发明一实施例提供的另一种直播视频文件拆条方法的流程图;
图3是本发明一实施例提供的一种直播视频文件拆条装置的示意图;
图4是本发明一实施例提供的一种直播视频文件拆条系统的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种直播视频文件拆条方法,可以包括以下步骤:
步骤101:接收外部发来的打点标记信息,所述打点标记信息包括:一拆条时间和所述拆条时间时的第一视频截图。
步骤102:确定第一时间区间,其中,所述第一时间区间的起始时间比所述拆条时间提前第一预设时间值,所述第一时间区间的终止时间比所述拆条时间延后第二预设时间值。
步骤103:获取预先存储的直播视频文件中,对应于所述第一时间区间的第一直播视频片段。
步骤104:执行抽帧处理,以获得所述第一直播视频片段的每一帧第一直播图片。
步骤105:从所有所述第一直播图片中确定出目标直播图片,其中,所述目标直播图片与所述第一视频截图的图片相似度,不低于任一其他所述第一直播图片与所述第一视频截图的图片相似度。
步骤106:根据所述目标直播图片的帧数,修正所述拆条时间。
步骤107:利用修正后的所述拆条时间,对所述直播视频文件执行拆条处理。
本发明实施例提供了一种直播视频文件拆条方法,接收外部发来的、包括有一拆条时间及该拆条时间时的视频截图的打点标记信息;确定起始时间比拆条时间提前、终止时间比拆条时间延后的时间区间;获取预存直播视频文件中,对应于该时间区间的直播视频片段;从直播视频片段的所有帧直播图片中,确定出与视频截图具有最高图片相似度的目标直播图片;根据目标直播图片的帧数修正拆条时间;利用修正后的拆条时间,对直播视频文件执行拆条处理。本发明实施例基于图像相似度对比,来修正拆条时间,并基于修正后的拆条时间以执行拆条处理,故能够修正云拆条误差问题。
详细地,CDN即内容分发网络,可用于存储时序化的直播视频文件。
通常情况下,不同云端的CDN时钟与直播时钟不一致,即较直播时钟会存在不同程度的时间延迟。如果直接基于公有云端发来的打点标记信息,来执行直播视频拆条处理,会出现视频拆条不准确的问题,比如,有可能主持人的话截取了一半,有可能多截取了广告片段。如此,可基于上述步骤102至步骤106,对拆条时间进行修正。
由于公有云向各个私有云同步的打点标记信息中的拆条起始时间,都是以公有云自身的CDN时钟为基准的,且公有云的CDN时钟较直播时钟也会有一定程度的延迟,故上述步骤102中,上述第一时间区间应包括拆条时间,且拆条时间不为其起始时间,也不为其终止时间。
通常情况下,可以根据可能存在的时间延迟程度,基于经验值来确定第一预设时间值和第二预设时间值。这两个时间值的数值可以相等,也可以不相等。比如,在本发明一个实施例中,可以令这两个时间值均为20s。
通常情况下,直播视频文件的拆条处理,至少可以通过下述三种实现方式得以实现。
方式1:基于拆条起止时间,对直播视频文件执行相应拆条处理;
方式2:基于拆条起始时间和持续时长,对直播视频文件执行相应拆条处理;
方式3:基于拆条结束时间和持续时长,对直播视频文件执行相应拆条处理。
比如,方式1中,已知拆条起止时间分别为19:00:00和19:30:00,则可从直播视频文件中拆出19:00:00~19:30:00这一时间段的直播视频片段;
方式2中,已知拆条起始时间和持续时长分别为19:00:00和20min,则可从直播视频文件中拆出19:00:00~19:20:00这一时间段的直播视频片段;
方式3中,已知拆条结束时间和持续时长分别为19:30:00和15min,则可从直播视频文件中拆出19:15:00~19:30:00这一时间段的直播视频片段。
当然,这三种实现方式中,拆条所基于的拆条起止时间应是修正后的时间,以避免出现云拆条误差问题。综合考虑拆条处理计算量及拆条准确度,方式1适用于持续时间较长的直播视频片段的拆条处理,以尽可能提高拆条准确度,方式2和方式3适用于持续时间较短的直播视频片段的拆条处理,以尽可能降低拆条处理计算量。
详细地,针对上述方式1:
在本发明的一个实施例中,所述拆条时间为拆条开始时间;
所述打点标识信息还包括:拆条结束时间、所述拆条结束时间时的第二视频截图;
在所述对所述直播视频文件执行拆条处理之前,进一步包括:
确定第二时间区间,其中,所述第二时间区间的起始时间比所述拆条结束时间提前所述第一预设时间值,所述第二时间区间的终止时间比所述拆条结束时间延后所述第二预设时间值;
获取所述直播视频文件中,对应于所述第二时间区间的第二直播视频片段;
执行抽帧处理,以获得所述第二直播视频片段的每一帧第二直播图片;
从所有所述第二直播图片中确定出目的直播图片,其中,所述目的直播图片与所述第二视频截图的图片相似度,不低于任一其他所述第二直播图片与所述第二视频截图的图片相似度;
根据所述目的直播图片的帧数,修正所述拆条结束时间;
以及,
所述利用修正后的所述拆条时间,对所述直播视频文件执行拆条处理,包括:确定以修正后的所述拆条开始时间为起始时间、以修正后的所述拆条结束时间为结束时间的第三时间区间;获取所述直播视频文件中,对应于所述第三时间区间的直播视频片段。
在方式1中,由于存在拆条起始时间和拆条结束时间这两个拆条时间,故可基于相同的实现方式,即类似于重复执行上述步骤102~步骤106两次,以分别修正打点标记信息中的拆条起始时间和拆条结束时间。
详细地,针对上述方式2:
在本发明一个实施例中,所述拆条时间为拆条开始时间;
所述打点标识信息还包括:拆条持续时间;
所述利用修正后的所述拆条时间,对所述直播视频文件执行拆条处理,包括:确定第四时间区间,其中,所述第四时间区间的起始时间为修正后的所述拆条开始时间,所述第四时间区间的持续时长为所述拆条持续时间;获取所述直播视频文件中,对应于所述第四时间区间的直播视频片段。
详细地,针对上述方式3:
在本发明一个实施例中,所述拆条时间为拆条结束时间;
所述打点标识信息还包括:拆条持续时间;
所述利用修正后的所述拆条时间,对所述直播视频文件执行拆条处理,包括:确定第五时间区间,其中,所述第五时间区间的结束时间为修正后的所述拆条结束时间,所述第五时间区间的持续时长为所述拆条持续时间;获取所述直播视频文件中,对应于所述第五时间区间的直播视频片段。
综上所述,工作人员可以按需选择上述任一实现方式,均可实现对直播视频文件的准确拆条。
举例来说,假设当前存在公有云、私有云1和私有云2。假设19:00:00时的直播视频,经过网络传输、转码、切片等系列操作后,最终注入公有云的时间为19:00:10,注入私有云1的时间为19:00:05,注入私有云2的时间为19:00:15。
由于各个私有云的拆条处理均以公有云同步来的打点标记信息为准,故在公有云端,可以由工作人员人为或用其他手段标记打点以进行拆条处理,并输入拆条时间。比如,为了拆条19:00:00~19:30:00时的新闻联播节目,工作人员经准确查看每一帧图像,可以确定基于公有云存储的直播视频文件,应拆条出19:00:10~19:30:10时的直播视频片段。
以上述方式1为例,打点标记信息即可以包括:由工作人员输入的19:00:10和19:30:10这两个拆条时间,以及这两个拆条时间时的视频截图。当然,该视频截图是基于公有云存储的直播视频文件,以及基于公有云的CDN时钟而获得的。
为了能够准确拆条出新闻联播节目,基于自身存储的直播视频文件和自身的CDN时钟,私有云1理论上应拆条19:00:05~19:30:05时的直播视频片段,而私有云2应拆条19:00:15~19:30:15时的直播视频片段。
以私有云1为例,假设步骤101中的拆条时间为19:00:10,则步骤102中即可确定第一时间区间为18:59:50~19:00:30,持续时间即为40s,这一时间区间是包括19:00:05这一时间点的。
步骤103中,即可基于私有云1存储的直播视频文件,获得18:59:50~19:00:30时的直播视频片段。假设1s可抽25帧,故步骤104中,可以获得这40s直播视频片段中全部的1000帧直播图片。通常情况下,这1000帧直播图片可以按照时间先后顺序依次排列,以便于后续确定各个直播图片的帧数,进而由帧数换算为时间,以对接收到的拆条时间进行准确修正。
这1000帧直播图片中,是包括有19:00:05时的直播图片的。由于该直播图片理论上,是与打点标记信息中19:00:15时的视频截图完全相同的,与其他帧直播图片相比,这两者的图片相似度应是最高的,故步骤105中,即可确定出19:00:05时的那一帧直播图片即为目标直播图片。
如此,步骤106中即可根据19:00:05时那一帧直播图片的帧数,对19:00:10进行修正,以将其修正为19:00:05。进而,步骤107中,即可利用修正后的19:00:05,对存储的直播视频文件进行拆条处理,以拆条出19:00:05~19:30:05时的直播视频片段。如此,拆条出的直播视频片段通常是准确的,不存在云拆条误差问题的。
在本发明的一个实施例中,为了说明一种修正拆条时间的可能实现方式,所以,所述根据所述目标直播图片的帧数,修正所述拆条时间,包括:根据所述目标直播图片的帧数,利用公式一,修正所述拆条时间;
所述公式一包括:Ts′=Ts-t1+(i/n);
其中,Ts′为修正后的所述拆条时间;Ts为所述拆条时间;t1为所述第一预设时间值;i为所述目标直播图片的帧数;n为单位时间内可抽帧数。
举例来说,Ts为拆条开始时间,比如为上述19:00:10;对于18:59:50~19:00:30这40s的直播视频片段,假设目标直播图片为19:00:05时的直播图片,故其帧数即可以为375=25×15,即1000帧中的第375帧,如此,i=375。
由于t1=20s;n=25;故Ts′=19:00:10-20+(375/25)=19:00:05。即步骤106中,可以将19:00:10修正为19:00:05。
在本发明一个实施例中,为了说明一种根据图像相似度对比以确定目标直播图片的可能实现方式,所以,所述从所有所述第一直播图片中确定出目标直播图片,包括:
将所述第一视频截图和每一帧所述第一直播图片依次作为目标图片,并执行:将所述目标图片缩小到n×m的尺寸,使得缩小后的所述目标图片具有N个像素,其中,N等于n和m的乘积;
将缩小后的所述目标图片转换成灰度图像;
计算所述灰度图像中所有像素的灰度平均值;
针对所述灰度图像中每一个像素均执行:当前像素的灰度值不小于所述灰度平均值时,将所述当前像素的标记值记为1,否则,将所述当前像素的标记值记为0;
基于预设的组合顺序,顺序组合所述灰度图像中每一个像素的标记值,以构成一个N位的整数,来作为所述目标图片的hash指纹;
以及,
在每一个所述目标图片的hash指纹均确定好后,依次计算所述第一视频截图的hash指纹和各个所述第一直播图片的hash指纹的汉明距离,直至计算出不大于2的汉明距离;
确定出目标直播图片,其中,所述第一视频截图的hash指纹和所述目标直播图片的hash指纹的汉明距离不大于2。
在本发明一个实施例中,优选地,上述n×m可以为8×8。
详细地,计算两hash指纹的汉明距离,通常可以为计算两hash指纹的不同位的个数。比如,如果这一个数为0,则可认为两张图片非常相似;如果这一个数小于5,则表示有些不同,但比较相近;如果这一个数大于10则可认为是完全不同的图片。
本发明实施例中,依次计算各个直播图片所对应的汉明距离,直至计算出一汉明距离X,该汉明距离X不大于2,即可结束汉明距离的计算,将该汉明距离X所对应的直播图片确定为目标直播图片,而不再计算排序在目标直播图片之后的其他直播图片所对应的汉明距离,而默认其他直播图片所对应的汉明距离均大于2。如此,可以尽可能的较少计算量。
当然,在本发明其他实施例,还可按需调整这一对比阈值的大小,比如可以不为2,而为3或4。
此外,在本发明其他实施例中,也可不设置这一对比阈值,而直接计算各个直播图片所对应的汉明距离,并将最小汉明距离所对应的直播图片确定为目标直播图片。通常情况下,最小汉明距离所对应的直播图片为1个。当然,特殊情况下,当存在多个直播图片且所对应的汉明距离相同且均为最小汉明距离时,可以取这多个直播图片中的任意一个直播图片为目标直播图片。
如图2所示,本发明一个实施例提供了另一种直播视频文件拆条方法,该方法以上述方式1为例,具体包括以下步骤:
步骤201:接收外部发来的打点标记信息,其中,打点标记信息包括:拆条开始时间T_S、拆条开始时间时的视频截图P_S、拆条结束时间T_E、拆条结束时间时的视频截图P_E。
步骤202:确定时间区间△TS、时间区间△TE,其中,△TS的起始时间比T_S提前20s,△TS的终止时间比T_S延后20s,△TE的起始时间比T_E提前20s,△TE的终止时间比T_E延后20s。
步骤203:获取预先存储的直播视频文件中,对应于△TS的直播视频片段PS,对应于△TE的直播视频片段PE。
步骤204:执行抽帧处理,以获得PS的每一帧直播图片ps,PE的每一帧直播图片pe。
本发明实施例中,对于视频抽帧来说,可以使用ffmpeg工具,通过运行命令:ffmpeg-i 308784242.ts-y-f image2-s 720x576 308784242/%d.jpg,完成抽帧操作。
步骤205:从所有ps中确定出ps_g,从所有pe中确定出pe_g,其中,ps_g与P_S的图片相似度不低于任一其他ps与P_S的图片相似度,pe_g与P_E的图片相似度不低于任一其他pe与P_E的图片相似度。
步骤206:根据ps_g的帧数将T_S修正为T_S′,根据pe_g的帧数将T_E修正为T_E′。
详细地,可以基于上述公式一执行时间修正操作。
步骤207:确定T_S′为起始时间、以T_E′为结束时间的时间区间△T。
步骤208:获取直播视频文件中对应于△T的直播视频片段。
本发明实施例中,通过图像相似度比对,修正CDN时钟不一致导致的云拆条误差问题。
如图3所示,本发明一个实施例提供了一种直播视频文件拆条装置,可以包括:
接收单元301,用于接收外部发来的打点标记信息,所述打点标记信息包括:一拆条时间和所述拆条时间时的第一视频截图;
处理单元302,用于确定第一时间区间,其中,所述第一时间区间的起始时间比所述拆条时间提前第一预设时间值,所述第一时间区间的终止时间比所述拆条时间延后第二预设时间值;获取预先存储的直播视频文件中,对应于所述第一时间区间的第一直播视频片段;
抽帧单元303,用于执行抽帧处理,以获得所述第一直播视频片段的每一帧第一直播图片;
确定单元304,用于从所有所述第一直播图片中确定出目标直播图片,其中,所述目标直播图片与所述第一视频截图的图片相似度,不低于任一其他所述第一直播图片与所述第一视频截图的图片相似度;
修正单元305,用于根据所述目标直播图片的帧数,修正所述拆条时间;
拆条单元306,用于利用修正后的所述拆条时间,对所述直播视频文件执行拆条处理。
在本发明一个实施例中,所述拆条单元306,用于根据所述目标直播图片的帧数,利用公式一,修正所述拆条时间;
所述公式一包括:Ts′=Ts-t1+(i/n);
其中,Ts′为修正后的所述拆条时间;Ts为所述拆条时间;t1为所述第一预设时间值;i为所述目标直播图片的帧数;n为单位时间内可抽帧数。
在本发明一个实施例中,所述拆条时间为拆条开始时间;
所述打点标识信息还包括:拆条结束时间、所述拆条结束时间时的第二视频截图;
所述处理单元302,还用于确定第二时间区间,其中,所述第二时间区间的起始时间比所述拆条结束时间提前所述第一预设时间值,所述第二时间区间的终止时间比所述拆条结束时间延后所述第二预设时间值;获取所述直播视频文件中,对应于所述第二时间区间的第二直播视频片段;
所述抽帧单元303,还用于执行抽帧处理,以获得所述第二直播视频片段的每一帧第二直播图片;
所述确定单元304,还用于从所有所述第二直播图片中确定出目的直播图片,其中,所述目的直播图片与所述第二视频截图的图片相似度,不低于任一其他所述第二直播图片与所述第二视频截图的图片相似度;
所述修正单元305,还用于根据所述目的直播图片的帧数,修正所述拆条结束时间;
以及,
所述拆条单元306,用于确定以修正后的所述拆条开始时间为起始时间、以修正后的所述拆条结束时间为结束时间的第三时间区间;获取所述直播视频文件中,对应于所述第三时间区间的直播视频片段。
在本发明一个实施例中,所述拆条时间为拆条开始时间;
所述打点标识信息还包括:拆条持续时间;
所述拆条单元306,用于确定第四时间区间,其中,所述第四时间区间的起始时间为修正后的所述拆条开始时间,所述第四时间区间的持续时长为所述拆条持续时间;获取所述直播视频文件中,对应于所述第四时间区间的直播视频片段。
在本发明一个实施例中,所述拆条时间为拆条结束时间;
所述打点标识信息还包括:拆条持续时间;
所述拆条单元306,用于确定第五时间区间,其中,所述第五时间区间的结束时间为修正后的所述拆条结束时间,所述第五时间区间的持续时长为所述拆条持续时间;获取所述直播视频文件中,对应于所述第五时间区间的直播视频片段。
在本发明一个实施例中,所述确定单元304可以根据如上所述的、基于汉明距离来反映图片相似度的方法,从所有第一直播图片中确定出目标直播图片。同理,还可基于该方法从所有第二直播图片中确定出目的直播图片。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
如图4所示,本发明实施例提供了一种直播视频文件拆条系统,可以包括:文件发送端401、公有云端402和至少一个私有云端403;
其中,每一个所述私有云端403中均包括有上述任一所述的直播视频文件拆条装置4031;
所述文件发送端401,用于将直播视频文件实时发送给所述公有云端402和每一个所述私有云端403;
所述公有云端402,用于接收并存储所述直播视频文件;将外部针对所述直播视频文件而输入的打点标记信息,同步至每一个所述私有云端403;
每一个所述私有云端403,均用于接收所述直播视频文件并存储至内部的直播视频文件拆条装置4031中。
综上所述,本发明实施例在公有云端标记打点,在私有云端基于图像相似度对比,修正拆条打点标记的起止时间,以执行拆条处理。如此,通过图像相似度比对,可以修正CDN时钟不一致导致的云拆条误差问题。
综上所述,本发明的实施例具有至少如下有益效果:
1、本发明实施例中,接收外部发来的、包括有一拆条时间及该拆条时间时的视频截图的打点标记信息;确定起始时间比拆条时间提前、终止时间比拆条时间延后的时间区间;获取预存直播视频文件中,对应于该时间区间的直播视频片段;从直播视频片段的所有帧直播图片中,确定出与视频截图具有最高图片相似度的目标直播图片;根据目标直播图片的帧数修正拆条时间;利用修正后的拆条时间,对直播视频文件执行拆条处理。本发明实施例基于图像相似度对比,来修正拆条时间,并基于修正后的拆条时间以执行拆条处理,故能够修正云拆条误差问题。
2、本发明实施例在公有云端标记打点,在私有云端基于图像相似度对比,修正拆条打点标记的起止时间,以执行拆条处理。如此,通过图像相似度比对,可以修正CDN时钟不一致导致的云拆条误差问题。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。