- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试制作ios记录器应用程序,但有时(非常罕见)我遇到了奇怪的崩溃
public func captureOutput(captureOutput: AVCaptureOutput!, didOutputSampleBuffer sampleBuffer: CMSampleBuffer!, fromConnection connection: AVCaptureConnection!) {
guard CMSampleBufferDataIsReady(sampleBuffer) else { return }
if assetWriter == nil { return }
let lastSampleTime = CMSampleBufferGetPresentationTimeStamp(sampleBuffer)
if assetWriter.status == .Unknown {
if assetWriter.startWriting() {
assetWriter.startSessionAtSourceTime(lastSampleTime)
} else {
print("assetWriter.startWriting error")
return
}
}
guard assetWriter.status == .Writing else { return }
if captureOutput == videoOutput && videoInput.readyForMoreMediaData {
if !videoInput.appendSampleBuffer(sampleBuffer) {
print("Unable to write to video input")
}
} else if captureOutput == audioOutput && audioInput.readyForMoreMediaData {
if !audioInput.appendSampleBuffer(sampleBuffer) {
print("Unable to write to audio input")
}
}
}
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[AVAssetWriterFailedTerminalHelper initWithConfigurationState:terminalError:] invalid parameter not satisfying: terminalError != ((void *)0)'
private func initWriter(url: NSURL) throws {
do {
assetWriter = try AVAssetWriter(URL: url, fileType: AVFileTypeMPEG4)
let videoSettings = videoOutput.recommendedVideoSettingsForAssetWriterWithOutputFileType(AVFileTypeMPEG4) as! [String: AnyObject]
guard assetWriter.canApplyOutputSettings(videoSettings, forMediaType: AVMediaTypeVideo)
else {
throw NSError(domain: "com.conn.VideoKit", code: 0, userInfo: [NSLocalizedDescriptionKey: "Couldn't apply video output settings"])
}
videoInput = AVAssetWriterInput(mediaType: AVMediaTypeVideo, outputSettings: videoSettings)
videoInput.transform = CGAffineTransformIdentity
videoInput.transform = CGAffineTransformMakeRotation( CGFloat( 270 * M_PI ) / 180.0 )
videoInput.expectsMediaDataInRealTime = true
if assetWriter.canAddInput(videoInput) {
assetWriter.addInput(videoInput)
} else {
print("Cannot add video input to asset writer")
}
let audioSettings = audioOutput.recommendedAudioSettingsForAssetWriterWithOutputFileType(AVFileTypeMPEG4) as! [String: AnyObject]
guard assetWriter.canApplyOutputSettings(audioSettings, forMediaType: AVMediaTypeAudio)
else {
throw NSError(domain: "com.conn.VideoKit", code: 0, userInfo: [NSLocalizedDescriptionKey: "Couldn't apply audio output settings"])
}
audioInput = AVAssetWriterInput(mediaType: AVMediaTypeAudio, outputSettings: audioSettings)
audioInput.expectsMediaDataInRealTime = true
if assetWriter.canAddInput(audioInput) {
assetWriter.addInput(audioInput)
} else {
print("Cannot add audio input to asset writer")
}
} catch let error { throw error }
}
最佳答案
问题出在缓冲上。我必须对视频/音频使用单独的并发队列:
let videoConcurrentQueue = dispatch_queue_create("com.videoConcurrentQueue", DISPATCH_QUEUE_CONCURRENT)
let audioConcurrentQueue = dispatch_queue_create("com.audioConcurrentQueue", DISPATCH_QUEUE_CONCURRENT)
videoOutput.setSampleBufferDelegate(self, queue: videoConcurrentQueue)
audioOutput.setSampleBufferDelegate(self, queue: audioConcurrentQueue)
关于ios - avassetwriter startWriting()崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36153626/
有人知道如何在 AVFoundation 中使用 AVAssetWriter 将未压缩的帧存储到 mov 中吗?对于 ProRes4444 内容,我实际上使用了以下片段: NSDictionary *
我在iOS上使用AVAssetWriter编码MP4视频。我目前正在使用AVAssetWriterInputPixelBufferAdaptor传递数据,但是在这方面我很灵活。 如何指定哪些输入框是关
我使用以下代码附加PixelBuffer,但输出视频是黑屏(CIImage 是正常的)。我认为问题出现在 newPixelBuffer 中。 func recordRealTimeFilterVide
为什么当您加载纵向 JPGS 并尝试使用 AVAssetWriter 时,生成的 mov 文件旋转了 90? 其他人看到了吗? 最佳答案 如果肖像 jpg 是在 iphone 上制作的,则它们的原始像
此代码适用于从图像创建视频。 AVAssetWritter 工作正常,没有错误并导出输出视频 - (.mov)。但在某些图像大小的情况下它会失败。120 x 160 - 失败180 x 640、240
我正在尝试将多个视频文件合并到一个具有特定编解码器设置的文件中。我曾经为此使用 AVAssetExportSession,但现在我需要比 AVAssetExportSession 提供更多的编解码器控
我正在 iOS 上编写一个视频编辑小应用。我关注了 this question 中评价最高的答案想用AVAssetwriter,最后写入还是失败了。当我进入 complete 回调时 [videoWr
创建 assetwriter 后,我的 friend 在他的设备上收到此错误 - 日志:AVAssetWriter:0x1e051900,outputURL = file://localhost/va
我有以下代码在 AVAssetWriter 中写入日期元数据,这在 iOS 13 中完全错误。需要知道这是 iOS 13 错误还是我做错了什么。 private var metadataIt
我正在完成一个将电影保存到相册的 iPhone 应用程序。电影源是一组图像。我用它制作电影并将它们很好地放入相册,但它总是在开始时有一个额外的绿色框架。 有什么想法吗? 我重新阅读了 Apple
我正在尝试使用 OSX AVAsset 类从电影文件中读取视频帧,调整颜色,然后将它们写出到新的电影文件中。我已经完成了所有工作,除了出于某种奇怪的原因,当我正在阅读以每秒 29.97 帧播放的视频时
我有几种方法可以将 mov 文件中的视频写入临时目录,但在大约 15 秒后。我收到错误: 收到内存警告。 收到内存警告。 收到内存警告。 收到内存警告。 然后应用程序崩溃了。我被卡住了,不知道出了什么
你好,我是 ios 开发的新手,我遇到了一些问题 我做了一些 AVAssetWriter 的设置,比如对象(我用它来写像素图作为视频的帧 - 它工作正常) self.assetWriter =
我录制音频和视频文件。用户可以只从视频切换到音频,也可以从音频切换到视频。但是当我从音频切换到视频时,第一帧是黑色的。 切换 func switch_to_audio(){ capture_s
我正在使用 AVAssetWriter 通过委托(delegate)从 ARSession 写入视频帧。 func session(_ session: ARSession, didUpdate fr
我正在开发一个使用 AVAssetWriter 录制视频的应用程序(源媒体是从 captureOutput(_ output: AVCaptureOutput, didOutput sampleBuf
我正在制作一个录制视频的应用程序。到目前为止,我已经能够使用 AVCaptureMovieFileOutput 成功录制视频和音频,但是,我现在需要实时编辑视频帧以将一些数据叠加到视频上。我开始切换到
是否可以在 iPhone 上使用 avassetwriter 合成绿屏图像——绿色背景下的动画 Actor 和背景照片并制作视频。 我有一个应用程序可以在绿色背景下创建动画角色的一系列屏幕截图。我想将
我正在使用 AVAssetWriter 将音频(和/或视频)写入 quicktime 电影格式。如何在不停止 session (即继续记录)的情况下定期(每隔几分钟)保存(或备份)此文件? 这是我在录
如果我包含的图像没有填满整个渲染区域,我用 AVAssetWriter 编写的每个文件都有黑色背景。有什么方法可以写透明吗?这是我用来获取像素缓冲区的方法: - (CVPixelBufferRef)p
我是一名优秀的程序员,十分优秀!