本发明涉及视频文件处理技术领域,具体涉及一种视频文件缩略图的生成方法及系统。
背景技术:
随着多媒体技术和网络传输技术的飞速发展,人们越来越多地青睐于通过互联网实时查询、欣赏丰富多彩的视频信息。然而,由于互联网上的视频信息质量参差不齐,为节省时间,用户常在选择视频时通过拖动进度条寻找最为精彩的片段,以作为该视频是否值得观看的标准。
若视频播放器提供随选预览功能,对于想要对整个影片有粗浅印象的用户而言,将有非常大的帮助。基于此,目前的做法是对视频文件生成缩略图,其步骤包括截图步骤、存储步骤和合并步骤,具体为:
截图步骤,就是在视频转码的过程中,按照截图间隔时间、截图尺寸、输出文件名等去截取图片;
存储步骤,将截图数据进行缩小处理,然后各自编码生成小图片,再将这些小图片存储在磁盘上;
合并步骤,就是将存储在磁盘上的多张小图片进行组合排序,并且按照一定的尺寸生成大图片。
上述缩略图生成的方案的缺点就是有大量编码、解码的次数;有更多文件操作;生成了大量中间文件,增加了存储占用。如果有很多视频,每个视频的时长又很长的话,那么就要截取很多张图片,就会导致生成预览图片时间过长,系统的工作效率变低。
技术实现要素:
本申请提供一种视频文件缩略图的生成方法及系统。
根据第一方面,一种实施例中提供一种视频文件缩略图的生成方法,包括步骤:
在视频转码过程中,对视频图片进行解码,并对解码的视频图片数据按预设条件进行截取,获得截取的图片数据;
对截取的图片数据按预设尺寸进行缩小,并将缩小后的图片数据进行临时存储;
将临时存储的所有图片数据进行一次编码生成一幅合成图片。
一种实施例中,预设条件包括预设截图的名称、预设截图尺寸、预设截图间隔、预设输出文件名称和预设输出文件模式;
对解码的视频图片数据按预设条件进行截取,获得截取的图片数据包括:根据预设截图的名称查找解码的视频图片数据,根据预设截图间隔按预设截图尺寸进行图片数据截取操作,并将截取得到的图片数据按预设输出文件名称与预设输出文件格式进行输出。
一种实施例中,预设输出文件格式为yuv格式数据
一种实施例中,将缩小后的图片数据进行存储之前还包括根据合成图片的尺寸申请相应的内存空间的步骤。
一种实施例中,将临时存储的所有图片数据进行一次编码生成一幅合成图片之后,还包括将内存空间临时存储的图片数据进行清除的步骤。
根据第二方面,一种实施例中提供一种视频文件缩略图的生成系统,包括:
对解码的视频图片数据按预设条件进行截取,获得截取的图片数据的图片数据截取模块;
对截取的图片数据按预设尺寸进行缩小,并将缩小后的图片数据进行临时存储的存储模块;
将临时存储的所有图片数据进行一次编码生成一幅合成图片的合并模块。
一种实施例中,预设条件包括预设截图的名称、预设截图尺寸、预设截图间隔、预设输出文件名称和预设输出文件模式;
图片数据截取模块中,对解码的视频图片数据按预设条件进行截取,获得截取的图片数据包括:根据预设截图的名称查找解码的视频图片数据,根据预设截图间隔按预设截图尺寸进行图片数据截取操作,并将截取得到的图片数据按预设输出文件名称与预设输出文件格式进行输出。
一种实施例中,预设输出文件格式为yuv格式数据。
依据上述实施例的缩略图生成方法,由于对截图得到的图片数据,不对其进行编码生成小图片,而是直接将这些数据以yuv格式数据临时保存在内存中,最后对这些保存的yuv数据进行一次编码,合成大图片,这样就会减少了编码、解码的次数,大量减少了对文件的操作,同时减少了大量的中间文件和空间存储占用率,进而节省了时间,提升了转码系统的工作效率。
附图说明
图1为视频文件缩略图生成系统原理图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。
本例提供一种视频文件缩略图的生成方法,包括如下步骤。
S1:在视频转码过程中,对视频图片进行解码,并对解码的视频图片数据按预设条件进行截取,获得截取的图片数据。
其中,预设条件包括预设截图的名称、预设截图尺寸、预设截图间隔、预设输出文件名称和预设输出文件模式;对解码的视频图片数据按预设条件进行截取,获得截取的图片数据,具体为:根据预设截图的名称查找解码的视频图片数据,根据预设截图间隔按所述预设截图尺寸进行图片数据截取操作,并将截取得到的图片数据按预设输出文件名称与预设输出文件格式进行输出。
优选的,本例的预设输出文件格式为yuv格式数据,则获得的截取图片数据即是yuv格式数据。
S2:对截取的图片数据按预设尺寸进行缩小,并将缩小后的图片数据进行临时存储。
在本步骤之前,还包括根据预设的合成图片的尺寸申请相应的内存空间的步骤,这样,就可以将缩小后的图片数据按截取时间依次存储于该内存空间中。
需要说明的是,对截取的图片数据按预设尺寸进行缩小,就是将截取的图片数据根据最终预设合成图片的尺寸进行缩小,以满足预设的合成图片的合成。
由于图片数据以yuv格式数据进行存储,将它们存储在内存空间中,不对其进行编码生成图片,这样减少了编码的流程,同时减少了中间的小图片文件。
S3:将临时存储的所有图片数据进行一次编码生成一幅合成图片
一条视频图片数据被完全截取并存储后,将所有临时存储在内存中的yuv数据取出,进行一次编码生成一幅合成图片,该合成图片即是缩略图,由于jpeg格式的压缩率高,因此,优先的,使用jpeg进行一次编码,最终合成图片。
进一步,步骤S3之后,还包括将内存空间临时存储的图片数据进行清除的步骤,以减少内存空间占用率。
以一个60s时长的视频文件每隔6s截取一次图片数据为例,通过上述步骤S1-S3的缩略图生成方法,可以减少10次编码、10次解码、10次文件读写操作,因此,本例的缩略图生成方法针对多个时长很长的视频来说,由于减少了图片编码、解码的次数,减少了对文件的读写操作,因此,能明显提升生成预览图片的效率,同进,也减少了大量中间文件和内存空间存储占用率。
进一步,本例通过上述缩略图生成方法还提供与其相对应的视频文件缩略图生成系统,其原理图如图1所示,包括图片数据截取模块1、存储模块2和合并模块3;图片数据截取模块1用于执行对解码的视频图片数据按预设条件进行截取,获得截取的图片数据的操作,存储模块2用于对截取的图片数据按预设尺寸进行缩小,并将缩小后的图片数据进行临时存储的操作,合并模块3用于执行将临时存储的所有图片数据进行一次编码生成一幅合成图片的操作。
上述视频文件缩略图生成系统中各模块的具体实现过程可参考前述缩略图的生成方法,在此不再重述。
以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。