OSX Native API视频解码C ++

时间:2017-10-10 08:44:58

标签: c++ macos avfoundation core-video

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

现在,我有兴趣使用带有C ++的原生OSX API(Windows操作系统上的DirectShow或Media Foundation的模拟)再次解码和获取视频文件帧的原始未压缩数据。

我已经查看了可用的API(AVFoundation,核心视频等),但无法找到能够完成工作并可通过C ++访问的框架。

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

1 个答案:

答案 0 :(得分:1)

您可以使用AVFoundation的{​​{1}}从文件中读取原始视频数据。

您创建AVAssetReader,添加AVAssetReader AVAssetReaderTrackOutput输出设置,然后调用nil直到完成。

但是,除非您有非常具体的需求,否则您不太可能发现原始编解码器视频数据非常有用。你想试试这个视频吗?在这种情况下,copyNextSampleBuffer() / AVPlayerLayerAVPlayer再次)可能就是您正在寻找的内容。如果您想要较低级别的内容,AVFoundation / CoreMedia可能适合您。 VideoToolbox是一个客观的c框架,因此您将使用objective-c ++,而AVFoundationCoreMedia是C框架。