AVAssetWriter输出(UIImage写入video)失真
我正在使用AVAssetWriter将一系列图像编码为电影文件,以下是Zoul的答案: 如何将UIImage数组导出为电影? 。
总之我的过程是:
- 从.png文件创buildUIImage
- 从UIImage获取CGImage
- 将CGImage转换为CVPixelBuffer(完全使用zoul的函数pixelBufferFromCGImage)
- 使用AVAssetWriterInputPixelBufferAdaptor和AVAssetWriter将帧写入.mov
这在大多数情况下工作正常,但有时编码的.mov文件是扭曲的(见下图)。 我想知道这种types的失真图像输出是否对任何人都熟悉,如果有任何的步骤,我可能会采取编码框架,会导致这一点。 当我使用的源图像是由Titanium调用ImageView.toBlob()生成的时候,就会出现这个问题。 除了titanium方面,关于这种types的结果可能出现的任何提示将是伟大的!
谢谢,亚历山大
从电影屏幕: http : //tinypic.com/view.php?pic=8wkqys&s=7
原始图片: http : //commons.wikimedia.org/wiki/File : Phalaenopsis_(aka).jpg
请看看这个链接 。 它说宽度应该是16的倍数。
只要得到size.width,计算出16的倍数的最接近的数字,并代替size.width。
有用 :)
好吧,原来这是我正在阅读的图像的宽高比与我创build的PixelBuffer的宽高比不同的问题。 使他们平等,它工作正常。