【发布时间】:2016-03-01 07:37:59
【问题描述】:
我正在使用 Android 相机实现视频录制。我使用 MediaCodec 对来自 onPreviewFrame() 回调的帧进行编码。
现在我想录制慢动作视频。 如何设置摄像头捕捉率或帧率?我可以在哪里设置这些参数,例如,如果我想以 120fps 的速度录制并以 30fps 的速度播放?
以下是我研究过的:
我用 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 搜索了 solution。但我正在使用 MediaCodec。
谁能帮我解决这个问题?
【问题讨论】:
标签: android android-camera android-mediacodec slowmotion