2017-06-22 87 views
0

我试图使用MediaRecorder类创建游戏视频,并且需要在录制完成后将视频文件与另一个视频合并。问题是由MediaRecorder创建的每个视频都有一个不稳定的帧速率虽然我将它设置为24,它永远是与像39.542004 20.xxx一些其他的号码等,这里是我的代码:Android MediaRecorder创建视频帧率不稳定

 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,所以我可以在其后追加另一个视频,任何帮助非常感谢!

回答

0

有这个在这里另一篇文章的一些信息:()Forcing the camera in Android to deliver 30 FPS

调用getSupportedPreviewFpsRange会给你什么样的摄像头的范围可以了解更多信息,然后相应地设置您的建议的帧速率。

请注意,对硬件的请求往往只是建议。相机可自动调整帧速率,因为它适应新的照明和对焦设置。 (有关FPS调整的更多信息,请参阅此处Why does camera frame rate fluctuate when fusing another sensor?

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

+0

感谢贝利,但我没有在这里使用设备的相机,我试图记录表面(屏幕),我不确定那些相机限制仍然适用于那里 – RandomCouch