教你看懂kCVPixelFormatType类型

iOS系统定义了很多很多视频格式,让人眼花缭乱。不过一旦熟悉了它的命名规则,其实一眼就能看明白。

kCVPixelFormatType_{长度|序列}{颜色空间}{Planar|BiPlanar}{VideoRange|FullRange}

Planar: 平面;BiPlanar:双平面
平面/双平面主要应用在yuv上。uv分开存储的为Planar,反之是BiPlanar。所以,kCVPixelFormatType_420YpCbCr8PlanarFullRange是420p,kCVPixelFormatType_420YpCbCr8BiPlanarFullRange是nv12.

VideoRange和FullRange的区别在于数值的范围,FullRange比VideoRange大一些,颜色也更丰富一些。
如果没有指定颜色范围,默认都是FullRange。但有一个除外:kCVPixelFormatType_420YpCbCr8Planar。因为有一个kCVPixelFormatType_420YpCbCr8PlanarFullRange定义,所以kCVPixelFormatType_420YpCbCr8Planar理论上应该是VideoRange (参考链接

颜色空间对应的就是它在内存中的顺序。比如kCVPixelFormatType_32BGRA,内存中的顺序是 B G R A B G R A...。
有一些特别的,比如kCVPixelFormatType_16BE555,这里需要用BE或LE指定字节顺序。

有的颜色空间后面还带有一个数字,用于表示bit长度。

以上都是经验方法,最准确的还是去看文档 :)。

ZSLSnapshotFormatConvertor是一个用于对摄像头采集的原始图像数据进行格式转换的组件,通常被用于将摄像头采集的数据转换为应用所需的格式,例如JPEG、RGBA等。在应用层中使用ZSLSnapshotFormatConvertor进行配置时,可以通过以下几个步骤进行: 1. 导入ZSLSnapshotFormatConvertor的头文件: ```objective-c #import <ZegoLiveRoom/zego-api-external-video-capture-oc.h> ``` 2. 创建ZSLSnapshotFormatConvertor对象: ```objective-c ZSLSnapshotFormatConvertor *formatConvertor = [[ZSLSnapshotFormatConvertor alloc] initWithPixelFormat:kCVPixelFormatType_32BGRA]; ``` 其中,kCVPixelFormatType_32BGRA代表转换后的图像格式为RGBA。 3. 配置ZSLSnapshotFormatConvertor相关属性: ```objective-c formatConvertor.width = 640; // 设置转换后图像的宽度 formatConvertor.height = 480; // 设置转换后图像的高度 formatConvertor.enableScale = YES; // 是否启用缩放 formatConvertor.scaleMode = ZegoVideoCaptureScaleModeAspectFill; // 缩放模式 ``` 其中,ZegoVideoCaptureScaleModeAspectFill代表缩放模式为填充模式。 4. 将ZSLSnapshotFormatConvertor对象传递给ZegoExternalVideoCapture对象: ```objective-c [_zegoExternalVideoCapture setSnapshotPixelBufferConvertor:formatConvertor]; ``` 5. 当不再需要使用ZSLSnapshotFormatConvertor时,需要将其销毁: ```objective-c formatConvertor = nil; ``` 通过以上步骤,就可以在应用层中配置ZSLSnapshotFormatConvertor相关信息,实现对摄像头采集的原始图像数据进行格式转换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值