在Android上将视频录制帧率设置为1

时间:2012-06-28 16:31:13

标签: java android frame-rate video-recording

我正在从Android相机中捕捉视频。但是,我想将帧速率设置为每秒1帧。

如果我添加setVideoFrameRate(1),则无法正确录制视频。如果我没有设置此值,则录制正常。

这是我的代码......

mediaRecorder = new MediaRecorder();
mediaRecorder.setCamera(camera);                
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);

mediaRecorder.setOutputFile(GetOutputMediaFileDir(VIDEO_TYPE,intVideoIndex));
mediaRecorder.setVideoSize(640,480);

mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
//  mediaRecorder.setCaptureRate(1);
mediaRecorder.setVideoFrameRate(1);
mediaRecorder.setMaxDuration(10000);
mediaRecorder.setOnInfoListener(this);
mediaRecorder.setPreviewDisplay(surfaceView.getHolder().getSurface());

mediaRecorder.prepare();
mediaRecorder.start();

基本上我需要减小视频的大小,因为我必须在可能使用3G网络的手机上发送它。最长的视频将是1分钟,因此发送视频需要很长时间。

有人可以帮我解决这个问题。

2 个答案:

答案 0 :(得分:3)

许多设备都支持

帧速率5.您可以使用getSupportedPreviewFpsRange()来查找支持的帧速率。

检查一下:http://developer.android.com/reference/android/hardware/Camera.Parameters.html#getSupportedPreviewFpsRange()

答案 1 :(得分:0)

20 - 24帧/秒是视频保持任何质量的绝对最低值。不支持每秒1帧,因为它更像是幻灯片。此外,与视频相关的声音无法正确同步。