CN109672902A - 一种视频抽帧方法、装置、电子设备和存储介质 - Google Patents

一种视频抽帧方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN109672902A
CN109672902A CN201811595536.7A CN201811595536A CN109672902A CN 109672902 A CN109672902 A CN 109672902A CN 201811595536 A CN201811595536 A CN 201811595536A CN 109672902 A CN109672902 A CN 109672902A
Authority
CN
China
Prior art keywords
video
frame
picture
browser
target video
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.)
Pending
Application number
CN201811595536.7A
Other languages
English (en)
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.)
Baidu Online Network Technology Beijing Co Ltd
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201811595536.7A priority Critical patent/CN109672902A/zh
Publication of CN109672902A publication Critical patent/CN109672902A/zh
Pending legal-status Critical Current

Links

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • 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/44004Processing 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 video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8543Content authoring using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例公开了一种视频抽帧方法、装置、电子设备和存储介质,该方法包括:通过浏览器获取待抽帧的目标视频;调用浏览器支持的视频处理元素对目标视频进行抽帧,得到预设数量的图片。本发明实施例通过在前端利用浏览器支持的视频处理元素实现抽帧,使得视频抽帧速度大大提升,减少了后端抽帧服务的压力;并且基于原始的视频文件利用前端快速抽帧可以最大限度的保证图片的质量,改善用户体验。

Description

