一种由图片合成视频的方法技术

技术编号:19328196 阅读:36 留言:0更新日期:2018-11-03 15:03
本发明专利技术涉及一种由图片合成视频的方法,包括如下步骤:图片预处理,获取图片持续时间和尺寸信息,视频数据准备,具体包括:生成AVAssetWriter,生成AVAssetWriterInput,当AVAssetWriterInput可接受图片数据时,在未达到总帧数前,继续获取当前帧图片,生成图片像素缓冲区PixelBuffer,如已达到总帧数,则生成视频,生成像素缓冲适配器PixelBufferAdaptor,添加PixelBuffer到适配器并设置显示时间,将WriterInput添加到Writer,开始写入startWriting。本发明专利技术,算法统一,流程清晰,兼容性好,可快捷的将GIF图片转换成所需视频,输出格式统一,易于后期调整,提升用户体验,提高开发App的效率。

A method of synthesizing video from pictures

The invention relates to a method for synthesizing video from pictures, which includes the following steps: image preprocessing, acquisition of picture duration and size information, video data preparation, including: generation of AVAssetWriter, generation of AVAssetWriter Input, when AVAssetWriter Input can accept picture data, before reaching the total number of frames, and then Continue to get the current frame image, generate Pixel Buffer, if the total number of frames has been reached, then generate video, generate Pixel Buffer Adaptor, add Pixel Buffer to the adapter and set the display time, add Writer Input to Writer, start writing to startWriting. The invention has the advantages of unified algorithm, clear process, good compatibility, fast conversion of GIF pictures into required videos, unified output format, easy post-adjustment, improved user experience and improved the efficiency of developing App.

【技术实现步骤摘要】
一种由图片合成视频的方法
本专利技术涉及图像(图片)处理及视频制作
,具体说是一种由图片合成视频的方法。所述图片尤指GIF图片。
技术介绍
视频(Video)泛指将一系列静态影像以电信号的方式加以捕捉、纪录、处理、储存、传送与重现的各种技术。连续的图像变化每秒超过24帧(frame)画面以上时,根据视觉暂留原理,人眼无法辨别单幅的静态画面;看上去是平滑连续的视觉效果,这样连续的画面叫做视频。网络技术的发达也促使视频的纪录片段以串流媒体的形式存在于因特网之上并可被电脑接收与播放。考虑到网络传输的带宽优先,不少在线视频实际上是GIF图片(指动画GIF而非静态GIF),GIF(GraphicsInterchangeFormat)的原义是“图像互换格式”,是CompuServe公司在1987年开发的图像文件格式。GIF文件的数据,是一种基于LZW算法的连续色调的无损压缩格式。其压缩率一般在50%左右,它不属于任何应用程序。GIF格式可以存多幅彩色图像,如果把存于一个文件中的多幅图像数据逐幅读出并显示到屏幕上,就可构成一种最简单的动画。其实GIF是将多幅图像保存为一个图像文件,从而形成动画,最常见的就是通过一帧帧的动画串联起来的搞笑GIF图,所以归根到底GIF仍然是图片文件格式。但GIF图片只能显示256色,和jpg格式一样,因此,在网络传输的带宽不断提高的今天,有必要将GIF图片转换成更清晰、更利于传输的视频格式,以满意用户对视频清晰度的高要求。现有的第三方转换算法,大都涉及版权,使用时需要支付高昂的费用,长期使用不利于成本的合理控制,且第三方转换算法各不相同,后期对视频的维护、解码等存在一些限制,不利于App使用感受的提升。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种由图片合成视频的方法,算法统一,流程清晰,兼容性好,可快捷的将GIF图片转换成所需视频,输出格式统一,易于后期调整,提升用户体验,提高开发App的效率。为达到以上目的,本专利技术采取的技术方案是:一种由图片合成视频的方法,其特征在于,包括如下步骤:图片预处理,获取图片持续时间和尺寸信息,视频数据准备,具体包括:生成AVAssetWriter,用于将图像和音频写成一个完整的视频文件,生成AVAssetWriterInput,用于接收数据,且被配置为可以处理指定的媒体类型,当AVAssetWriterInput可接受图片数据时,在未达到总帧数前,继续获取当前帧图片,生成图片像素缓冲区PixelBuffer,如已达到总帧数,则生成视频,生成像素缓冲适配器PixelBufferAdaptor,添加PixelBuffer到适配器并设置显示时间,将WriterInput添加到Writer,开始写入startWriting。在上述技术方案的基础上,在图片预处理时,进一步生成UIImage图片对象,对图片尺寸和视频尺寸进行对比,并对超过视频尺寸的图片进行按比例缩放处理,所述图片尺寸指图片宽或高。在上述技术方案的基础上,在图片预处理时,具体步骤如下:通过ALAssetRepresentation类获取GIF数据,所述ALAssetRepresentation类,代表相册中每个资源文件的详细信息,可以通过它获取资源的大小,名字,路径等详细信息,与之相关联的为ALAsset类,代表相册中的每个资源文件,可以通过它获取资源文件的相关信息还能修改和新建资源文件,生成CGImageSourceRef,用于通过CGImageSourceRef读取图像数据,获取GIF内图片总数CGImageSourceGetCount,遍历获取单张图片信息CGImageSourceCreateImageAtIndex,最后获取图片持续时间和尺寸信息。在上述技术方案的基础上,生成AVAssetWriterInput时,为写入文件的每个track创建一个AVAssetWriterInput对象。在上述技术方案的基础上,在视频数据准备时,通过以下公式取最大值以设置单图片时长,MAX(duration,1.0/kVideoFPS),duration为单图片时长,kVideoFPS为视频帧率。在上述技术方案的基础上,在视频制作时,根据以下公式计算总帧数:kVideoFPS*duration,根据以下公式计算单图片帧数:imageDuration*kVideoFPS。本专利技术所述的由图片合成视频的方法,算法统一,流程清晰,兼容性好,可快捷的将GIF图片转换成所需视频,输出格式统一,易于后期调整,提升用户体验,提高开发App的效率。附图说明本专利技术有如下附图:图1本专利技术的流程图。具体实施方式以下结合附图对本专利技术作进一步详细说明。如图1所示,本专利技术所述的由图片合成视频的方法,包括如下步骤:图片预处理,获取图片持续时间和尺寸信息,视频数据准备,具体包括:生成AVAssetWriter,用于将图像和音频写成一个完整的视频文件,生成AVAssetWriterInput,用于接收数据,且被配置为可以处理指定的媒体类型,当AVAssetWriterInput可接受图片数据时,在未达到总帧数前,继续获取当前帧图片,生成图片像素缓冲区PixelBuffer,如已达到总帧数,则生成视频,生成像素缓冲适配器PixelBufferAdaptor,添加PixelBuffer到适配器并设置显示时间,将WriterInput添加到Writer,开始写入startWriting。在上述技术方案的基础上,在图片预处理时,进一步生成UIImage图片对象,对图片尺寸和视频尺寸进行对比,并对超过视频尺寸的图片进行按比例缩放处理,所述图片尺寸指图片宽或高。在上述技术方案的基础上,在图片预处理时,具体步骤如下:通过ALAssetRepresentation类获取GIF数据,所述ALAssetRepresentation类,代表相册中每个资源文件的详细信息,可以通过它获取资源的大小,名字,路径等详细信息,与之相关联的为ALAsset类,代表相册中的每个资源文件,可以通过它获取资源文件的相关信息还能修改和新建资源文件,生成CGImageSourceRef,用于通过CGImageSourceRef读取图像数据,获取GIF内图片总数CGImageSourceGetCount,遍历获取单张图片信息CGImageSourceCreateImageAtIndex,最后获取图片持续时间和尺寸信息。在上述技术方案的基础上,生成AVAssetWriterInput时,为写入文件的每个track创建一个AVAssetWriterInput对象。在上述技术方案的基础上,在视频数据准备时,通过以下公式取最大值以设置单图片时长,MAX(duration,1.0/kVideoFPS),duration为单图片时长,kVideoFPS为视频帧率。在上述技术方案的基础上,在视频制作时,根据以下公式计算总帧数:kVideoFPS*duration,根据以下公式计算单图片帧数:imageDuration*kVideoFPS。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。本文档来自技高网
...

