最近,我使用Apple Core Audio C ++ API完成了音频解码任务。
现在,我有兴趣使用带有C ++的原生OSX API(Windows操作系统上的DirectShow或Media Foundation的模拟)再次解码和获取视频文件帧的原始未压缩数据。
我已经查看了可用的API(AVFoundation,核心视频等),但无法找到能够完成工作并可通过C ++访问的框架。
所以我的问题是最适合这项任务的框架?
答案 0 :(得分:1)
您可以使用AVFoundation
的{{1}}从文件中读取原始视频数据。
您创建AVAssetReader
,添加AVAssetReader
AVAssetReaderTrackOutput
输出设置,然后调用nil
直到完成。
但是,除非您有非常具体的需求,否则您不太可能发现原始编解码器视频数据非常有用。你想试试这个视频吗?在这种情况下,copyNextSampleBuffer()
/ AVPlayerLayer
(AVPlayer
再次)可能就是您正在寻找的内容。如果您想要较低级别的内容,AVFoundation
/ CoreMedia
可能适合您。 VideoToolbox
是一个客观的c框架,因此您将使用objective-c ++,而AVFoundation
和CoreMedia
是C框架。