Output from AVAssetWriter (UIImages written to video) distorted

丶灬走出姿态 提交于 2019-11-30 17:43:32

问题


I am using an AVAssetWriter to encode a series of images to a movie file, following Zoul's answer here: How do I export UIImage array as a movie?.

In short my process is:

  • create UIImage from .png file
  • Get CGImage from UIImage
  • convert the CGImage to CVPixelBuffer (using zoul's function pixelBufferFromCGImage exactly)
  • write the frames to .mov using a AVAssetWriterInputPixelBufferAdaptor and AVAssetWriter

This is working fine in most cases, however sometimes the .mov file that is encoded is distorted (see picture below). I was wondering if this type of distorted image output is familiar to to anyone, and if there is any step I might have taken in encoding the frames that would cause this. The problem occurs specifically when the source images I use are generated by calls in Titanium to ImageView.toBlob(). Besides the Titanium side, any hints on how this type of result might appear would be great!

Thanks, Alexander

Screen from movie: http://tinypic.com/view.php?pic=8wkqys&s=7

Original image: http://commons.wikimedia.org/wiki/File:Phalaenopsis_(aka).jpg


回答1:


Please take a look at this link. It says the width should be a multiple of 16.

Just get the size.width, calculate the nearest number which is multiple of 16. And hard code it in place of size.width.

It works :)




回答2:


Ok, this turned out to be an issue with the aspect ratio of the images I was reading in being different from the aspect ratio of the PixelBuffer I was creating. Made them equal and it works fine.



来源:https://stackoverflow.com/questions/7327847/output-from-avassetwriter-uiimages-written-to-video-distorted

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!