一种视频抽帧方法、装置、电子设备和存储介质
技术领域
本发明实施例涉及视频处理技术领域,尤其涉及一种视频抽帧方法、装置、电子设备和存储介质。
背景技术
随着互联网技术的快速发展,互联网进入了内容分发的新时代,短视频内容是当前社交媒体上最火的内容形式。视频占据了内容分发中很大的比重,内容作者通过内容平台上传大量的视频,通过内容平台分发,为更广泛的用户提供视频内容消费服务。在内容下发前,内容作者往往会设置一张图片作为视频的封面图,告知阅读者视频的内容,吸引读者。封面图需要与视频的相关度很高,因此,通常是利用视频抽帧技术抽取视频中的图片作为封面图。
现有技术中,内容平台获取视频后,通常是将视频上传到云端服务器,调用云端服务器的后台抽帧服务进行视频抽帧,例如利用Ffmpeg程序服务(一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序)抽取视频帧图片。然而,在上述过程中,后台抽帧服务需要占用较长时间才能完成,导致抽帧速度降低,需要用户等待几分钟甚至几十分钟才能得到抽帧返回结果,无法满足当前对视频抽帧的速度需求。
发明内容
本发明实施例提供一种视频抽帧方法、装置、电子设备和存储介质,以解决现有技术中视频抽帧速度慢的问题。
第一方面,本发明实施例提供了一种视频抽帧方法,所述方法包括:
通过浏览器获取待抽帧的目标视频;
调用浏览器支持的视频处理元素对目标视频进行抽帧,得到预设数量的图片。
第二方面,本发明实施例还提供了一种视频抽帧装置,所述装置包括:
目标视频获取模块,用于通过浏览器获取待抽帧的目标视频;
目标视频抽帧模块,用于调用浏览器支持的视频处理元素对目标视频进行抽帧,得到预设数量的图片。
第三方面,本发明实施例还提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所述的一种视频抽帧方法。
第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本发明任意实施例所述的一种视频抽帧方法。
本发明实施例通过浏览器获取待抽帧的目标视频;调用当前浏览器支持的视频处理元素对目标视频进行抽帧,得到预设数量的图片,以进行抽帧。利用前端浏览器对视频进行抽帧让用户可以快速获取抽帧结果,提高抽帧速度,且减少了后端取帧服务的压力。同时,本发明实施例基于原始的视频文件利用前端快速抽帧可以最大限度的保证图片的质量,从而进一步提升用户体验。
附图说明
图1是本发明实施例一中的一种视频抽帧方法的流程图;
图2是本发明实施例二中的一种视频抽帧方法的流程图;
图3是本发明实施例三中的一种视频抽帧方法的流程图;
图4是本发明实施例四中的一种视频抽帧装置的结构示意图;
图5是本发明实施例五中的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种视频抽帧方法的流程图,本实施例可适用于视频抽帧的情况,该方法可以由一种视频抽帧装置来执行,该装置可通过软件和/或硬件实现,并可配置在电子设备中,该电子设备可以是计算机、平板电脑或手机等可以运行浏览器的智能设备,如图1所示,该方法包括:
S110、通过浏览器获取待抽帧的目标视频。
浏览器可以是电子设备中运行的用于展示信息资源的应用程序,这些信息资源可为网页、图片、影音或其他内容。在本发明实施例中,浏览器具体可以是一些内容分发平台或网站,可向后台服务器发送各种请求,并对从服务器发来的超文本信息或各种多媒体数据格式进行解释、显示和播放。目标视频可以是需要抽帧的视频文件,例如,用户在电子设备中通过浏览器登录内容分发平台,在平台上上传目标视频文件,电子设备通过平台获取到目标视频文件后,从该目标视频的原始视频文件中抽取预设数量的视频帧图片并通过浏览器显示,以便于用户从这些视频帧图片中选择适合作为该目标视频封面图片的视频帧图片。
S120、调用浏览器支持的视频处理元素对目标视频进行抽帧,得到预设数量的图片。
其中,视频处理元素可以是浏览器支持的可以基于视频文件进行相关图像绘制的容器、程序或工具等。预设数量可以是预先设定的作为候选视频封面图片的数量,当然,也可以根据抽帧业务需要和目标视频的长度灵活设置预设数量,以满足用户需求。在本发明实施例中,电子设备可以直接调用该浏览器支持的视频处理元素,利用该视频处理元素对目标视频进行抽帧,绘制得到预设数量的图片。从而使得电子设备可以实现前端快速抽帧,使得视频抽帧不再依赖于服务器的后端服务,极大的提升了用户体验。
可选的,所述视频处理元素为canvas。
其中,canvas是一个HTML中可以使用脚本(通常为JavaScript)在其中绘制图像的HTML元素。它可以用来制作照片集、制作动画,以及进行实时视频处理和渲染。示例性的,HTML5<canvas>标签用于绘制图像,<canvas>元素本身并没有绘制能力(它仅仅是图形的容器),可以利用使用JavaScript脚本来完成实际的绘图任务。大部分的浏览器可以支持canvas元素,而canvas可以支持将video(视频)对象绘制成图片,canvas还可以将绘制的图片直接转存为其他格式的图片,如base64格式的图片。当然,在电子设备进行抽帧的同时,也可以同时执行视频上传服务器的操作,以减少视频分发的时间。
可选的,调用当前浏览器支持的视频处理元素对目标视频进行抽帧,得到预设数量的图片之后,所述方法还包括:
将所述预设数量的图片作为目标视频的候选封面图片返回至浏览器进行显示。
具体的,在一些基于浏览器实现的视频分发平台中,视频作者对视频进行分发时,一般会设置一张图片作为视频的封面图,告知阅读者视频的内容,吸引读者。在本发明实施例中,可以将得到的预设数量的图片作为候选封面图片返回至浏览器显示,用户可以从这些候选封面图片中选取一张作为分发视频的封面。当然,浏览器也可以根据预设的选择封面规则选择一张相关度最高的图片作为封面图片,返回至浏览器进行显示。
此外,还需要说明的是,在现有技术中,通常是在前端获取到用户上传的目标视频后,电子设备会先将目标视频上传至后端服务器,由后端服务器对目标视频进行转码,以支持不同视频格式的播放器,然后再对转码后的视频文件进行抽帧,这一复杂流程不仅速度慢,需要用户等待几分钟甚至几十分钟才能得到抽帧返回结果,而且,抽帧是基于转码视频文件,这就会造成抽取的视频帧图片质量不高的问题。而在本发明实施例中,在前端实现抽帧,不仅速度快,而且是在原始视频文件基础上进行抽帧,最大程度地满足了抽取图片的质量要求,继而提高视频封面图片的质量。
本实施例的技术方案,调用浏览器支持的视频处理元素对用户上传的视频进行抽帧,从而通过前端抽帧方案可以让用户在几秒钟内获取抽帧结果,相比现有技术中需要先上传服务器进行抽帧的方案,抽帧速度大大提升,改善用户体验,同时减少了后端取帧服务50%以上的压力;另外,现有技术中用户将视频上传至服务器进行抽帧通常会对视频文件进行压缩,因而抽帧取出的图片是基于压缩后的视频,图片质量是有损的,相比而言,本发明实施例是基于原始的视频文件利用前端快速抽帧,最大限度的保证了图片的质量。
实施例二
图2为本发明实施例二中提供的一种视频抽帧方法的流程图,本实施例是在上述实施例的基础上对视频抽帧方法做出进一步优化。如图2所示,所述视频抽帧方法包括:
S210、通过浏览器获取待抽帧的目标视频。
S220、通过浏览器的脚本语言中视频对象提供的特定方法,提取目标视频的原始宽度和原始高度。
其中,脚本语言是一种编程语言,用来控制软件应用程序,脚本通常以文本(如ASCII)保存,只在被调用时进行解释或编译。示例性的,Web应用程序的脚本,包括:JavaScript、VBScript、Perl、PHP、Python、Ruby等脚本语言。不同系统的电子设备中的浏览器或不同浏览器可能使用不同的脚本语言,在脚本语言中运行的一些视频对象可以提供一定的属性和功能,如Video对象(HTML<video>元素)。示例性的,JavaScript脚本语言中的video对象可以提供某些功能或属性,如video.videoWidth可以设置或返回视频的宽度(width)属性的值,video.videoHeight可以设置或返回视频的高度(height)属性的值,video.videoDuration可以设置返回视频的长度(以秒计)。本发明实施例中可以基于video.videoWidth和video.videoHeight方法提取视频原始高度和原始宽度,即目标视频文件的实际宽度和高度。
S230、依据所述原始宽度和原始高度创建大小相应的画布。
在提取到目标视频的的原始宽度和高度后,可以创建尺寸大小匹配的画布,用于在该画布上进行图像的绘制,包括在画布上绘制文本、线条或各种颜色和亮度的图形等。示例性的,可以使得创建画布的宽高与目标视频的原始宽高一致,从而最大程度保留视频原始图像的效果,保证抽取的图片质量。
S240、调用浏览器支持的视频处理元素依据所述画布对目标视频进行抽帧,得到预设数量的图片,使所述图片的大小与所述原始宽度和原始高度相匹配。
具体的,可以调用浏览器支持的视频处理元素canvas将抽取的视频帧绘制到画布上,以得到预设数量的图片。示例性的,可以利用canvas中提供的drawImage方法在对应的画布上绘制得到相应图片,由于画布是与目标视频的原始高度和宽度匹配的,因此在画布上绘制得到的图片尺寸与目标视频的原始宽度和高度匹配。于是,不仅在前端实现快速抽帧,而且可以基于原始的视频文件,并且保证抽取图片的宽高也是目标视频的实际宽高,从而最大限度的保证了抽取图片的质量。
可选的,所述方法还包括:
如果提取不到所述原始宽度和原始高度,则将目标视频上传到服务器,通过服务器上的后台抽帧服务进行抽帧。
对于前端不能进行抽帧操作的视频可以上传至后台服务器进行抽帧,以保证用户的后续选图或其他操作。例如,某些视频是只有声音没有画面图像,因此获取不到视频的原始宽度和高度,这种情况下,可以将目标视频上传至后台服务器中进行抽帧操作。
本实施例的技术方案,通过浏览器的脚本语言中视频对象提供的特定方法,提取目标视频的原始宽度和原始高度;依据所述原始宽度和原始高度创建大小相应的画布;调用浏览器支持的视频处理元素绘制到大小与所述原始宽度和原始高度相匹配的预设数量的图片。利用前端浏览器的功能进行抽帧,且图片与原始视频的尺寸大小相同,使得抽帧图片质量更好,抽帧速度快,满足用户需求。
实施例三
图3是本发明实施例三中提供的一种视频抽帧方法的流程图,本实施例是在上述实施例的基础上对视频抽帧方法做出进一步优化。如图3所示,所述视频抽帧方法包括:
S310、通过浏览器获取待抽帧的目标视频。
S320、获取目标视频的视频时长,并依据所述预设数量和视频时长计算出每次抽帧的视频跳转时长。
在获取到目标视频时,可以利用特定的工具和方法得到该目标视频的时长,比如可以利用浏览器支持的Video对象中提供的特定方法获取,如利用video.videoDuration方法可以设置返回视频的长度(以秒计)。进一步,可以依据预设数量和视频时长计算出每次抽帧的视频跳转时长,视频跳转时长可以是针对目标视频抽取的某一帧图像与下一帧图像的视频间隔时间。例如,目标视频时长为600s,预设数量为30张,即需要从600s的目标视频平均分成30份(均匀获取30帧),每一次抽帧的视频跳转时长即为20s,可以分别在目标视频的第0s、20s、40s……处进行抽帧。
S330、通过浏览器的脚本语言中视频对象提供的特定函数按照所述视频跳转时长依次进行视频跳转。
其中,浏览器的脚本语言中视频对象提供的特定函数可以是Video对象提供的setTimeout函数,setTimeout()方法用于在指定的毫秒数后调用函数或计算表达式。其中,可以通过currentTime属性设置或返回音频/视频播放的当前位置(以秒计)。示例性的,在视频播放位置跳转后,可以使用Video对象的currentTime属性来显示当前的播放位置。该setTimeout的执行间隔可以根据运行浏览器电子设备的系统性能设定。例如,采用setTimeout的方式可以设置每隔100ms执行一次设置视频的currentTime,即浏览器需要每100ms进行一次视频跳转的操作。
S340、每当监听到所述特定函数完成一次跳转,则调用浏览器支持的视频处理元素中提供的绘制接口,依据当前跳转到的时刻所对应的视频帧进行绘制,得到相应的图片,以完成对目标视频进行抽帧。
具体的,监听特定函数可以确定对目标视频的跳转是否完成,即是否跳转到下一个新的视频播放位置currentTime。示例性的,可以通过监听video.onseeked函数,具体可以在视频/音频(audio/video)的播放位置跳转后触发并确定完成一次跳转。在一次跳转完成后,可以调用浏览器支持的视频处理元素中canvas提供的绘制接口drawImage方法,依据当前跳转到的时刻所对应的视频帧进行绘制,得到相应的图片,以完成对目标视频进行抽帧。示例性的,如果目标视频的第30s处的视频跳转完成,则可以对Video对象(即要抽帧的视频图像)执行drawImage方法,绘制该视频帧得到相应的图片。
可选的,对于每一次抽帧,监听所述特定函数以及调用所述绘制接口进行绘制的相关操作,是基于创建的承诺对象完成的,其中,所述承诺对象是浏览器的脚本语言中提供的对象。
值得注意的是,setTimeout是一个宏任务,在浏览器的执行规则中,当主线程有其他任务时,setTimeout的执行时间就会延后,极端情况下,可能出现就不执行的情况,导致出现丢帧的现象。为了解决这个问题,在本发明实施例中对于每一次抽帧可以基于创建的承诺对象完成。其中,承诺对象即Promise对象,可以采用Promise来进行循环依赖控制。具体的,当一个抽帧结束后,通过设置一个视频的currentTime,然后创建一个Promise。在Promise中,可以监听video.onseeked函数确定是否完成正常跳转,如果完成跳转,则可以通过Promise中的Resolve函数返回抽帧结果数据。如果没有返回抽帧结果数据则可以视为抽帧失败。其中,Resolve函数是Promise对象中提供的方法,用于返回结果。示例性的,可以采用Promise对象结合canvas元素进行视频抽帧,以保证抽帧的效率,应用该方案可以实现在3秒内完成一个2G视频的抽帧(30帧),并且不出现丢帧的情况。
本实施例的技术方案,通过浏览器的脚本语言中视频对象提供的特定函数按照所述视频跳转时长依次进行视频跳转;每当监听到所述特定函数完成一次跳转,则调用浏览器支持的视频处理元素中提供的绘制接口,依据当前跳转到的时刻所对应的视频帧进行绘制得到相应的图片。其中,通过监听特定的函数确定是否完成跳转,避免了由于浏览器性能以及其他任务执行等造成的抽帧过程中视频跳转停止,而出现的降低抽帧效率的问题。同时通过Promise对象可以及时返回抽帧结果,进一步提高抽帧效率,避免丢帧的问题。
实施例四
图4是本发明实施例四提供的一种视频抽帧装置的结构示意图,如图4所示,该装置可以采用硬件和/或软件的形式实现,并可以配置于电子设备中,该装置包括:
目标视频获取模块410,用于通过浏览器获取待抽帧的目标视频;
目标视频抽帧模块420,用于调用浏览器支持的视频处理元素对目标视频进行抽帧,得到预设数量的图片。
可选的,所述视频处理元素为canvas。
可选的,所述目标视频抽帧模块420,包括:
视频尺寸获取单元,用于通过浏览器的脚本语言中视频对象提供的特定方法,提取目标视频的原始宽度和原始高度;
画布创建单元,用于依据所述原始宽度和原始高度创建大小相应的画布;
视频抽帧单元,用于调用浏览器支持的视频处理元素依据所述画布对目标视频进行抽帧,得到预设数量的图片,使所述图片的大小与所述原始宽度和原始高度相匹配。
可选的,所述装置还包括:
后台抽帧发送模块,用于在所述视频尺寸获取单元提取不到所述原始宽度和原始高度时,则将目标视频上传到服务器,通过服务器上的后台抽帧服务进行抽帧。
可选的,所述目标视频抽帧模块420,包括:
跳转时长计算单元,用于获取目标视频的视频时长,并依据所述预设数量和视频时长计算出每次抽帧的视频跳转时长;
视频跳转单元,用于通过浏览器的脚本语言中视频对象提供的特定函数按照所述视频跳转时长依次进行视频跳转;
图片绘制单元,用于每当监听到所述特定函数完成一次跳转,则调用浏览器支持的视频处理元素中提供的绘制接口,依据当前跳转到的时刻所对应的视频帧进行绘制,得到相应的图片,以完成对目标视频进行抽帧。
可选的,所述图片绘制单元,对于每一次抽帧,监听所述特定函数以及调用所述绘制接口进行绘制的相关操作,是基于创建的承诺对象完成的,其中,所述承诺对象是浏览器的脚本语言中提供的对象。
可选的,所述装置还包括:
图片返回模块,用于在所述目标视频抽帧模块得到预设数量的图片之后,将所述预设数量的图片作为目标视频的候选封面图片返回至浏览器进行显示。
本发明实施例所提供的一种视频抽帧装置,可执行本发明任意实施例所提供的一种视频抽帧方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的一种视频抽帧方法。
实施例五
参见图5,本实施例提供了一种电子设备500,其包括:一个或多个处理器520;存储装置510,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器520执行,使得所述一个或多个处理器520实现本发明实施例所提供的一种视频抽帧方法,所述方法包括:
通过浏览器获取待抽帧的目标视频;
调用浏览器支持的视频处理元素对目标视频进行抽帧,得到预设数量的图片。
当然,本领域技术人员可以理解,处理器520还可以实现本发明任意实施例所提供的一种视频抽帧方法的技术方案。
图5显示的电子设备500仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,电子设备500以通用计算设备的形式表现。电子设备500的组件可以包括但不限于:一个或者多个处理器520,存储装置510,连接不同系统组件(包括存储装置510和处理器520)的总线550。
总线550表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备500典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备500访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储装置510可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)511和/或高速缓存存储器512。电子设备500可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统513可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线550相连。存储装置510可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块515的程序/实用工具514,可以存储在例如存储装置510中,这样的程序模块515包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块515通常执行本发明所描述的任意实施例中的功能和/或方法。
电子设备500也可以与一个或多个外部设备50(例如键盘、指向设备、显示器570等)通信,还可与一个或者多个使得用户能与该电子设备500交互的设备通信,和/或与使得该电子设备500能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口530进行。并且,电子设备500还可以通过网络适配器540与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图5所示,网络适配器540通过总线550与电子设备500的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理器520通过运行存储在存储装置510中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的一种视频抽帧方法。
实施例六
本实施例提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种视频抽帧方法,该方法包括:
通过浏览器获取待抽帧的目标视频;
调用浏览器支持的视频处理元素对目标视频进行抽帧,得到预设数量的图片。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的一种视频抽帧方法中的相关操作。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (16)

