OSX 本机 API 视频解码 C++

OSX Native API Video Decoding C++

最近使用Apple Core Audio C++完成了一个音频解码任务API。

现在我有兴趣使用原生 OSX API 和 C++(类似于 DirectShow 或 Media Foundation Windows OS).

我查看了可用的 APIs(AVFoundation、Core Video 等),但找不到可以完成这项工作并可通过 C++ 访问的框架。

所以我的问题是哪个框架最适合完成这项任务?

您可以使用 AVFoundationAVAssetReader 从文件中读取原始视频数据。

您创建了一个 AVAssetReader,添加了一个带有 nil 输出设置的 AVAssetReaderTrackOutput,然后调用 copyNextSampleBuffer() 直到完成。

但是,除非您有非常具体的需求,否则您不太可能会发现原始编解码器视频数据非常有用。您是否要显示视频?在这种情况下,AVPlayerLayer / AVPlayer(再次是 AVFoundation)可能就是您要查找的内容。如果您想要更低级别的内容,CoreMedia/VideoToolbox 可能适合您。 AVFoundation 是一个 objective c 框架,因此您将使用 objective-c++,而 CoreMediaVideoToolbox 是 C 框架。