我有一个64位Mac OS X Cocoa应用程序,它使用AV Foundation来满足大多数媒体I/O需求,但是我希望它也能够读取其他格式,最显着的是AVI容器内的Motion JPEG,但也可能是其他格式(第三方QuickTime插件支持的其他编解码器和格式)。这当然让我想到了QTKit,因为QuickTime本身不适用于64位应用程序。
这是一个视频处理和编辑应用程序,所以我需要抓取解码的样本数据。
我已经解决了QTKit中最大的帧抓取性能问题。对于那些感兴趣的人,您希望将QTMovie步进到所需的帧采样时间,然后使用启用QTMovieFrameImageSessionMode属性的QTMovie的-frameImageAtTime抓取它,并设置QTMovieFrameImageType以给您一个CVPixelBufferRef而不是NSImage。
然而,当涉及到获得解码的PCM音频数据时,我感到不知所措。这在QuickTime的7天里是相当容易的,但当然我不能从64位应用程序调用QuickTime API。我没有看到任何相关的QTMovie类,或者如果我去QTTrack级别。所以…64位应用程序如何从QTKit或QuickTime获得PCM音频?
谢谢
我也遇到了类似的问题。提取音频数据所必需的QT API部分对于64位应用程序来说是不可用的。所有相关的帖子,以获得任何音频数据参考MovieAudioExtractionFillBuffer等。
我的解决方案将是应用程序和项目分离,因此我将有一个32位音频提取器进程和一个64位主应用程序进程,使用一些IPC内存传输来获取周围的音频数据。