我正在尝试创建一个以24 FPS录制视频的视频录制应用。 我正在使用以下代码尝试将FPS锁定为24:
Camera.Parameters params = mCamera.getParameters();
params.setPreviewFrameRate(24);
params.setPreviewFpsRange(24000, 24000);
以及与MediaRecorder一起使用的以下CamcorderProfile:
CamcorderProfile ccp = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);
ccp.videoFrameRate = 24;
不幸的是,只有当视频在光线不足的情况下拍摄时才会起作用,但是当我在光线下外出时,视频会以30 FPS开始录制。
是否可以在光天化日之前将帧速率锁定为24fps?
提前致谢!
答案 0 :(得分:1)
public List<Integer> getSupportedPreviewFrameRates ()
检查此列表。我想你不能设置那里没有列出的帧率。 这可能是因为Android OS中使用的编解码器修改。
答案 1 :(得分:1)
我建议你看一下MediaRecorder:setCaptureRate(double fps)
fps: - 应以每秒帧数捕获帧的速率
支持的查询: - getPreviewFpsRange(int [])
请注意,由于相机/编码器的限制,您的相机无法保证以指定的速率拍摄相框。
答案 2 :(得分:1)
根据Android上的个人经验,我发现FPS和曝光之间存在依赖关系。我没有用WhiteBalance检查它,但它也可能。
那么为什么不将fps设置为24或某些其他值导致24fps。然后你不断检查当前的fps,当它是24fps时,那么你setAutoExposureLock(true)(以及setAutoWhiteBalanceLock(true)也是如此)。由于自动曝光的变化,fps不会再改变。
答案 3 :(得分:0)
可能您没有锁定自动白平衡和自动曝光。 FPS可能受环境影响。尝试setAutoExposureLock(true)
和setAutoWhiteBalanceLock(true)
。