我已经使用Swift实现了以前的建议(如何在iPhone中使用CVPixelBufferPool和AVAssetWriterInputPixelBufferAdaptor?),但在使用CVPixelBufferPoolCreatePixelBuffer作为指导时,却遇到了"kCVReturnInvalidArgument"(错误值:-6661).
我基本上试图从图像创建一个电影,但由于缓冲池未成功创建,我无法附加像素缓冲区 - 这是我执行此操作的代码.
任何建议都非常感谢!
import Foundation
import Photos
import OpenGLES
import AVFoundation
import CoreMedia
class MovieGenerator {
var _videoWriter:AVAssetWriter
var _videoWriterInput: AVAssetWriterInput
var _adapter: AVAssetWriterInputPixelBufferAdaptor
var _buffer = UnsafeMutablePointer<Unmanaged<CVPixelBuffer>?>.alloc(1)
init(frameSize size: CGSize, outputURL url: NSURL) {
// delete file if exists
let sharedManager = NSFileManager.defaultManager() as NSFileManager
if(sharedManager.fileExistsAtPath(url.path!)) {
sharedManager.removeItemAtPath(url.path, error: nil)
}
// video writer
_videoWriter = AVAssetWriter(URL: url, fileType: AVFileTypeQuickTimeMovie, error: nil)
// writer input
var videoSettings = [AVVideoCodecKey:AVVideoCodecH264, AVVideoWidthKey:size.width, AVVideoHeightKey:size.height]
_videoWriterInput = AVAssetWriterInput(mediaType: AVMediaTypeVideo, …Run Code Online (Sandbox Code Playgroud)