AVAssetWriterInputPixelBufferAdaptor如何将缓冲区追加到输出,不按时间顺序?

3
我正在向连接到AVAssetWriterInput的AVAssetWriterInputPixelBufferAdaptor中添加CVPixelBufferRefs,以使用AVAssetWriter将其写入文件。因此,我正在调用:
[pixelAdaptor appendPixelBuffer:pxbuffer withPresentationTime:someCMTime];

现在,我是按顺序处理的,所以在CMTimeZero时,我添加了第一帧,在0.5秒时附加另一帧,在1秒时再添加另一帧,以此类推。

我想知道,我是否必须按顺序操作,或者也可以随机操作?举个例子,先在1秒处添加一个缓冲区,然后在0.5秒和0秒处添加?

我问这个问题的原因是,我已经尝试过随机添加,但程序崩溃了,但我不确定它是否崩溃是因为我尝试随机时间(非顺序)添加,还是有其他原因(如异步添加)?

我只在输入告诉我的时候(readyForMoreMediaData)进行附加,在一个串行调度队列上。

问题是:非顺序添加应该能够工作吗?还是这是设计上的限制?

谢谢, Matthias

1个回答

0
我刚刚收到了一位苹果媒体工程师的回复:

“AVAssetWriter要求按顺序接收帧。”

那就清楚了 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接