gpt4 book ai didi

ios - 使用 GPUImagemovieWriter 编写电影会使应用程序崩溃

转载 作者:行者123 更新时间:2023-11-28 08:36:52 25 4
gpt4 key购买 nike

我正在使用 GPUImageMovie 在我的设备中过滤和保存电影,但我的应用程序崩溃了

dispatch_sync(videoProcessingQueue, block);

GPUImageOutput.m文件中。当我调试它时它在

self.movi​​eWriter = GPUImageMovieWriter(movieURL: movieURL, size: CGSizeMake(videoAssetTrack.naturalSize.width, videoAssetTrack.naturalSize.height))

这是我的代码:

var paths: [AnyObject] = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
let filePath = paths[0].stringByAppendingString("/image.mov")
let asset: AVURLAsset = AVURLAsset(URL: NSURL(fileURLWithPath: filePath))
let videoAssetTrack: AVAssetTrack = asset.tracksWithMediaType(AVMediaTypeVideo)[0]
//CGAffineTransform videoTransform = CGAffineTransformMakeRotation(self.ValueOrientation);
self.movieFile1 = GPUImageMovie(URL: NSURL(fileURLWithPath: filePath))
self.movieFile1.runBenchmark = true
// self.filterExport = self.filterobject
self.movieFile1.addTarget(self.pixellateFilter)
self.pixellateFilter.removeAllTargets()
let filteredFile: String = paths[0].stringByAppendingPathComponent("/MovieFiltered.m4v")
unlink((filteredFile as NSString).UTF8String)
let movieURL: NSURL = NSURL.fileURLWithPath(filteredFile)
do {
try NSFileManager.defaultManager().removeItemAtPath(filteredFile)
print("File removed")
}catch{
print("Not Removed")
}

self.movieWriter = GPUImageMovieWriter(movieURL: movieURL, size: CGSizeMake(videoAssetTrack.naturalSize.width, videoAssetTrack.naturalSize.height))
self.pixellateFilter.addTarget(self.movieWriter)
self.movieWriter.shouldPassthroughAudio = true
self.movieFile1.audioEncodingTarget = self.movieWriter
self.movieFile1.enableSynchronizedEncodingUsingMovieWriter(self.movieWriter)
self.movieWriter.startRecording()
self.movieFile1.startProcessing()
weak var weakSelf = self
self.movieWriter.completionBlock = {() -> Void in
print("Recording done")
weakSelf!.movieWriter.finishRecording()

}

除此之外,我还使用过许多代码,但应用程序总是在同一点崩溃。请给我解决方案。我也使用了这段代码。同样的错误来了......

var paths: [AnyObject] = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
let filePath = paths[0].stringByAppendingString("/image.mov")
movieFile = GPUImageMovie(URL: NSURL(fileURLWithPath: filePath))
pixellateFilter = GPUImagePixellateFilter()
movieFile.addTarget(pixellateFilter)


let pathToMovie : String = paths[0].stringByAppendingPathComponent("filtered.mov")
do {
try NSFileManager.defaultManager().removeItemAtPath(pathToMovie)
print("File removed")
}catch{
print("Not Removed")
}

unlink((pathToMovie as NSString).UTF8String)
let movieURL: NSURL = NSURL.fileURLWithPath(pathToMovie)
movieWriter = GPUImageMovieWriter(movieURL: movieURL, size: CGSizeMake(480.0, 640.0))
pixellateFilter.addTarget(movieWriter)
movieWriter.shouldPassthroughAudio = true
movieFile.audioEncodingTarget = movieWriter
movieFile.enableSynchronizedEncodingUsingMovieWriter(movieWriter)
movieWriter.startRecording()
movieFile.startProcessing()


self.movieWriter.completionBlock = {() -> Void in
print("Recording done")
self.pixellateFilter.removeTarget(self.movieWriter)
self.movieWriter.finishRecording()
}

最佳答案

我犯的一个小错误我忘记写了

电影 File.audioEncoding Target = nil

因为我的视频不包含声音。是的..

关于ios - 使用 GPUImagemovieWriter 编写电影会使应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37495757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com