【技术保护点】
1.一种由图片合成视频的方法,其特征在于,包括如下步骤:图片预处理,获取图片持续时间和尺寸信息,视频数据准备,具体包括:生成AVAssetWriter,用于将图像和音频写成一个完整的视频文件,生成AVAssetWriterInput,用于接收数据,且被配置为可以处理指定的媒体类型,当AVAssetWriterInput可接受图片数据时,在未达到总帧数前,继续获取当前帧图片,生成图片像素缓冲区PixelBuffer,如已达到总帧数,则生成视频,生成像素缓冲适配器PixelBufferAdaptor,添加PixelBuffer到适配器并设置显示时间,将WriterInput添加到Writer,开始写入startWriting。

【技术特征摘要】
1.一种由图片合成视频的方法,其特征在于,包括如下步骤:图片预处理,获取图片持续时间和尺寸信息,视频数据准备,具体包括:生成AVAssetWriter,用于将图像和音频写成一个完整的视频文件,生成AVAssetWriterInput,用于接收数据,且被配置为可以处理指定的媒体类型,当AVAssetWriterInput可接受图片数据时,在未达到总帧数前,继续获取当前帧图片,生成图片像素缓冲区PixelBuffer,如已达到总帧数,则生成视频,生成像素缓冲适配器PixelBufferAdaptor,添加PixelBuffer到适配器并设置显示时间,将WriterInput添加到Writer,开始写入startWriting。2.如权利要求1所述的由图片合成视频的方法,其特征在于:在图片预处理时,进一步生成UIImage图片对象,对图片尺寸和视频尺寸进行对比,并对超过视频尺寸的图片进行按比例缩放处理,所述图片尺寸指图片宽或高。3.如权利要求1所述的由图片合成视频的方法,其特征在于:在图片预处理时,具体步骤如下:通过ALAssetRepresentation类获取GIF数据,所述ALAssetRepresentation类,代表相册中每个资源文件...

【专利技术属性】
技术研发人员:郭艳杰
申请(专利权)人:北京酷我科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1