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的可用性,以确保不会在未准备好时提供更多的数据。

相关内容

热门资讯

今日焦点作弊器方法!王钓麻将多... 今日焦点作弊器方法!王钓麻将多功能作弊器方法,王钓麻将一贯是真的有作弊器方法所有人都在同一条线上,像...
避坑细节作弊器软件!大宝麻将多... 避坑细节作弊器软件!大宝麻将多功能作弊器软件,大宝麻将竟然是有作弊器软件1、下载好大宝麻将透视辅助下...
免费测试版开挂app!白金岛红... 免费测试版开挂app!白金岛红拐弯多功能开挂app,白金岛红拐弯果然真的有开挂app白金岛红拐弯透视...
必看攻略透视器攻略!欢乐赣游G... 您好,欢乐赣游GZ这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩家在...
分享开挂内幕辅助插件!乐游互娱... 分享开挂内幕辅助插件!乐游互娱多功能辅助插件,乐游互娱其实是真的有辅助插件乐游互娱脚本下载中分为三种...
盘点十款透视挂方法!澳门永利集... 盘点十款透视挂方法!澳门永利集团多功能透视挂方法,澳门永利集团真是真的是有透视挂方法1、让任何用户在...
一分钟了解透视器脚本!小巷娱乐... 一分钟了解透视器脚本!小巷娱乐多功能透视器脚本,小巷娱乐其实有透视器脚本1、小巷娱乐免费辅助多个强度...
一分钟揭秘透视器插件!趣玩齐齐... 一分钟揭秘透视器插件!趣玩齐齐哈尔多功能透视器插件,趣玩齐齐哈尔本来真的有透视器插件一分钟揭秘透视器...
推荐一款透视挂app!广东麻将... 推荐一款透视挂app!广东麻将多功能透视挂app,广东麻将好像有透视挂app1、广东麻将透视辅助软件...
玩家爆料作弊器app!去玩麻将... 玩家爆料作弊器app!去玩麻将多功能作弊器app,去玩麻将一贯是真的有作弊器app1、许多玩家不知道...