Android MediaRecorder会创建帧速率不稳定的视频

时间:2017-06-22 15:26:09

标签: java android mediarecorder frame-rate video-recording

我尝试使用MediaRecorder类创建游戏视频,我需要在录制完成后将视频文件与其他视频合并。问题是MediaRecorder创建的每个视频都有一个不稳定的帧速率,虽然我将它设置为24,它总是出现一些其他数字,如39.542004 20.xxx等,这是我的代码:

        mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);
        mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        mMediaRecorder.setOutputFile(outPutDir.getPath() + "/" + fileName);
        mMediaRecorder.setVideoSize(DISPLAY_WIDTH, DISPLAY_HEIGHT);
        mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
        mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
        mMediaRecorder.setAudioEncodingBitRate(44100);
        mMediaRecorder.setVideoEncodingBitRate(3000 * 1000);
        mMediaRecorder.setVideoFrameRate(24);

我需要我的视频帧速率为24或30,所以我可以在之后添加另一个视频,非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

此处的其他帖子中有一些相关信息:source code

调用getSupportedPreviewFpsRange()将为您提供有关摄像机范围的更多信息,然后相应地设置建议的帧速率。

请注意,对硬件的请求通常只是建议。相机可自动调整帧速率,因为它适用于新的照明和对焦设置。 (有关FPS调整的更多信息,请Forcing the camera in Android to deliver 30 FPS

尝试指示每个摄像机设置,以便摄像机不再自动调整以更好地提高图像质量,并查看FPS如何受到影响。不幸的是,为手机摄像头设置特定的FPS速率不太可能保证FPS而不会删除相机更改的其他变量。