【发布时间】:2017-12-05 10:06:14
【问题描述】:
我正在制作一个定制相机,以全高清或仅高清质量拍摄。问题是,在我使用以下代码将相机设置为 25 帧后:
- (void) setFrameRate:(AVCaptureDevice*) camera {
NSError *error;
if (![camera lockForConfiguration:&error]) {
NSLog(@"Could not lock device %@ for configuration: %@", camera, error);
return;
}
AVCaptureDeviceFormat *format = camera.activeFormat;
double epsilon = 0.00000001;
int desiredFrameRate = 25;
for (AVFrameRateRange *range in format.videoSupportedFrameRateRanges) {
if (range.minFrameRate <= (desiredFrameRate + epsilon) &&
range.maxFrameRate >= (desiredFrameRate - epsilon)) {
[camera setActiveVideoMaxFrameDuration:CMTimeMake(10, desiredFrameRate*10)];
[camera setActiveVideoMinFrameDuration:CMTimeMake(10, desiredFrameRate*10)];
break;
}
}
[camera unlockForConfiguration];
}
它会更改视频 fps,但不会像我在方法中设置的那样精确到每秒 25 帧。它在每秒 23.93 和 25.50 帧之间波动。 有谁知道为什么?
【问题讨论】:
标签: ios camera avfoundation recording avassetwriter