1.一种视频抽帧方法,其特征在于,所述方法包括:
通过浏览器获取待抽帧的目标视频;
调用浏览器支持的视频处理元素对目标视频进行抽帧,得到预设数量的图片。
2.根据权利要求1所述的方法,其特征在于,所述视频处理元素为canvas。
3.根据权利要求1或2所述的方法,其特征在于,调用浏览器支持的视频处理元素对目标视频进行抽帧,得到预设数量的图片,包括:
通过浏览器的脚本语言中视频对象提供的特定方法,提取目标视频的原始宽度和原始高度;
依据所述原始宽度和原始高度创建大小相应的画布;
调用浏览器支持的视频处理元素依据所述画布对目标视频进行抽帧,得到预设数量的图片,使所述图片的大小与所述原始宽度和原始高度相匹配。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
如果提取不到所述原始宽度和原始高度,则将目标视频上传到服务器,通过服务器上的后台抽帧服务进行抽帧。
5.根据权利要求1或2所述的方法,其特征在于,调用浏览器支持的视频处理元素对目标视频进行抽帧,得到预设数量的图片,包括:
获取目标视频的视频时长,并依据所述预设数量和视频时长计算出每次抽帧的视频跳转时长;
通过浏览器的脚本语言中视频对象提供的特定函数按照所述视频跳转时长依次进行视频跳转;
每当监听到所述特定函数完成一次跳转,则调用浏览器支持的视频处理元素中提供的绘制接口,依据当前跳转到的时刻所对应的视频帧进行绘制,得到相应的图片,以完成对目标视频进行抽帧。
6.根据权利要求5所述的方法,其特征在于,对于每一次抽帧,监听所述特定函数以及调用所述绘制接口进行绘制的相关操作,是基于创建的承诺对象完成的,其中,所述承诺对象是浏览器的脚本语言中提供的对象。
7.根据权利要求1或2所述的方法,其特征在于,调用当前浏览器支持的视频处理元素对目标视频进行抽帧,得到预设数量的图片之后,所述方法还包括:
将所述预设数量的图片作为目标视频的候选封面图片返回至浏览器进行显示。
8.一种视频抽帧装置,其特征在于,所述装置包括:
目标视频获取模块,用于通过浏览器获取待抽帧的目标视频;
目标视频抽帧模块,用于调用浏览器支持的视频处理元素对目标视频进行抽帧,得到预设数量的图片。
9.根据权利要求8所述的装置,其特征在于,所述视频处理元素为canvas。
10.根据权利要求8或9所述的装置,其特征在于,所述目标视频抽帧模块,包括:
视频尺寸获取单元,用于通过浏览器的脚本语言中视频对象提供的特定方法,提取目标视频的原始宽度和原始高度;
画布创建单元,用于依据所述原始宽度和原始高度创建大小相应的画布;
视频抽帧单元,用于调用浏览器支持的视频处理元素依据所述画布对目标视频进行抽帧,得到预设数量的图片,使所述图片的大小与所述原始宽度和原始高度相匹配。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
后台抽帧发送模块,用于在所述视频尺寸获取单元提取不到所述原始宽度和原始高度时,则将目标视频上传到服务器,通过服务器上的后台抽帧服务进行抽帧。
12.根据权利要求8或9所述的装置,其特征在于,所述目标视频抽帧模块,包括:
跳转时长计算单元,用于获取目标视频的视频时长,并依据所述预设数量和视频时长计算出每次抽帧的视频跳转时长;
视频跳转单元,用于通过浏览器的脚本语言中视频对象提供的特定函数按照所述视频跳转时长依次进行视频跳转;
图片绘制单元,用于每当监听到所述特定函数完成一次跳转,则调用浏览器支持的视频处理元素中提供的绘制接口,依据当前跳转到的时刻所对应的视频帧进行绘制,得到相应的图片,以完成对目标视频进行抽帧。
13.根据权利要求12所述的装置,其特征在于,所述图片绘制单元,对于每一次抽帧,监听所述特定函数以及调用所述绘制接口进行绘制的相关操作,是基于创建的承诺对象完成的,其中,所述承诺对象是浏览器的脚本语言中提供的对象。
14.根据权利要求8或9所述的装置,其特征在于,所述装置还包括:
图片返回模块,用于在所述目标视频抽帧模块得到预设数量的图片之后,将所述预设数量的图片作为目标视频的候选封面图片返回至浏览器进行显示。
15.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的一种视频抽帧方法。
16.一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7中任一所述的一种视频抽帧方法。
CN201811595536.7A 2018-12-25 2018-12-25 一种视频抽帧方法、装置、电子设备和存储介质 Pending CN109672902A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811595536.7A CN109672902A (zh) 2018-12-25 2018-12-25 一种视频抽帧方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811595536.7A CN109672902A (zh) 2018-12-25 2018-12-25 一种视频抽帧方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN109672902A true CN109672902A (zh) 2019-04-23

