我使用的是flutter相机插件的私有分叉版本,我正在对插件的android部分进行修改,以获得插件尚未提供的某些功能。
如果可以的话,我希望相机能以60帧/秒的速度拍摄,环顾四周,过程如下:
检查可用的目标范围是否包括60fps(来自cameracharacteristics.control\u ae\u available\u target\u fps\u ranges)
如果支持60fps,请在摄像机配置文件(用于构建mediarecorder)中将帧速率设置为60。
另外,在capturerequest中设置目标范围(通过capturerequest.control\u ae\u target\u fps\u range)
我已经设法让它工作,但我发现,设置帧速率在摄像机配置文件不同的价值观产生奇怪的行为。
camcorderProfile.videoFrameRate = 1
captureRequestBuilder.set(CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE, Range.inBetween(60,60);
//Video is ~43 FPS
camcorderProfile.videoFrameRate = 30
captureRequestBuilder.set(CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE, Range.inBetween(60,60);
//Video is 47-53 FPS
camcorderProfile.videoFrameRate = 60
captureRequestBuilder.set(CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE, Range.inBetween(60,60);
//Video is ~60 FPS
输出视频帧速率似乎是摄像机配置文件帧速率和capturerequest目标fps的均方根。
sqrt(0.5*(1+60^2))=42.43
sqrt(0.5*(30^2+60^2))=47.43
sqrt(0.5*(60^2+60^2))=60
那么camcorderprofile类的videoframerate字段是用来做什么的呢?另外,我观察到的行为是典型的吗(使用moto g8 plus)
文档中说明了要设置播放的帧速率(我的解释),但事实似乎并非如此,因为我录制的所有视频都是以1x速度播放的(因为视频的表观速度似乎与我录制的没有什么不同)。
暂无答案!
目前还没有任何答案,快来回答吧!