当前位置:  开发笔记 > IOS > 正文

AVCaptureSession可以使用自定义分辨率

如何解决《AVCaptureSession可以使用自定义分辨率》经验,为你挑选了1个好方法。

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

我需要以4:3的比例录制视频,并且分辨率很高.

有没有办法在使用时捕获时指定自定义分辨率AVCaptureSession

我试图使用本地预设,但问题是,我需要在4以捕获:3的比例,而且几乎所有的预置为16:9.而4:3的分辨率非常低.

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



1> rickster..:

AVCaptureSession预设仅涵盖设备相机的一小部分功能(大多数应用需要快速,轻松访问).对于更精细的控制 - 例如选择会话预设未提供的捕获分辨率 - 您需要使用捕获格式.

查看捕获设备的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()
}

您可以AVCaptureDeviceFormat在Apple的编程指南和在iOS 7.0中引入设备格式的WWDC2013会话中找到有关配置捕获会话的更多信息.(你会发现关于这个主题的大部分内容都是针对慢动作视频,在视频中拍摄高分辨率的照片,以及其他你不能用会话预设做的事情,但这些并不是你能做到的唯一事情.处理捕获格式.)

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有