iOS:如何使用AVAssetWriter制作一系列影像
我在这里和其他论坛上多次以不同的forms提到过这个问题。 有些问题得到解答,有些则没有。 回答者或作者声称已经有一些成功的地方。 我已经实现了那些声称成功的例子,但还没有看到相同的结果。
当从AVCaptureSession获取样本缓冲区时,我能够成功地使用AVAssetWriter(和AVAssetWriterInputPixelBufferAdaptor)来同时写入图像数据和audio数据。 但是,如果我有以其他方式生成的CGImageRef,并且“从头开始”构buildCVPixelBufferRef,则AVAssetWriterInputPixelBufferAdaptor的appendPixelBuffer:withPresentationTime方法会成功几帧,然后对所有后续帧都会失败。 生成的电影文件当然是无效的。
你可以在http://pastebin.com/FCJZJmMi看到我的示例代码
图像是有效的,并通过在debugging窗口中显示来validation(见第50-53行)。 该应用程序已经过testing仪器,并在整个应用程序的运行内存利用率低。 它没有得到任何内存警告。
据我所知,我已经遵循了可用的文档。 为什么示例代码失败? 需要做些什么来解决它?
如果有人成功地获得AVAssetWriterInputPixelBufferAdaptor使用自己的图像,请join。
使用示例中的AVAssetWriter制作一系列影像 – https://github.com/caferrara/img-to-video
有两件事情需要做这个工作。
如果您正在debugging您自己的AVAssetWriterInputPixelBufferAdaptor,请小心确保不要跳过CMTime,也请确保不要重复CMTime(每次只有一帧慢)。
- 更改AVCaptureDeviceInput导致AVAssetWriterStatusFailed
- 如何将AVAssetReader和AVAssetWriter同时用于多个音轨(audio和video)?
- AVAssetWriterInputPixelBufferAdaptor和CMTime
- .wav转换为AVAssetWritter ios的压缩格式
- AVAssetWriter输出大文件(即使应用压缩设置)
- 使用GPUImage过滤video
- video压缩ios:使用AVAssetWriter缩小video的大小
- AVAssetWriterlogging设置不像AVAudioRecorder一样工作
- 如何使用AVAssetWriter将静态和dynamic叠加添加到video?