Eya*_*yal 13 avfoundation ios avcapturesession
我正在使用AVCaptureSession捕捉和录制视频.
我需要以4:3的比例录制视频,并且分辨率很高.
有没有办法在使用时捕获时指定自定义分辨率AVCaptureSession?
我试图使用本地预设,但问题是,我需要在4以捕获:3的比例,而且几乎所有的预置为16:9.而4:3的分辨率非常低.
我不能用任何其他方式将预设更改为自定义预设,如果我需要以更好的分辨率捕获4:3视频,该怎么办?有任何想法吗?
AVCaptureSession预设仅涵盖设备相机的一小部分功能(大多数应用需要快速,轻松访问).对于更精细的控制 - 例如选择会话预设未提供的捕获分辨率 - 您需要使用捕获格式.
查看捕获设备的formats属性,即一组AVCaptureDeviceFormat对象.枚举该数组,直到找到符合您需要的尺寸.要获取维度,请查看格式的基础CMFormatDescription:
let fdesc = format.formatDescription
let dims = CMVideoFormatDescriptionGetDimensions(fdesc)
NSLog("%d x %d", dims.width, dims.height)
Run Code Online (Sandbox Code Playgroud)
找到所需的格式后,锁定设备进行配置并设置activeFormat:
if try device.lockForConfiguration() {
device.activeFormat = myChosenFormat
// set up other things like activeVideoMinFrameDuration if you want
device.unlockForConfiguration()
}
Run Code Online (Sandbox Code Playgroud)
您可以AVCaptureDeviceFormat在Apple的编程指南和在iOS 7.0中引入设备格式的WWDC2013会话中找到有关配置捕获会话的更多信息.(你会发现关于这个主题的大部分内容都是针对慢动作视频,在视频中拍摄高分辨率的照片,以及其他你不能用会话预设做的事情,但这些并不是你能做到的唯一事情.处理捕获格式.)
| 归档时间: |
|
| 查看次数: |
2543 次 |
| 最近记录: |