本公开实施例涉及视频处理领域,具体涉及一种视频生成方法、视频生成装置以及包含该视频生成装置的终端设备。
背景技术:
用手机或照相机拍摄照片后,可能对一些照片很有心得,大多数人会选择文字进行解说。但如果把照片背后的故事设计成和照片相随的声音解说,则足以让一张照片“活”起来。“声音比文字更富含人性”,这是因为声音能让人感觉到“活”的存在。比如一张普通的景物照片,加上声音后,可以让人们分享这张照片背后潜藏的故事,甚至是秘密;对于听者而言,从声音当中更容易感觉到沟通的是一个个鲜活的人,分享对方声音的时候,也分享了他们此刻的情绪甚至性格。
然而,在实现本发明过程中,发明人发现现有技术中存在如下的问题:现有的可以对照片进行编辑的图片编辑工具大多不具有添加声音的功能,更不具有基于照片生成视频文件的功能。
技术实现要素:
有鉴于此,本公开实施例提供一种视频生成方法和视频生成装置,以满足根据图片文件生成视频文件的需求。
根据本公开实施例的第一方面,提供一种视频生成方法,包括:根据设定帧率和音频文件的播放长度确定需要的图片数量;根据需要的图片数量获取图片;以及以指定格式封装所述多个图片和所述音频文件,以获得视频文件。
可选地,所述根据设定帧率和音频文件的时长确定需要获取的图片数量包括:将设定帧率和音频文件的播放长度的乘积作为需要的图片数量。
可选地,一种视频生成方法,包括:根据设定帧率和音频文件的播放长度确定需要的图片数量;根据需要的图片数量获取图片;以及以指定格式封装所述多个图片和所述音频文件,以获得视频文件。
可选地,所述根据设定帧率和音频文件的时长确定需要获取的图片数量包括:将设定帧率和音频文件的播放长度的乘积作为需要的图片数量。
可选地,所述以指定格式封装所述多个图片和所述音频文件,以获得视频文件包括:从所述多个图片中获取每个图片的数据;将所述音频文件分成多个音频数据块,所述多个音频数据块的数量等于所述图片数量;根据每个音频数据块的播放顺序和播放长度设置每个音频数据块的时间戳;以及将所述多个音频数据块、对应的时间戳和对应的图片数据按指定格式编码,获得视频文件。
可选地,所述根据需要的图片数量获取图片包括通过复制一张或多张图得到需要的图片。
可选地,所述指定格式为AVI,FLV,MKV,MP4格式中的一种。
根据本公开实施例的第二方面,提供一种视频生成装置,包括:参量确定单元,用于根据设定帧率和音频文件的播放长度确定需要的图片数量;图片获取单元,用于根据需要的图片数量获取图片;封装单元,用于以指定格式封装所述多个图片和所述音频文件,以获得视频文件。
可选地,所述图片获取单元包括:将设定帧率和音频文件的播放长度的乘积作为需要的图片数量。
可选地,所述封装单元包括:读取单元,用于从所述多个图片中获取每个图片的数据;分块单元,用于将所述音频文件分成多个音频数据块,所述多个音频数据块的数量等于所述图片数量;计算单元,用于根据每个音频数据块的播放顺序和播放长度设置每个音频数据块的时间戳;编码单元,用于将所述多个音频数据块、对应的时间戳和对应的图片数据按指定格式编码,获得视频文件。
可选地,所述图片获取单元通过复制一张或多张图得到需要的图片。
可选地,所述指定格式为AVI,FLV,MKV,MP4格式中的一种。
根据本公开实施例的第三方面,提供一种包含上述视频生成装置的终端设备。
本公开实施例提供的视频生成方法,用于根据音频文件和图片文件生成指定格式的视频文件,满足了视频文件的生成需求。
附图说明
通过参照以下附图对本公开实施例的描述,本公开实施例的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1是根据本公开实施例的视频生成方法的流程图;
图2是根据本公开另一实施例的视频生成方法的流程图;
图3是FLV格式的视频文件的结构图示意图;
图4是根据本公开实施例的视频生成装置的结构图;
图5是图4所示的视频生成装置中的封装单元的结构图;
图6是根据本公开实施例的视频生成装置中的应用场景图;
图7是根据本公开实施例的终端设备的结构图;
图8是根据本公开实施例的视频生成方法的计算机程序产品的结构示意图。
具体实施方式
以下基于实施例对本公开实施例进行描述,但是本公开实施例并不仅仅限于这些实施例。在下文对本公开实施例的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本公开实施例。为了避免混淆本公开实施例的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
附图中的流程图、框图图示了本公开实施例的系统、方法、装置的可能的体系框架、功能和操作,流程图和框图上的方框可以代表一个、程序段或仅仅是一段代码,所述、程序段和代码都是用来实现规定逻辑功能的可执行指令。也应当注意,所述实现规定逻辑功能的可执行指令可以重新组合,从而生成新的和程序段。因此附图的方框以及方框顺序只是用来更好的图示实施例的过程和步骤,而不应以此作为对发明本身的限制。
图1是根据本公开实施例的视频生成方法的流程图。所述视频生成方法包括步骤101-103。
在步骤101中,根据设定帧率和音频文件的播放长度确定需要的图片数量。
帧率表示图形处理器处理图片时每秒钟能够更新的次数。较高的帧率可以得到更流畅、更逼真的画面。每秒24帧能够保证人眼看到的画面基本是连续的,24帧以上的帧率可以增加画面的交互感和逼真感,但是一般超过75帧就不容易察觉到有明显的流畅度提升了。如果帧率超过屏幕刷新率只会浪费图形处理器的能力,因为监视器不能以这么快的速度更新,这样超过刷新率的帧率就浪费掉了,因此在设定帧率时需要根据实际需要和监视器的屏幕刷新率进行综合考虑。在本步骤中,首先选择一个合适的帧率,进而获取音频文件的播放长度,根据帧率和播放长度确定需要的图片数量。可选地,将帧率和音频文件的播放长度的乘积作为需要的图片数量。例如,帧率30fbs(每秒刷新30次),音频文件的播放长度是20s,需要的图片文件30*20=600个。
在步骤102中,根据需要的图片数量获取图片。
根据上述确定需要的图片数量获取图片。可选地,可以根据一个图片或多个图片复制出来足够数量的图片文件。例如,如果只有几张照片和一段歌曲,需要合成视频文件,则可以根据现有的照片复制生成足够数量的照片。
在步骤103中,以指定格式封装多个图片和音频文件,以获得视频文件。
指定格式包括例如AVI,FLV,MKV,MP4,这些格式都是视频文件的编码格式。一旦确定一种格式,可以根据该格式的编码规则对图片和音频文件的数据进行编码,从而获得视频文件。
在本发明实施例中,基于图片文件和音频文件生成视频文件,不需要对图片文件和视频文件进行解码,而是利用指定格式封装数据生成视频文件,提高了视频文件的生成效率。
图2是根据本公开另一实施例的视频生成方法的流程图。所述视频生成方法包括步骤201-206。
在步骤201中,根据设定帧率和音频文件的播放长度确定需要的图片数量。
在本步骤中,选择一个合适的帧率,根据音频文件的播放长度,确定需要的图片数量。例如,帧率30fbs,音频文件的播放长度是20s,需要的图片文件至少为30*20=600个。
在步骤202中,根据需要的图片数量获取图片。
从指定的目录下或图片库获得足够数量的图片文件。可选地,利用一个或多个图片复制生成足够数量的图片文件。图片格式可以是PNG、JPG、GIF等格式的一种或几种。
在步骤203中,从多个图片中获取每个图片的数据。
通过文件读取操作读取每个图片文件的数据,用于后续的视频生成。
在步骤204中,将音频文件分成多个音频数据块。
音频文件的格式包括例如CD格式、WAV格式、MP3格式、MIDI格式、WMA格式等。在本步骤中,可以根据音频文件的播放长度,将音频文件的数据分成若干音频数据块。
在步骤205中,根据每个音频数据块的播放顺序和播放长度设置每个音频数据块的时间戳。
时间戳用于控制视频中帧的播放和声音的播放保持基本同步,因此每个音频数据块都对应一个时间戳,该时间戳根据每个音频数据块的播放顺序和播放长度设定。
在步骤206中,将多个音频数据块、对应的时间戳和对应的图片数据按指定格式编码,获得视频文件。
视频的指定格式包括AVI,FLV,MKV,MP4格式。在本步骤中,按照选定格式的编码规则,将音频数据块和图片数据组合到一起。
图3是FLV格式的视频文件的结构图示意图。参考图3,FLV格式的视频文件30包含二进制码形式的视音频数据。该视频文件30由两部分数据组成:HEADER(数据头)和BODY(数据体),HEADER主要包含版本、流信息和长度信息等信息,BODY由若干个TAG和TAG长度组成。TAG类型用于指定该TAG中存储的数据,规定的TAG类型包括音频、图像或脚本类型。其中,脚本类型的TAG存储一些播放的指令信息,这里无需详述。音频TAG用于存储例如上述步骤中的音频数据块,图像TAG用于存储每个图片的数据。TAG的结构如编号31所示,主要包含TAG类型、TAG数据长度、时间戳、和TAG数据等信息。根据图片文件中获取到的数据生成图像TAG,根据音频数据块生成音频TAG,并将时间戳添加到音频TAG中,从而获得视频文件。
图4是根据本公开实施例的视频生成装置的结构图。所述视频装置40包括参量确定单元401、图片获取单元402和封装单元403。
参量确定单元401用于根据设定帧率和音频文件的播放长度确定需要的图片数量。选择一个合适的帧率,根据音频文件的播放长度,确定需要的图片数量。例如,帧率30fbs,音频文件的播放长度是20s,需要的图片文件至少为30*20=600个。
图片获取单元402用于根据需要的图片数量获取图片。从指定的目录下或图片库获得足够数量的图片文件。可选地,利用一个或多个图片复制生成足够数量的图片文件。图片格式可以是PNG、JPG、GIF等格式的一种或几种。
封装单元403用于以指定格式封装多个图片和音频文件,以获得视频文件。视频的指定格式包括AVI,FLV,MKV,MP4格式。在本步骤中,按照选定格式的编码规则,将音频数据块和图片数据组合到一起。
在一个可选的实施例中,如图5所示,封装单元403包括读取单元4031、分块单元4032、计算单元4033和编码单元4034。
读取单元4031用于从多个图片中获取每个图片的数据。
分块单元4032用于将音频文件分成多个音频数据块,多个音频数据块的数量等于图片数量。
计算单元4033用于根据每个音频数据块的播放顺序和播放长度设置每个音频数据块的时间戳。
编码单元4034用于将多个音频数据块、对应的时间戳和对应的图片数据按指定格式编码,获得视频文件。
本发明实施例的视频生成装置,用于根据音频文件和图片文件生成视频,通过设定帧率和音频文件的播放长度确定需要的图片数,并获取足够数量的图片和音频文件一起封装生成视频文件,从而满足了用户需求。
图6是根据本公开实施例的视频生成装置中的应用场景图。在终端设备对照片进行编辑时,通过一个录音按钮添加声音,通过视频生成装置将照片和声音进行封装获取视频文件。在下次浏览该照片时,直接播放该视频文件,从而使用户同时从视觉上和听觉上获取照片的相关信息。
图7是根据本公开实施例的一种终端设备的结构图,该终端设备包括上述的视频生成装置。具体地,如图7所示,终端设备70包括通过总线连接的至少一个处理器701和存储器702。存储器702存储有各种计算机指令,处理器701从存储器702中读取一组指令,执行该指令以完成以下的操作:根据设定帧率和音频文件的播放长度确定需要的图片数量;根据需要的图片数量获取图片;以及以指定格式封装多个图片和音频文件,以获得视频文件。
图8是根据本公开实施例的视频生成方法的计算机程序产品的结构示意图。
如图8所示,本公开实施例的计算机程序产品80,可以包括信号承载介质801。信号承载介质801为指令载体,可以包括一个或多个指令8011,指令8011在被例如处理器执行时,可以完成上述实施例中描述的功能。例如,指令8011被执行以完成以下的功能:根据设定帧率和音频文件的播放长度确定需要的图片数量;根据需要的图片数量获取图片;以及以指定格式封装所述多个图片和所述音频文件,以获得视频文件。
在一些实现中,信号承载介质801可以包括计算机可读介质8012,诸如但不限于硬盘驱动器、压缩盘(CD)、数字通用盘(DVD)、数字带、存储器等。在一些实现中,信号承载介质801可以包括可记录介质8013,诸如但不限于存储器、读/写(R/W)CD、R/W DVD等。在一些实现中,信号承载介质801可以包括通信介质8014,诸如但不限于数字和/或模拟通信介质(例如,光纤线缆、波导、有线通信链路、无线通信链路等)。
本公开实施例的计算机程序产品,根据设定帧率和音频文件的播放长度确定需要的图片数量;根据需要的图片数量获取图片;以及以指定格式封装多个图片和音频文件,以获得视频文件。计算机程序产品能够高效地完成视频生成任务,满足用户的个性化需求。
本公开实施例结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。
根据本公开实施例的系统和方法可以部署在单个或多个服务器上。例如,可以将不同的模块分别部署在不同的服务器上,形成专用服务器。或者,可以在多个服务器上分布式部署相同的功能单元、或系统,以减轻负载压力。所述服务器包括但不限于在同一个局域网以及通过Internet连接的多个PC机、PC服务器、刀片机、超级计算机等。
以上所述仅为本公开实施例的优选实施例,并不用于限制本公开实施例,对于本领域技术人员而言,本公开实施例可以有各种改动和变化。凡在本公开实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开实施例的保护范围之内。