0

我正在做一个需要通过录制视频来创建 GIF 图像并将此视频转换为 GIF 的项目。为此,我遵循两个步骤:

  1. 将视频转换为图像列表。
  2. 将图像列表转换为 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;

感谢您的关注,并为我糟糕的英语感到抱歉。

4

2 回答 2

0

这比答案更像是一种选择,但是如果您想要 2 帧/秒,为什么不尝试每 0.5 秒拍一张照片而不是录制视频呢?

于 2013-07-19T09:20:35.690 回答
0

您可以在录制视频后尝试删除不必要的帧。可能会更容易。

于 2013-07-19T09:31:53.030 回答