一种视频生成方法、装置及移动终端
技术领域
本发明涉及互联网技术领域,特别涉及一种视频生成方法、装置及移动终端。
背景技术
随着互联网技术的不断发展,用户对互联网的使用方式逐渐从下载为主转换为下载与上传并重,在诸如智能手机、平板电脑和智能相机等移动终端中,用户会利用上述移动终端自带的摄像头进行拍摄并生成视频,进而上传至网络平台与他人共享。
在现有的视频生成方法中,绝大多数是需要用户对移动终端界面中的拍摄按钮进行持续按压,在按压状态保持的期间进行视频的拍摄,当用户松开对拍摄按钮的按压后,拍摄暂停并生成视频。然而,长时间的按压拍摄按钮来进行视频录制,所得到的视频一般时间较长且包含数据较多,在后期合成上不便处理,而且此类常规的按压操作难以激发用户的拍摄兴趣,不能提升用户体验。因此,需要提出一种新的视频生成的技术方案,从而针对性解决上述问题。
发明内容
为此,本发明提供一种视频生成的方案,以力图解决或者至少缓解上面存在的问题。
根据本发明的一个方面,提供一种视频生成方法,适于在移动终端中执行,该方法包括如下步骤:首先,启动摄像头开始拍摄视频;响应用户对拍摄按钮的操作事件;若所述操作事件为点击事件,则以响应所述点击事件的时刻为起算时间点,将所述起算时间点之前预拍摄时长和之后预设的第一拍摄时长内所拍摄的视频进行缓存;若所述操作事件为长按事件,则以响应所述长按事件的时刻为起算时间点,将所述起算时间点之前预拍摄时长和之后第二拍摄时长内所拍摄的视频进行缓存;获取用户对已缓存视频的选择;按照选择的先后顺序将所述已缓存视频进行合成,以生成新的视频。
可选地,在根据本发明的视频生成方法中,还包括:判断用户对拍摄按钮的操作事件是点击事件还是长按事件。
可选地,在根据本发明的视频生成方法中,判断用户对拍摄按钮的操作事件是点击事件还是长按事件包括:获取用户对拍摄按钮的操作事件的持续时长;若所述持续时长不大于预设的第一时间阈值,则判断所述操作事件为点击事件;若所述持续时长大于预设的第一时间阈值,则判断所述操作事件为长按事件。
可选地,在根据本发明的视频生成方法中,第二拍摄时长为所述长按事件的持续时长。
可选地,在根据本发明的视频生成方法中,将所述起算时间点之前预拍摄时长和之后第二拍摄时长内所拍摄的视频进行缓存包括:判断所述第二拍摄时长是否大于预设的第二时间阈值;如果所述第二拍摄时长大于预设的第二时间阈值,则将所述起算时间点之前预拍摄时长和之后第二时间阈值内所拍摄的视频进行缓存;如果所述第二拍摄时长不大于预设的第二时间阈值,则将所述起算时间点之前预拍摄时长和之后第二拍摄时长内所拍摄的视频进行缓存。
可选地,在根据本发明的视频生成方法中,还包括:判断用户选择的已缓存视频中是否存在响应所述长按事件所缓存的视频。
可选地,在根据本发明的视频生成方法中,还包括:若用户选择的已缓存视频中存在响应所述长按事件所缓存的视频,则以预设的第一拍摄时长为划分时间单元,将所述缓存的视频依次划分为多个视频片段;若最后一个视频片段的时长不大于预设的第三时间阈值,则将最后一个视频片段组合到其前一个视频片段中。
可选地,在根据本发明的视频生成方法中,预设的第三时间阈值为预设的第一时间阈值的一半。
根据本发明的又一个方面,提供一种视频生成装置,适于驻留在移动终端中,该装置包括拍摄模块、响应模块、缓存模块、获取模块和生成模块。其中,拍摄模块适于启动摄像头开始拍摄视频;响应模块适于响应用户对拍摄按钮的操作事件;缓存模块适于当所述操作事件为点击事件时,以响应所述点击事件的时刻为起算时间点,将所述起算时间点之前预拍摄时长和之后预设的第一拍摄时长内所拍摄的视频进行缓存,当所述操作事件为长按事件时,以响应所述长按事件的时刻为起算时间点,将所述起算时间点之前预拍摄时长和之后第二拍摄时长内所拍摄的视频进行缓存;获取模块适于获取用户对已缓存视频的选择;生成模块适于按照选择的先后顺序将所述已缓存视频进行合成,以生成新的视频。
可选地,在根据本发明的视频生成装置中,还包括第一判断模块,适于判断用户对拍摄按钮的操作事件是点击事件还是长按事件。
可选地,在根据本发明的视频生成装置中,第一判断模块进一步适于:获取用户对拍摄按钮的操作事件的持续时长;当所述持续时长不大于预设的第一时间阈值时,判断所述操作事件为点击事件;当所述持续时长大于预设的第一时间阈值时,判断所述操作事件为长按事件。
可选地,在根据本发明的视频生成装置中,第二拍摄时长为所述长按事件的持续时长。
可选地,在根据本发明的视频生成装置中,缓存模块进一步适于:当所述操作事件为长按事件时,判断所述第二拍摄时长是否大于预设的第二时间阈值;当所述第二拍摄时长大于预设的第二时间阈值时,将所述起算时间点之前预拍摄时长和之后第二时间阈值内所拍摄的视频进行缓存;当所述第二拍摄时长不大于预设的第二时间阈值时,将所述起算时间点之前预拍摄时长和之后第二拍摄时长内所拍摄的视频进行缓存。
可选地,在根据本发明的视频生成装置中,还包括第二判断模块,适于判断用户选择的已缓存视频中是否存在响应所述长按事件所缓存的视频。
可选地,在根据本发明的视频生成装置中,还包括划分模块,适于:
当用户选择的已缓存视频中存在响应所述长按事件所缓存的视频时,以预设的第一拍摄时长为划分时间单元,将所述缓存的视频依次划分为多个视频片段;当最后一个视频片段的时长不大于预设的第三时间阈值时,将最后一个视频片段组合到其前一个视频片段中。
可选地,在根据本发明的视频生成装置中,预设的第三时间阈值为预设的第一时间阈值的一半。
根据本发明的又一个方面,还提供一种移动终端,包括根据本发明的视频生成装置。
根据本发明的视频生成的技术方案,首先启动摄像头开始拍摄视频,响应用户对拍摄按钮的操作事件,对操作事件为点击事件还是长按事件这两种情况采取不同的缓存处理,按照用户对已缓存视频的选择顺序将其合成以生成新的视频。在上述技术方案中,对点击事件和长按事件这两种不同类型的操作事件进行区别处理,在缓存响应操作事件所拍摄的视频时均采取了时长控制,避免产生过长时间的视频带来后期合成上的处理难题,同时由于可通过点击拍摄按钮来实现视频拍摄,可不用持续按压从而解放了手指,极大提高了用户的使用兴趣和个人体验度。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明的一个实施例的移动终端100的示意图;
图2示出了根据本发明一个实施例的视频生成方法200的流程图;以及
图3示出了根据本发明一个实施例的视频生成装置300的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1是移动终端100的结构框图。移动终端100可以包括存储器接口102、一个或多个数据处理器、图像处理器和/或中央处理单元104,以及外围接口106。
存储器接口102、一个或多个处理器104和/或外围接口106既可以是分立元件,也可以集成在一个或多个集成电路中。在移动终端100中,各种元件可以通过一条或多条通信总线或信号线来耦合。传感器、设备和子系统可以耦合到外围接口106,以便帮助实现多种功能。
例如,运动传感器110、光线传感器112和距离传感器114可以耦合到外围接口106,以方便定向、照明和测距等功能。其他传感器116同样可以与外围接口106相连,例如定位系统(例如GPS接收机)、温度传感器、生物测定传感器或其他感测设备,由此可以帮助实施相关的功能。
相机子系统120和光学传感器122可以用于方便诸如记录照片和视频剪辑的相机功能的实现,其中所述相机子系统和光学传感器例如可以是电荷耦合器件(CCD)或互补金属氧化物半导体(厘米OS)光学传感器。可以通过一个或多个无线通信子系统124来帮助实现通信功能,其中无线通信子系统可以包括射频接收机和发射机和/或光(例如红外)接收机和发射机。无线通信子系统124的特定设计和实施方式可以取决于移动终端100所支持的一个或多个通信网络。例如,移动终端100可以包括被设计成支持LTE、3G、GSM网络、GPRS网络、EDGE网络、Wi-Fi或WiMax网络以及BlueboothTM网络的通信子系统124。
音频子系统126可以与扬声器128以及麦克风130相耦合,以便帮助实施启用语音的功能,例如语音识别、语音复制、数字记录和电话功能。I/O子系统140可以包括触摸屏控制器142和/或一个或多个其他输入控制器144。触摸屏控制器142可以耦合到触摸屏146。举例来说,该触摸屏146和触摸屏控制器142可以使用多种触摸感测技术中的任何一种来检测与之进行的接触和移动或是暂停,其中感测技术包括但不局限于电容性、电阻性、红外和表面声波技术。一个或多个其他输入控制器144可以耦合到其他输入/控制设备148,例如一个或多个按钮、摇杆开关、拇指旋轮、红外端口、USB端口、和/或指示笔之类的指点设备。所述一个或多个按钮(未显示)可以包括用于控制扬声器128和/或麦克风130音量的向上/向下按钮。
存储器接口102可以与存储器150相耦合。该存储器150可以包括高速随机存取存储器和/或非易失性存储器,例如一个或多个磁盘存储设备,一个或多个光学存储设备,和/或闪存存储器(例如NAND,NOR)。存储器150可以存储操作系统172,例如Android、iOS或是Windows Phone之类的操作系统。该操作系统172可以包括用于处理基本系统服务以及执行依赖于硬件的任务的指令。存储器150还可以存储应用174。在移动设备运行时,会从存储器150中加载操作系统172,并且由处理器104执行。应用174在运行时,也会从存储器150中加载,并由处理器104执行。应用174运行在操作系统之上,利用操作系统以及底层硬件提供的接口实现各种用户期望的功能,如即时通信、网页浏览、图片管理等。应用174可以是独立于操作系统提供的,也可以是操作系统自带的。另外,应用174被安装到移动终端100中时,也可以向操作系统添加驱动模块。在上述各种应用174中,其中的一种应用为根据本发明的视频生成装置300。
图2示出了根据本发明一个实施例的视频生成方法200的流程图。视频生成方法200适于在移动终端(例如图1所示的移动终端100)中执行。
如图2所示,方法200始于步骤S210。在步骤S210中,启动摄像头开始拍摄视频。在本实施例中,视频拍摄的帧率为30fps,其中帧率是用于测量显示帧数的量度,以每秒显示帧数(Frames per Second)来衡量。
随后,进入步骤S220,响应用户对拍摄按钮的操作事件。而当移动终端接收到用户对拍摄按钮的操作事件后,在响应该操作事件之前,判断该操作事件是点击事件还是长按事件。具体地,获取用户对拍摄按钮的操作事件的持续时长,若持续时长不大于预设的第一时间阈值,则判断操作事件为点击事件,若持续时长大于预设的第一时间阈值,则判断操作事件为长按事件。在本实施例中,第一时间阈值预设为0.75秒,若用户对拍摄按钮的操作事件的持续时间不大于0.75秒,则判断当前待响应的操作事件为点击事件,若用户对拍摄按钮的操作事件的持续时间大于0.75秒,则判断当前待响应的操作事件为长按事件。此时,获取到的操作事件的持续时长为0.5秒,判断该操作事件为点击事件。
在步骤S230中,若操作事件为点击事件,则以响应点击事件的时刻为起算时间点,将起算时间点之前预拍摄时长和之后预设的第一拍摄时长内所拍摄的视频进行缓存。在本实施例中,预拍摄时长为0.5秒,第一拍摄时长预设为1秒,以响应点击事件的时刻为起算时间点,将起算时间点之前0.5秒和之后1秒内所拍摄的视频进行缓存,则点击事件对应的已缓存视频的时长共计1.5秒。换言之,当用户进入拍摄界面后,摄像头就会立刻自动开启并保持这一状态,因此在响应点击事件之前,实际上一直在进行视频拍摄,只是暂不缓存,而是等待接收到用户对拍摄按钮的单击事件并预备响应时,将响应点击事件的时刻之前0.5秒内的视频作为提前拍摄的内容,和响应点击事件的时刻之后1秒内的视频一同缓存。同时,对于响应点击事件得到的缓存视频而言,为便于向用户展现,可采用动态图片的形式进行表现。对响应点击事件而缓存的视频而言,先进行取帧处理,即根据帧率和取帧时间点,将该视频中符合取帧时间点的图像帧取出,再按时间上的先后顺序组合成动态图片。以一个时长为1.5秒的点击事件对应的已缓存视频为例,将其中第0.5秒、0.6秒、0.7秒、0.8秒和0.9秒处的图像帧取出,由于帧率是30fps,则1.5秒的视频包括45帧图像,因此上述取帧时间点对应的帧序号依次为第15帧、第18帧、第21帧、第24帧和第27帧,将这5帧图像按时间上的先后顺序进行组合,得到了用于向用户展示的动态图片。
在步骤S240中,若操作事件为长按事件,则以响应长按事件的时刻为起算时间点,将起算时间点之前预拍摄时长和之后第二拍摄时长内所拍摄的视频进行缓存。首先,判断第二拍摄时长是否大于预设的第二时间阈值,如果第二拍摄时长大于预设的第二时间阈值,则将起算时间点之前预拍摄时长和之后第二时间阈值内所拍摄的视频进行缓存,如果第二拍摄时长不大于预设的第二时间阈值,则将起算时间点之前预拍摄时长和之后第二拍摄时长内所拍摄的视频进行缓存。其中,第二拍摄时长为长按事件的持续时长。在本实施例中,第二时间阈值预设为11.5秒。此时,用户再次对拍摄按钮进行操作,移动终端在判断该操作事件为长按事件后进行响应。首先,判断第二拍摄时长是否大于11.5秒,以响应长按事件的时刻为起算时间点,如果第二拍摄时长大于11.5秒,则将起算时间点之前1.5秒和之后11.5秒内所拍摄的视频进行缓存,长按事件对应的已缓存视频的时长共计12秒,实际上就长按事件对应的已缓存视频而言,其最长时长即为12秒。如果第二拍摄时长不大于11.5秒,则将起算时间点之前0.5秒和之后第二拍摄时长内所拍摄的视频进行缓存。而本实施例里的第二拍摄时长为9.1秒,不大于预设的第二时间阈值11.5秒,则将起算时间点之前1.5秒和之后9.1秒内所拍摄的视频进行缓存,长按事件对应的已缓存视频的时长共计9.6秒。关键性代码如下所示:
private void pushVideoModel(){
mTempDataModel.duration=mEndTime-mStartTime-mTempDataModel.
startTime;
final NPAVideoDataModel tempModel=mTempDataModel.appendVideo
Segment();
tempModel.copyRecordInfo(mTempDataModel);
mTempDataModel.startTime+=mTempDataModel.duration;
mTempDataModel.paIndex=-1;
mTempDataModel.frameCounts=0;
……
Runnable task=new Runnable(){
public void run(){
Bitmap bitmap=null;
for(int i=tempGIFPicBuffer.size()-1;i>=0;--i){
VideoFrameData d=tempGIFPicBuffer.get(i);
bitmap=scaleAndRotateNV21Image(null,d.width,d.height,NPAVideo
Const.kNPAGIFWidth,NPAVideoConst.kNPAGIFHeight,d.rotate,d.d
ata.getHandle());
d.data.Unref();
tempModel.writeGIFPics(bitmap,i);
}
Bitmap paBmp=null;
if(tempPaPic!=null){
paBmp=scaleAndRotateNV21Image(null,tempPaPic.width,tempPa
Pic.height,NPAVideoConst.kNPAGIFWidth,NPAVideoConst.kNPA
GIFHeight,tempPaPic.rotate,tempPaPic.data.getHandle());
tempPaPic.data.Unref();}
tempModel.writePaPic(paBmp);}
};
mMsgLoop.appendTask(task);
}
在步骤S250中,获取用户对已缓存视频的选择。在本实施例中,缓存的视频均存储于相册之中,当获取用户在相册中选取的已缓存的视频时,会同时记录下选取的先后顺序,并且可进行顺序的更改或调换。
在步骤S260中,按照选择的先后顺序将已缓存的视频进行合成,以生成新的视频。而在进行视频合成之前,还需判断用户选择的已缓存视频中是否存在响应长按事件所缓存的视频。若用户选择的已缓存视频中存在响应长按事件所缓存的视频,则以预设的第一拍摄时长为划分时间单元,将缓存的视频依次划分为多个视频片段;若最后一个视频片段的时长不大于预设的第三时间阈值,则将最后一个视频片段组合到其前一个视频片段中。其中,预设的第三时间阈值为预设的第一时间阈值的一半。在本实施例中,用户经过对拍摄按键的多次操作后,在相册中已缓存了多个视频,其中包括多个点击事件对应的已缓存视频,也包括多个长按事件对应的已缓存视频。此时,用户可选择一个或多个点击事件对应的已缓存视频进行合成,也可以选择一个或多个长按事件对应的已缓存视频进行合成,还可以同时选择点击事件对应的已缓存视频和长按事件对应的已缓存视频进行合成。若用户选择的缓存视频中包括长按事件对应的已缓存视频,则需要进行划分处理。以步骤S240中时长为9.6秒的长按事件对应的已缓存视频为例,预设的第一拍摄时长为1.5秒,则对上述9.6秒的视频以1.5秒的划分时间单元进行划分处理,将该视频依次划分成时长为1.5秒、1.5秒、1.5秒、1.5秒、1.5秒、1.5秒和0.6秒的6个视频片段。由于最后一个视频片段的时长仅为0.6秒,而预设的第三时间阈值为预设的第一时间阈值的一半,即第三时间阈值预设为0.75秒,因此最后一个视频片段的时长小于预设的第三时间阈值,此时将最后一个视频片段组合到其前一个视频片段中,因此第5个视频片段变成最后一个视频片段,时长为2.1秒。用户此时先选择了1个1.5秒的点击事件对应的已缓存视频,后选择了上述9.6秒的长按事件对应的已缓存视频,准备对这2个视频进行合成。在实际处理中,为便于视频的合成和后期上传,会对合成后的新视频时长进行限制,这一限制是通过视频片段的数量来实现的。由于点击事件对应的已缓存视频时长为预设的第一拍摄时长,即1.5秒,而长按事件对应的已缓存视频所划分得到的视频片段除最后一个也均为预设的第一拍摄时长,即1.5秒,可将点击事件对应的已缓存视频视为长按事件对应的已缓存视频中的1个视频片段,则上述2个已缓存视频中的视频片段共计7个,而视频片段的总数是限制为不大于9个,因此可对这2个已缓存视频进行合成以生成新的视频,新视频的时长为11.1秒。进一步地,缓存的视频中可包括拍摄时的地理位置、日期等元数据,以便生成新视频时的后期处理。关键性代码如下所示:
private void finishMP4(){
mMsgLoop.appendTask(new Runnable(){
@Override
public void run(){
if(!mTempDataModel.trim()){
EventDelegate.sendEventMsg(new EventTakeNPa(Message.obtain
(null,EventTakeNPa.LOGIC_EVENT_TAKE_NPA_END,-1,0)));
return;
}
mTempDataModel.appendVideoExtensionInfo();
mTempDataModel.moveTo(mCurrDataModel);
mTempDataModel=null;
mCurrDataModel.saveRecordInfoToDisk();
mCurrDataModel.saveToDatabase();
mMP4Manager.unInitCodec();}
});
}
同时,可对生成的新视频中的对象进行贴标签处理,在贴标签的时候对被贴标签区域的对象进行跟踪,从而标签可随对象的运动而运动,提升视频的观赏性和拍摄过程的趣味性。对于用户只选择了点击事件对应的已缓存视频和只选择了长按事件对应的已缓存视频的合成过程与以上类似,此处不予以赘述。
图3示出了根据本发明一个实施例的视频生成装置300的示意图。该装置包括:拍摄模块310、响应模块320、缓存模块330、获取模块340和生成模块350。视频生成装置300还包括第一判断模块、第二判断模块和划分模块(图中均未示出),第一判断模块位于拍摄模块310和响应模块320之间,第二判断模块位于获取模块340和生成模块350之间,划分模块位于第二判断模块和生成模块350之间。
拍摄模块310适于启动摄像头开始拍摄视频。在本实施例中,视频拍摄的帧率为30fps。
响应模块320适于响应用户对拍摄按钮的操作事件。
第一判断模块适于判断用户对拍摄按钮的操作事件是点击事件还是长按事件,进一步适于获取用户对拍摄按钮的操作事件的持续时长,当持续时长不大于预设的第一时间阈值时,判断操作事件为点击事件,当持续时长大于预设的第一时间阈值时,判断操作事件为长按事件。在本实施例中,第一时间阈值预设为0.75秒,若用户对拍摄按钮的操作事件的持续时间不大于0.75秒,则判断当前待响应的操作事件为点击事件,若用户对拍摄按钮的操作事件的持续时间大于0.75秒,则判断当前待响应的操作事件为长按事件。
缓存模块330适于当操作事件为点击事件时,以响应点击事件的时刻为起算时间点,将起算时间点之前预拍摄时长和之后预设的第一拍摄时长内所拍摄的视频进行缓存,当操作事件为长按事件时,以响应长按事件的时刻为起算时间点,将起算时间点之前预拍摄时长和之后第二拍摄时长内所拍摄的视频进行缓存。缓存模块330进一步适于当操作事件为长按事件时,判断第二拍摄时长是否大于预设的第二时间阈值,当第二拍摄时长大于预设的第二时间阈值时,将起算时间点之前预拍摄时长和之后第二时间阈值内所拍摄的视频进行缓存,当第二拍摄时长不大于预设的第二时间阈值时,将起算时间点之前预拍摄时长和之后第二拍摄时长内所拍摄的视频进行缓存。其中,第二拍摄时长为长按事件的持续时长。在本实施例中,预拍摄时长为0.5秒,第一拍摄时长预设为1秒,第二时间阈值预设为11.5秒。当操作事件为点击事件时,以响应点击事件的时刻为起算时间点,将起算时间点之前0.5秒和之后1秒内所拍摄的视频进行缓存,则点击事件对应的已缓存视频的时长共计1.5秒。当操作事件为长按事件时,首先判断第二拍摄时长是否大于11.5秒,以响应长按事件的时刻为起算时间点,如果第二拍摄时长大于11.5秒,则将起算时间点之前1.5秒和之后11.5秒内所拍摄的视频进行缓存,长按事件对应的已缓存视频的时长共计12秒,实际上就长按事件对应的已缓存视频而言,其最长时长即为12秒。如果第二拍摄时长不大于11.5秒,则将起算时间点之前0.5秒和之后第二拍摄时长内所拍摄的视频进行缓存。
获取模块340适于获取用户对已缓存视频的选择。在本实施例中,缓存的视频均存储于相册之中,当获取用户在相册中选取的已缓存的视频时,会同时记录下选取的先后顺序,并且可进行顺序的更改或调换。
第二判断模块适于判断用户选择的已缓存视频中是否存在响应长按事件所缓存的视频。
划分模块适于当用户选择的已缓存视频中存在响应长按事件所缓存的视频时,以预设的第一拍摄时长为划分时间单元,将缓存的视频依次划分为多个视频片段,当最后一个视频片段的时长不大于预设的第三时间阈值时,将最后一个视频片段组合到其前一个视频片段中。其中,预设的第三时间阈值为预设的第一时间阈值的一半。在本实施例中,用户通过长按拍摄按钮完成了1个时长为9.6秒的视频的拍摄及缓存,则对上述9.6秒的视频以1.5秒的划分时间单元进行划分处理,将该视频依次划分成时长为1.5秒、1.5秒、1.5秒、1.5秒、1.5秒、1.5秒和0.6秒的6个视频片段。由于最后一个视频片段的时长仅为0.6秒,而预设的第三时间阈值为预设的第一时间阈值的一半,即第三时间阈值预设为0.75秒,因此最后一个视频片段的时长小于预设的第三时间阈值,此时将最后一个视频片段组合到其前一个视频片段中,因此第5个视频片段变成最后一个视频片段,时长为2.1秒。
生成模块350适于按照选择的先后顺序将已缓存视频进行合成,以生成新的视频。在本实施例中,用户此时先选择了1个1.5秒的点击事件对应的已缓存视频,后选择了上述9.6秒的长按事件对应的已缓存视频,准备对这2个视频进行合成。在实际处理中,为便于视频的合成和后期上传,会对合成后的新视频时长进行限制,这一限制是通过视频片段的数量来实现的。由于点击事件对应的已缓存视频时长为预设的第一拍摄时长,即1.5秒,而长按事件对应的已缓存视频所划分得到的视频片段除最后一个也均为预设的第一拍摄时长,即1.5秒,可将点击事件对应的已缓存视频视为长按事件对应的已缓存视频中的1个视频片段,则上述2个已缓存视频中的视频片段共计7个,而视频片段的总数是限制为不大于9个,因此可对这2个已缓存视频进行合成以生成新的视频,新视频的时长为11.1秒。
关于视频生成的具体步骤以及实施例,在基于图2的描述中已经详细公开,此处不再赘述。
在现今常见的视频生成方法中,绝大多数是需要用户对移动终端界面中的拍摄按钮进行持续按压来拍摄并生成视频的,导致获取的视频时间较长而不便后期处理,且难以使用户在拍摄过程中感受到趣味性。根据本发明实施例的视频生成的技术方案,首先启动摄像头开始拍摄视频,响应用户对拍摄按钮的操作事件,对操作事件为点击事件还是长按事件这两种情况采取不同的缓存处理,按照用户对已缓存视频的选择顺序将其合成以生成新的视频。在上述技术方案中,对点击事件和长按事件这两种不同类型的操作事件进行区别处理,在缓存响应操作事件所拍摄的视频时均采取了时长控制,避免产生过长时间的视频带来后期合成上的处理难题,同时由于可通过点击拍摄按钮来实现视频拍摄,可不用持续按压从而解放了手指,极大提高了用户的使用兴趣和个人体验度。
B10.如B9所述的装置,还包括第一判断模块,适于判断用户对拍摄按钮的操作事件是点击事件还是长按事件。
B11.如B10所述的装置,所述第一判断模块进一步适于:
获取用户对拍摄按钮的操作事件的持续时长;
当所述持续时长不大于预设的第一时间阈值时,判断所述操作事件为点击事件;
当所述持续时长大于预设的第一时间阈值时,判断所述操作事件为长按事件。
B12.如B9所述的装置,所述第二拍摄时长为所述长按事件的持续时长。
B13.如B12所述的装置,所述缓存模块进一步适于:
当所述操作事件为长按事件时,判断所述第二拍摄时长是否大于预设的第二时间阈值;
当所述第二拍摄时长大于预设的第二时间阈值时,将所述起算时间点之前预拍摄时长和之后第二时间阈值内所拍摄的视频进行缓存;
当所述第二拍摄时长不大于预设的第二时间阈值时,将所述起算时间点之前预拍摄时长和之后第二拍摄时长内所拍摄的视频进行缓存。
B14.如B9所述的装置,还包括第二判断模块,适于判断用户选择的已缓存视频中是否存在响应所述长按事件所缓存的视频。
B15.如B14所述的装置,还包括划分模块,适于:
当用户选择的已缓存视频中存在响应所述长按事件所缓存的视频时,以预设的第一拍摄时长为划分时间单元,将所述缓存的视频依次划分为多个视频片段;
当最后一个视频片段的时长不大于预设的第三时间阈值时,将最后一个视频片段组合到其前一个视频片段中。
B16.如B15所述的装置,所述预设的第三时间阈值为预设的第一时间阈值的一半。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。