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、玩家可以在线上大神俱乐部...
推荐一款!微扑克数据分析(辅助... 推荐一款!微扑克数据分析(辅助挂)果然是真的有挂(有挂细节辅助攻略)1、每一步都需要思考,不同水平的...
教程攻略!wepoker透视脚... 教程攻略!wepoker透视脚本(辅助挂)真是真的有挂(有挂方式辅助app)1、让任何用户在无需安装...
玩家必看分享!wepoker黑... 玩家必看分享!wepoker黑侠辅助器(辅助挂)果然有挂(有挂方式辅助方法)1、点击下载安装,脚本分...
科技通报!wepoker数据分... 您好,这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩家在这款游戏中打...
一起来探讨!哈糖大菠萝有挂吗5... 一起来探讨!哈糖大菠萝有挂吗5个常用方法(辅助挂)确实有挂(今日头条辅助脚本)1、在插件功能辅助器技...
总算了解!xpoker透视辅助... 总算了解!xpoker透视辅助(辅助挂)竟然真的是有挂(有挂分析辅助方法)1、脚本辅助下载、免费透视...
玩家必看科普!sohoo辅助(... 玩家必看科普!sohoo辅助(辅助挂)切实是真的有挂(有挂方法辅助技巧)1、首先打开辅助器下载最新版...
玩家必看分享!wepoker好... 玩家必看分享!wepoker好友局透视(辅助挂)总是真的有挂(有挂助手辅助软件)1、有没有辅助教程、...
程序员教你!佛手在线有挂吗(辅... 程序员教你!佛手在线有挂吗(辅助挂)真是真的是有挂(有挂详细辅助软件)1、进入游戏-大厅左侧-新手福...