我正在使用 Android 相机实现视频录制。我使用MediaCodec对来自 onPreviewFrame() 回调的帧进行编码。
现在我想录制慢动作视频。如何设置相机捕获率或帧率?我可以在哪里设置这些参数,例如,如果我想以 120 fps 录制并以 30 fps 播放?
以下是我研究过的:
我用 MOTO X(内置慢动作视频录制功能)录制了一段慢动作视频,并使用FFmpeg来检查它的 fps。我发现它以 110 fps(接近 120 fps)的速度录制并以 30 fps 的速度播放。这证明它为高帧率录制提供了硬件支持。
但是,当我使用getSupportedPreviewFpsRange检查其支持的 fps 范围时,只有 4 套支持的 fps 范围,没有一个大于 30fps:
min_fps: 15.0 , max_fps15.0
min_fps: 15.0 , max_fps20.0
min_fps: 15.0 , max_fps30.0
min_fps: 24.0 , max_fps30.0
我使用setPreviewFpsRange将 fps 设置得更高,但仍然不超过 30fps。我还尝试了设置MediaFormat的 KEY_FRAME_RATE 和 KEY_CAPTURE_RATE 。但它仍然不起作用。
我还通过使用 MediaRecorder 设置 CamcorderProfile 或 setVideoFrameRate 来搜索解决方案。但我正在使用 MediaCodec。
谁能帮我解决这个问题?