Family

ID=66146261

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811595536.7A Pending CN109672902A (zh) 2018-12-25 2018-12-25 一种视频抽帧方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN109672902A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110300325A (zh) * 2019-08-06 2019-10-01 北京字节跳动网络技术有限公司 视频的处理方法、装置、电子设备及计算机可读存储介质
CN110784644A (zh) * 2019-08-26 2020-02-11 腾讯科技(深圳)有限公司 图像处理方法及装置
CN110889012A (zh) * 2019-11-26 2020-03-17 成都品果科技有限公司 一种基于抽帧图片生成空镜标签系统的方法
CN111970561A (zh) * 2020-08-11 2020-11-20 北京达佳互联信息技术有限公司 视频封面生成方法、系统、装置及电子设备
CN112738418A (zh) * 2020-12-25 2021-04-30 北京百度网讯科技有限公司 视频获取方法、装置以及电子设备
WO2021227531A1 (zh) * 2020-05-15 2021-11-18 上海哔哩哔哩科技有限公司 基于浏览器的封面生成方法和系统
CN113766322A (zh) * 2021-01-18 2021-12-07 北京京东拓先科技有限公司 一种图像获取方法、装置、电子设备和存储介质
CN114339400A (zh) * 2021-12-28 2022-04-12 上海众源网络有限公司 一种视频抽帧方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103430123A (zh) * 2010-12-10 2013-12-04 韦斯技术有限公司 用于经由支持2d画布和动态绘图的html来进行远程桌面会话的方法和系统
US20160260228A1 (en) * 2013-10-31 2016-09-08 Uc Mobile Co., Ltd. Methods and devices for image loading and methods and devices for video playback
CN106384388A (zh) * 2016-09-20 2017-02-08 福州大学 基于html5和增强现实技术的互联网眼镜实时试戴方法及系统
CN106997348A (zh) * 2016-01-22 2017-08-01 腾讯科技(深圳)有限公司 一种数据绘制方法和装置
CN107483972A (zh) * 2017-07-24 2017-12-15 平安科技(深圳)有限公司 一种音视频的直播处理方法、存储介质和一种移动终端

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103430123A (zh) * 2010-12-10 2013-12-04 韦斯技术有限公司 用于经由支持2d画布和动态绘图的html来进行远程桌面会话的方法和系统
US20160260228A1 (en) * 2013-10-31 2016-09-08 Uc Mobile Co., Ltd. Methods and devices for image loading and methods and devices for video playback
CN106997348A (zh) * 2016-01-22 2017-08-01 腾讯科技(深圳)有限公司 一种数据绘制方法和装置
CN106384388A (zh) * 2016-09-20 2017-02-08 福州大学 基于html5和增强现实技术的互联网眼镜实时试戴方法及系统
CN107483972A (zh) * 2017-07-24 2017-12-15 平安科技(深圳)有限公司 一种音视频的直播处理方法、存储介质和一种移动终端

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
匿名: "Extract frames from video in JS", 《网址:HTTPS://STACKOVERFLOW.COM/QUESTIONS/44297164/EXTRACT-FRAMES-FROM-VIDEO-IN-JS》 *
匿名: "JavaScript: Extract video frames reliably", 《网址:HTTPS://STACKOVERFLOW.COM/QUESTIONS/32699721/JAVASCRIPT-EXTRACT-VIDEO-FRAMES-RELIABLY》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110300325A (zh) * 2019-08-06 2019-10-01 北京字节跳动网络技术有限公司 视频的处理方法、装置、电子设备及计算机可读存储介质
CN110784644A (zh) * 2019-08-26 2020-02-11 腾讯科技(深圳)有限公司 图像处理方法及装置
CN110889012A (zh) * 2019-11-26 2020-03-17 成都品果科技有限公司 一种基于抽帧图片生成空镜标签系统的方法
WO2021227531A1 (zh) * 2020-05-15 2021-11-18 上海哔哩哔哩科技有限公司 基于浏览器的封面生成方法和系统
CN111970561A (zh) * 2020-08-11 2020-11-20 北京达佳互联信息技术有限公司 视频封面生成方法、系统、装置及电子设备
CN111970561B (zh) * 2020-08-11 2022-07-22 北京达佳互联信息技术有限公司 视频封面生成方法、系统、装置、电子设备及存储介质
CN112738418A (zh) * 2020-12-25 2021-04-30 北京百度网讯科技有限公司 视频获取方法、装置以及电子设备
CN113766322A (zh) * 2021-01-18 2021-12-07 北京京东拓先科技有限公司 一种图像获取方法、装置、电子设备和存储介质
CN114339400A (zh) * 2021-12-28 2022-04-12 上海众源网络有限公司 一种视频抽帧方法、装置、电子设备及存储介质
CN114339400B (zh) * 2021-12-28 2024-02-02 上海众源网络有限公司 一种视频抽帧方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN109672902A (zh) 一种视频抽帧方法、装置、电子设备和存储介质
TWI776066B (zh) 圖片生成方法、裝置、終端、伺服器及儲存媒體
CN108010112B (zh) 动画处理方法、装置及存储介质
CN111669623B (zh) 视频特效的处理方法、装置以及电子设备
US20150039996A1 (en) System and method for dynamically converting webpage, and computer-readable recording medium
CN102932679A (zh) 一种网络视频预览系统和方法
CN111629253A (zh) 视频处理方法及装置、计算机可读存储介质、电子设备
US20170324998A1 (en) Method for playing video, client, and computer storage medium
CN103995738A (zh) 终端装置、服务器、终端装置浏览器操作系统和方法
CN110012358B (zh) 审片信息处理方法、装置
US20190371023A1 (en) Method and apparatus for generating multimedia content, and device therefor
WO2020220773A1 (zh) 图片预览信息的显示方法、装置、电子设备及计算机可读存储介质
US20180143741A1 (en) Intelligent graphical feature generation for user content
CN107318038B (zh) 一种视频播放与评论同步的方法、终端设备以及存储介质
CN112055254B (zh) 视频播放的方法、装置、终端及存储介质
US11941728B2 (en) Previewing method and apparatus for effect application, and device, and storage medium
CN105578224A (zh) 一种多媒体数据的获取方法、装置、智能电视及机顶盒
CN105760420A (zh) 实现与多媒体文件内容互动的方法及装置
CN111787188B (zh) 视频播放方法、装置、终端设备及存储介质
CN109640019B (zh) 一种通过移动终端录制编辑长视频的方法
CN113744377A (zh) 一种动画处理系统、方法、装置、设备及介质
CN106331553B (zh) 一种存储视频的方法、装置及电子设备
WO2023024803A1 (zh) 动态封面生成方法、装置、电子设备、介质及程序产品
WO2014024255A1 (ja) 端末および動画再生プログラム
CN110189388B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190423

RJ01 Rejection of invention patent application after publication