camcorderprofile中的videoframerate字段实际上是做什么的?

ajsxfq5m  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(276)

我使用的是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速度播放的(因为视频的表观速度似乎与我录制的没有什么不同)。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题