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、实时微信小程...
黑科技教程!大当家脚本一键挂机... 黑科技教程!大当家脚本一键挂机!本来确实有开挂辅助攻略(有挂解惑)-哔哩哔哩1、大当家脚本一键挂机免...
备受关注的!九九联盟点控吗辅助... 备受关注的!九九联盟点控吗辅助器!果然是有开挂辅助方法(有人有挂)-哔哩哔哩九九联盟点控吗辅助器是不...
突发!点星休闲辅助器下载!切实... 突发!点星休闲辅助器下载!切实确实有开挂辅助挂(有挂猫腻)-哔哩哔哩1、全新机制【点星休闲辅助器下载...
规律辅助挂!情怀西游辅助!总是... 规律辅助挂!情怀西游辅助!总是是有开挂辅助神器(有挂分享)-哔哩哔哩1、情怀西游辅助公共底牌简单,情...
2026版技巧!优优乐暗宝源码... 2026版技巧!优优乐暗宝源码!都是真的是有开挂辅助攻略(发现有挂)-哔哩哔哩优优乐暗宝源码能透视中...
技巧辅助挂!情怀宜春怎么开挂!... 技巧辅助挂!情怀宜春怎么开挂!果然真的有开挂辅助app(确实有挂)-哔哩哔哩1、让任何用户在无需情怀...
于此同时!h5新全游辅助!一贯... 于此同时!h5新全游辅助!一贯是真的有开挂辅助软件(真实有挂)-哔哩哔哩在进入h5新全游辅助软件靠谱...
于此同时!四川途游小程序辅助软... 于此同时!四川途游小程序辅助软件!好像确实有开挂辅助攻略(有挂秘籍)-哔哩哔哩1、超多福利:超高返利...