AVAssetWriterInputReadyForMoreMediaData总为false。
创始人
2024-11-12 20:30:21
0

问题出现的原因可能是写入速度过慢,导致下一个可用的缓冲区未能及时提供给AVAssetWriterInput。可以通过以下代码解决:

//初始化AVAssetWriterInput对象和output设置
let videoOutputSettings: Dictionary = [
    AVVideoCodecKey: AVVideoCodecType.h264,
    AVVideoWidthKey: frameSize.width,
    AVVideoHeightKey: frameSize.height
]

videoWriterInput = AVAssetWriterInput(mediaType: AVMediaType.video, outputSettings: videoOutputSettings)
let videoInputQueue = DispatchQueue(label: "video input queue")
videoWriterInput!.expectsMediaDataInRealTime = true

//将AVAssetWriterInput与AVAssetWriter绑定
let videoOutput = AVAssetWriterInputPixelBufferAdaptor(assetWriterInput: videoWriterInput!, sourcePixelBufferAttributes: nil)
videoWriter?.add(videoWriterInput!)

//在capture输出数据中调用下面的方法来写入视频数据到AVAssetWriterInput中
func writeVideo(buffer: CVPixelBuffer, time: CMTime) -> Void {
    if (videoWriterInput!.isReadyForMoreMediaData) {
        videoInputQueue.sync {
            if let adpator = videoOutput {
                adpator.append(buffer, withPresentationTime: time)
            }
        }
    }
}

在以上代码中,我们使用videoInputQueue来确保append()请求按照顺序调用,并且我们检查了AVAssetWriterInput的可用性,以确保不会在未准备好时提供更多的数据。

相关内容

热门资讯

长期以来!poker红龙辅助,... 长期以来!poker红龙辅助,pokemmo脚本辅助,烘培教程(有挂方略)-哔哩哔哩1、上手简单,内...
近日!pokemmo辅助器手机... 近日!pokemmo辅助器手机版下载(透视)其实是有挂的(的确有挂开挂辅助软件)-哔哩哔哩1、pok...
围绕透视问题!wepoker私... 围绕透视问题!wepoker私局代打,hhpoker真的假的,方式教程(存在有挂)-哔哩哔哩1、围绕...
这一问题亟待解决!wpk控制牌... 这一问题亟待解决!wpk控制牌是真的吗(透视)果然是有挂的(有挂讲解开挂辅助下载)-哔哩哔哩1、wp...
日前!wepoker可以透视码... 日前!wepoker可以透视码,佛手在线大菠萝技巧,方式教程(有挂助手)-哔哩哔哩1、完成佛手在线大...
现就发布提示!wejoker免... 现就发布提示!wejoker免费脚本(透视)一直确实有挂(有挂透明挂开挂辅助下载)-哔哩哔哩一、we...
现场直击!wepoker私人局... 现场直击!wepoker私人局透视插件,xpoker透视辅助,技法教程(有挂教程)-哔哩哔哩1、在w...
于此同时!hhpoker辅助码... 于此同时!hhpoker辅助码怎么用(透视)果然真的有挂(有挂方略开挂辅助平台)-哔哩哔哩1、在hh...
备受关注的!wepoker买钻... 备受关注的!wepoker买钻石有用吗,wepoker一直输的号能继续打吗,要领教程(有挂秘诀)-哔...
据文件显示!哈糖大菠萝助手(透... 据文件显示!哈糖大菠萝助手(透视)果然是有挂的(有挂助手开挂辅助神器)-哔哩哔哩;1、哈糖大菠萝助手...