AVAssetWriter的输出(写入视频的UIImages)失真

Ale*_*way 4 titanium avfoundation uiimage ios

我正在使用AVAssetWriter将一系列图像编码为电影文件,遵循Zoul的答案:如何将UIImage数组导出为电影?.

总之,我的过程是:

  • 从.png文件创建UIImage
  • 从UIImage获取CGImage
  • 将CGImage转换为CVPixelBuffer(使用zoul的函数pixelBufferFromCGImage)
  • 使用AVAssetWriterInputPixelBufferAdaptor和AVAssetWriter将帧写入.mov

这在大多数情况下都能正常工作,但有时编码的.mov文件会失真(参见下图).我想知道这种类型的失真图像输出是否为任何人所熟悉,如果有任何步骤我可能会采用编码导致这种情况的帧.当我使用的源图像是通过Titanium到ImageView.toBlob()的调用生成时,会出现问题.除了Titanium之外,任何关于如何出现这种结果的提示都会很棒!

谢谢,亚历山大

电影屏幕:http: //tinypic.com/view.php?pic = 8wkqys&s = 7

原图:http://commons.wikimedia.org/wiki/File : Phalaenopsis_ (aka).jpg

Phalaenopsis_(AKA)

小智 6

请看一下这个链接.它说宽度应该是16的倍数.

只需获取size.width,计算最接近的16的倍数.并用硬代码代替size.width.

有用 :)