我正在制作一个需要通过录制视频创建GIF图像并将此视频转换为GIF的项目。 为此,我遵循两个步骤:
问题是:如何录制长度约为10秒且帧数约为20帧的视频。 mediaRecorder.setVideoFrameRate(framecount)由于某些原因不起作用。
mediaRecorder.setCamera(GIFCamera.c);
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
// mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setProfile(CamcorderProfile
.get(CamcorderProfile.QUALITY_HIGH));
mediaRecorder.setOutputFile(AppConst.VIDEO_PATH);
Camera.Size bestSize = GIFCamera.getBestSize();
System.out.println(bestSize.width);
System.out.println(bestSize.height);
mediaRecorder.setVideoSize(bestSize.width, bestSize.height);
mediaRecorder.setVideoFrameRate(30);
mediaRecorder.setPreviewDisplay(myCameraSurfaceView.getHolder()
.getSurface());
try {
mediaRecorder.prepare();
} catch (IllegalStateException e) {
releaseMediaRecorder();
return false;
感谢您的关注并抱歉我的英语不好。
答案 0 :(得分:0)
除了答案之外,这更像是另一种选择,但如果你想要2帧/秒,为什么不尝试每0.5秒拍一张照片而不是录制视频呢?
答案 1 :(得分:0)
录制视频后,您可以尝试删除不必要的帧。可能会更容易。