【发布时间】:2015-01-07 23:12:25
【问题描述】:
在 Swift 中使用 AVCaptureDevice 进行捕获时,我尝试将帧速率设置为每秒 10 帧。
我相信这是通过设置 AVCaptureDevice 的 activeVideoMaxFrameDuration 来实现的,但也许我做错了,还有另一种方法。
这是我当前的代码,它运行没有错误,但对预览或捕获的视频中的帧速率没有任何影响,它仍然看起来是全动态的。
var devices = AVCaptureDevice.devicesWithMediaType(mediaType);
var captureDevice: AVCaptureDevice = devices[0] as AVCaptureDevice;
captureDevice.lockForConfiguration(&error)
captureDevice.activeVideoMinFrameDuration = CMTimeMake(1,10)
captureDevice.activeVideoMaxFrameDuration = CMTimeMake(1,10)
captureDevice.unlockForConfiguration()
我已经检查了 AVCaptureDeviceFormat videoSupportedFrameRateRanges minFrameRate 并且应该支持每秒 10 帧。
将 CMTime 更改为 videoSupportedFrameRateRanges 之外的内容确实会引发错误,因此我知道正在使用该代码,但它没有任何效果。
提前感谢您的帮助
【问题讨论】:
-
我也遇到了同样的问题,请问您解决了吗
-
"但对预览或捕获的视频中的帧速率没有任何影响,看起来仍然是全动态。" -- 您是否检查了编解码器的详细信息以获取录制的视频文件的帧速率?