OSX 原生 API 视频解码C++

OSX Native API Video Decoding C++

本文关键字:C++ 视频解码 API 原生 OSX      更新时间:2023-10-16

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

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

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

那么我的问题是哪个框架最适合这项任务?

您可以使用

AVFoundationAVAssetReader从文件中读取原始视频数据。

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

但是,除非您有非常具体的需求,否则您不太可能发现原始编解码器视频数据非常有用。您是否正在尝试显示视频?在这种情况下,AVPlayerLayer/AVPlayer(再次AVFoundation)可能是您正在寻找的。如果你想要更低层次的东西,CoreMedia/VideoToolbox可能适合你。 AVFoundation是一个目标C框架,所以你将使用Objective-C++,而CoreMediaVideoToolbox是C框架。