首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在mac os x中获取视频捕获设备(相机)支持的像素格式

如何在mac os x中获取视频捕获设备(相机)支持的像素格式
EN

Stack Overflow用户
提问于 2012-12-19 18:18:16
回答 1查看 1.5K关注 0票数 1

刚刚我开始了一个与视频捕获相关的小工作,我希望视频捕获设备使用avfoundation支持所有像素格式。我正在使用CMFormatDescriptionGetMediaSubtype函数在mac(CMPixelFormatType)中获取像素格式。但我总是得到一个与任何可用的像素格式都不匹配的值(来自预定义的像素,如: kCMPixelFormat_422YpCbCr8_yuvs)。是否存在用于该目的的其他函数..我找过了,但到现在还没有找到。像素格式类型返回值始终为1684890161。

我真正想问的是:

如何让Mac中的视频捕获设备支持所有像素格式?请记住,我并不是在询问编解码器类型。我需要它的像素格式。请帮帮我..如果可能的话。

提前谢谢..

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-19 19:16:10

要获取所有支持的像素格式,需要使用第二个参数CMIOObjectPropertyAddress调用CMIOObjectGetPropertyData,如下所示:

代码语言:javascript
复制
CMIOObjectPropertyAddress theAddress;
theAddress.mSelector = kCMIOStreamPropertyFormatDescriptions;
theAddress.mScope    = kCMIOObjectPropertyScopeGlobal;
theAddress.mElement  = 0;

这将为您提供CMFormatDescriptionRefCFArray。然后遍历此数组并调用:

代码语言:javascript
复制
CMFormatDescriptionGetMediaSubType(yourCMFormatDescriptionRef);

您的CMFormatDescriptionGetMediaSubType将转换为'dmb1'的FourCharacterCode (OSType),这似乎是特定于Matrox的硬件压缩类型。

原因是,在CMPixelFormatType枚举中找不到您的格式,因为只有最常见的格式,而您的格式不是。在Mac上最常见的是kCMPixelFormat_422YpCbCr8kCMPixelFormat_422YpCbCr10,两者都是原始的8位和10位YUV视频。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13950076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档