一种静态图片合成视频的方法与流程

文档序号:15878721发布日期:2018-11-09 17:29阅读:495来源:国知局
一种静态图片合成视频的方法与流程

本发明涉及图像(图片)处理及视频制作技术领域,具体说是一种静态图片合成视频的方法。



背景技术:

视频(video)泛指将一系列静态影像以电信号的方式加以捕捉、纪录、处理、储存、传送与重现的各种技术。连续的图像变化每秒超过24帧(frame)画面以上时,根据视觉暂留原理,人眼无法辨别单幅的静态画面;看上去是平滑连续的视觉效果,这样连续的画面叫做视频。

网络技术的发达也促使视频的纪录片段以串流媒体的形式存在于因特网之上并可被电脑接收与播放。

目前公司内部没有统一静态图片合成视频的算法,各开发组所用方案各不相同,算法参数也不一致,导致app开发时存在不便,而使用第三方转换算法的转换方案,则要支付高昂的费用,长期使用不利于成本的合理控制,且第三方转换算法各不相同,后期对视频的维护、解码等存在一些限制,不利于app使用感受的提升。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的在于提供一种静态图片合成视频的方法,算法统一,流程清晰,兼容性好,可批量处理静态图片,并转换成所需视频,输出格式统一,易于后期调整,提升用户体验,提高开发app的效率。

为达到以上目的,本发明采取的技术方案是:

一种静态图片合成视频的方法,其特征在于,包括如下步骤:

图片预处理,按视频尺寸对图片进行缩放,

视频数据准备,具体包括:

生成avassetwriter,用于将图像和音频写成一个完整的视频文件,

生成avassetwriterinput,用于接收数据,且被配置为可以处理指定的媒体类型,

当avassetwriterinput可接受图片数据时,在未达到总帧数前,继续获取当前帧图片,生成图片像素缓冲区pixelbuffer,如已达到总帧数,则生成视频,

生成像素缓冲适配器pixelbufferadaptor,添加pixelbuffer到适配器并设置显示时间,

将writerinput添加到writer,

开始写入startwriting。

在上述技术方案的基础上,图片预处理时,生成图片数组用于遍历图片,

所述视频尺寸指视频的默认宽度及高度。

在上述技术方案的基础上,图片预处理时,默认使用指定服务器中存储的图片缩放处理算法对图片进行缩放,所述算法保持图片宽高比,调整图片到视频尺寸大小。

在上述技术方案的基础上,指定服务器根据访问用户的账号及登录密码,从配置文件中获取默认的图片缩放比例及图片缩放处理算法。

在上述技术方案的基础上,生成avassetwriterinput时,为写入文件的每个track创建一个avassetwriterinput对象。

在上述技术方案的基础上,在视频制作时,根据以下公式计算总帧数:

kvideofps*duration,

根据以下公式计算单图片帧数:

imageduration*kvideofps。

在上述技术方案的基础上,继续获取当前帧图片成功后,进一步判断当前帧是否为过渡帧,

当为过渡帧时,设定过渡帧需要两张图片来显示过渡动效,则进一步执行获取过渡帧的下一帧图片。

本发明所述的静态图片合成视频的方法,算法统一,流程清晰,兼容性好,可批量处理静态图片,并转换成所需视频,输出格式统一,易于后期调整,提升用户体验,提高开发app的效率。

附图说明

本发明有如下附图:

图1本发明的流程图。

具体实施方式

以下结合附图对本发明作进一步详细说明。

如图1所示,本发明所述的静态图片合成视频的方法,包括如下步骤:

图片预处理,按视频尺寸对图片进行缩放,

视频数据准备,具体包括:

生成avassetwriter,用于将图像和音频写成一个完整的视频文件,

生成avassetwriterinput,用于接收数据,且被配置为可以处理指定的媒体类型,

当avassetwriterinput可接受图片数据时,在未达到总帧数前,继续获取当前帧图片,生成图片像素缓冲区pixelbuffer,如已达到总帧数,则生成视频,

生成像素缓冲适配器pixelbufferadaptor,添加pixelbuffer到适配器并设置显示时间,

将writerinput添加到writer,

开始写入startwriting。

在上述技术方案的基础上,图片预处理时,生成图片数组用于遍历图片,

所述视频尺寸指视频的默认宽度及高度。

在上述技术方案的基础上,图片预处理时,默认使用指定服务器中存储的图片缩放处理算法对图片进行缩放,所述算法保持图片宽高比,调整图片到视频尺寸大小。

在上述技术方案的基础上,指定服务器根据访问用户的账号及登录密码,从配置文件中获取默认的图片缩放比例及图片缩放处理算法。

在上述技术方案的基础上,生成avassetwriterinput时,为写入文件的每个track创建一个avassetwriterinput对象。

在上述技术方案的基础上,在视频制作时,根据以下公式计算总帧数:

kvideofps*duration,

根据以下公式计算单图片帧数:

imageduration*kvideofps。

duration为单图片时长,

kvideofps为视频帧率。

在上述技术方案的基础上,继续获取当前帧图片成功后,进一步判断当前帧是否为过渡帧,

当为过渡帧时,设定过渡帧需要两张图片来显示过渡动效,则进一步执行获取过渡帧的下一帧图片。

本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。



技术特征:

技术总结
本发明涉及一种静态图片合成视频的方法,包括如下步骤:图片预处理,按视频尺寸对图片进行缩放,视频数据准备,具体包括:生成AVAssetWriter,生成AVAssetWriterInput,当AVAssetWriterInput可接受图片数据时,在未达到总帧数前,继续获取当前帧图片,生成图片像素缓冲区PixelBuffer,如已达到总帧数,则生成视频,生成像素缓冲适配器PixelBufferAdaptor,添加PixelBuffer到适配器并设置显示时间,将WriterInput添加到Writer,开始写入startWriting。本发明,算法统一,流程清晰,兼容性好,可批量处理静态图片,并转换成所需视频,输出格式统一,易于后期调整,提升用户体验,提高开发App的效率。

技术研发人员:郭艳杰
受保护的技术使用者:北京酷我科技有限公司
技术研发日:2018.06.06
技术公布日:2018.11.09
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1