最近,我用C++ API完成了一个音频解码任务。
现在,我感兴趣的是用C++ ( Windows上的DirectShow或Media的模拟)再用本地OSX解码和获取视频文件帧的原始未压缩数据。
我看过可用的API (AVFoundation、核心视频等)但是找不到能够完成这项工作的框架,并且可以通过C++访问。
那么,我的问题是,哪一个是最适合这个任务的框架呢?
发布于 2017-10-16 09:57:26
您可以使用AVFoundation的AVAssetReader从文件中读取原始视频数据。
创建一个AVAssetReader,添加一个带有nil输出设置的AVAssetReaderTrackOutput,然后调用copyNextSampleBuffer()直到完成。
然而,除非您有非常具体的需求,否则您不太可能发现原始编解码器视频数据非常有用。你是想显示视频吗?在这种情况下,AVPlayerLayer / AVPlayer (又一次是AVFoundation)可能是您要寻找的。如果你想要更低层次的东西,CoreMedia/VideoToolbox可能是适合你的。AVFoundation是一个目标c框架,所以您将使用objective ++,而CoreMedia和VideoToolbox则是C框架。
https://stackoverflow.com/questions/46662302
复制相似问题