使用" AVAssetReaderTrackOutput"读取多个视频文件同时吓坏了OSX

时间:2016-10-25 22:53:51

标签: macos avfoundation avassetreader

我需要将三个短视频文件(每个3分钟)中的所有帧读入内存(NSArray的{​​{1}})。 我在CMSampleBufferRef循环中使用AVAssetAVAssetReaderAVAssetReaderTrackOutput和调用copyNextSampleBuffer的典型方法。

1个文件正常 - 所有3570个样本都已加载。如果我尝试加载另外两个文件(顺序) - 第二个加载仅1820个样本,第三个加载0,错误-1189(无法打开)。我尝试了主线程,后台线程和指定线程(while并发或串行 - 相同的效果)。

如果我尝试同时加载所有三个(每个都有自己的dispatch_queue_t) - 所有三个加载大约1800个样本而没有任何错误(这不是视频的全长)。

在Xcode中运行我的应用程序后出现了一个奇怪的副作用 - 我得到了Windows(和网页)在整个系统中渲染故障(在Chrome,Finder,拖动窗口时)。

将所有视频样本从背景中的多个视频加载到阵列中以便不锁定UI(同时或顺序)的正确方法是什么?

0 个答案:

没有答案