大佬教程收集整理的这篇文章主要介绍了objective-c – 将UIImages导出到MP4,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
基本上,我只需要一个接收图像的NSArray并将mp4或其他视频格式写入磁盘的方法.
我并不担心监控用户的手势或类似的事情.图像已经存在于磁盘上 – 我只需要进行转换.
我知道我需要一个AVWriter,例如:
- (CVPixelBufferRef) pixelBufferFromCGImage: (CGImageRef) image { NSDictionary *options = [NSDictionary DictionaryWithObjectsAndKeys: [NSnumber numberWithBool:YES],kCVPixelBufferCGImageCompatibilityKey,[NSnumber numberWithBool:YES],kCVPixelBufferCGBitmapContextCompatibilityKey,nil]; CVPixelBufferRef pxbuffer = NULL; CVPixelBufferCreate(kcfAllocatorDefault,CGImageGetWidth(imagE),CGImageGetHeight(imagE),kCVPixelFormatType_32ARGB,(CFDictionaryRef) options,&pxbuffer); CVPixelBufferLockBaseAddress(pxbuffer,0); void *pxdata = CVPixelBufferGetBaseAddress(pxbuffer); CGColorSpaceRef rgbColorSpace = CGColorSpaceCreateDeviceRGB(); CGContextRef context = CGBitmapContextCreate(pxdata,8,4*CGImageGetWidth(imagE),rgbColorSpace,kCGImageAlphaNoneskipFirst); CGContextConcatCTM(context,CGAffineTransformMakeRotation(0)); // CGAffineTransform flipVertical = CGAffineTransformMake( // 1,-1,CGImageGetHeight(imagE) // ); // CGContextConcatCTM(context,flipVertical); // CGAffineTransform flipHorizontal = CGAffineTransformMake( // -1.0,0.0,1.0,0.0 // ); // // CGContextConcatCTM(context,flipHorizontal); CGContextDrawImage(context,CGRectMake(0,CGImageGetHeight(imagE)),imagE); CGColorSpaceRelease(rgbColorSpacE); CGContextRelease(context); CVPixelBufferUnlockBaseAddress(pxbuffer,0); return pxbuffer; }
我只是看不出如何将它全部放入一个干净的帮手.在你问我之前看过:How to display video from images之类的,但只是在UIImageView中运行图像并不是我在这里寻找的.这需要App Store合法,因此FFMPeg不是一个选项.
有什么想法/指导吗?
-(BOOL)nextFrameInCVPixelBuffer:(CVPixelBufferRef*)pixelBuf;
每次调用此方法都应该返回一个缓冲区并返回YEs.如果没有更多图像返回NO,您将在磁盘上找到该电影.
有关更多详细信息,请阅读How do I export UIImage array as a movie?(它基本上是相同的代码)或读取github文件.
以上是大佬教程为你收集整理的objective-c – 将UIImages导出到MP4全部内容,希望文章能够帮你解决objective-c – 将UIImages导出到MP4所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。