gpt4 book ai didi

ios - AVCaptureSession 能否使用自定义分辨率

转载 作者:技术小花猫 更新时间:2023-10-29 10:26:14 26 4
gpt4 key购买 nike

我正在使用 AVCaptureSession 来捕捉和录制视频。

我需要以 4:3 的比例和良好的分辨率录制视频。

在使用 AVCaptureSession 捕获时是否可以指定自定义分辨率?

我尝试使用原生预设,但问题是我需要以 4:3 的比例进行捕捉,而几乎所有预设都是 16:9。 4:3的分辨率很低。

我无法找到任何其他方法将预设更改为自定义预设,如果我需要以更好的分辨率捕获 4:3 视频怎么办?有什么想法吗?

最佳答案

AVCaptureSession 预设仅涵盖设备相机功能的一小部分(大多数应用程序都希望快速、轻松地访问这些功能)。要进行更细粒度的控制(例如选择 session 预设未提供的捕获分辨率),您需要改用捕获格式。

查看捕获设备的formats属性,AVCaptureDeviceFormat 的数组对象。枚举该数组,直到找到一个尺寸符合您要求的数组。要获取尺寸,请查看格式的基础 CMFormatDescription:

let fdesc = format.formatDescription
let dims = CMVideoFormatDescriptionGetDimensions(fdesc)
NSLog("%d x %d", dims.width, dims.height)

找到所需格式后,锁定设备进行配置并设置其 activeFormat :

if try device.lockForConfiguration() {
device.activeFormat = myChosenFormat
// set up other things like activeVideoMinFrameDuration if you want
device.unlockForConfiguration()
}

您可以在 Apple 的 programming guide 中找到有关通过 AVCaptureDeviceFormat 配置捕获 session 的更多信息和 the WWDC2013 session在 iOS 7.0 中引入了设备格式。 (你会发现关于这个主题的大部分内容都是针对慢动作视频,在视频中拍摄高分辨率静止图像,以及其他你不能用 session 预设做的事情,但这些并不是你唯一可以做的事情处理捕获格式。)

关于ios - AVCaptureSession 能否使用自定义分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34640551/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com