当前位置: 代码迷 >> Android >> 怎么修改录视频时帧率
  详细解决方案

怎么修改录视频时帧率

热度:120   发布时间:2016-05-01 22:03:00.0
如何修改录视频时帧率
大家好,我使用MediaRecorder Class录视频,却发现无法修改帧率

视频我用的AVC编码,音频我用的AAC编码(这个是API LEVEL 10以后支持的)

我的主体源码如下:
Java code
recorder = new MediaRecorder(); recorder.setPreviewDisplay(surfaceHolder.getSurface());recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); recorder.setAudioSource(MediaRecorder.AudioSource.MIC);//set the Output Formatrecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);  //set the Video Sizerecorder.setVideoSize(176,144);   //set the Frame raterecorder.setVideoFrameRate(15);//Set the Video Encoderrecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264); //Set the Audio Encoderrecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);          recorder.setOutputFile(myRecAudioFile.getAbsolutePath());recorder.prepare();  recorder.start();


但是debug说
Java code
03-22 22:39:41.120: WARN/StagefrightRecorder(662): Intended video encoding frame rate (15 fps) is too small and will be set to (27 fps)

甚至还爆出了一个匪夷所思的错误
Java code
03-22 22:39:41.380: ERROR/VENC_ENC(662): Bitrate 192000

最后我录出来的视频就接近28fps了

大家帮忙看看为什么呢?

------解决方案--------------------
Java code
/*** Uses the settings from a CamcorderProfile object for recording. This method should* be called after the video AND audio sources are set, and before setOutputFile().* 使用来自记录CamcorderProfile对象的设置。这种方法应该调用在* 被命名后的视频和音频源设置和setOutputFile()之前。* @param profile the CamcorderProfile to use* @see android.media.CamcorderProfile*/public void setProfile(CamcorderProfile profile) {setOutputFormat(profile.fileFormat); //设置在录制过程中产生的输出文件格式[color=#FF0000]setVideoFrameRate(profile.videoFrameRate); //设置视频的帧速率,以被捕获[/color]setVideoSize(profile.videoFrameWidth, profile.videoFrameHeight); //设置宽度和高度的视频捕获setVideoEncodingBitRate(profile.videoBitRate); //设置视频编码录音比特率setAudioEncodingBitRate(profile.audioBitRate);//设置音频编码录音比特率setAudioChannels(profile.audioChannels);//设置录制的音频通道数setAudioSamplingRate(profile.audioSampleRate); //设置音频采样率记录setVideoEncoder(profile.videoCodec); //设置视频编码器可用于录制。如果这个方法不叫,输出文件将不包含视频setAudioEncoder(profile.audioCodec); //设置音频编码器可用于录制 如果是录音一定要设置哦不然没有音频哦}
------解决方案--------------------
这个真是太深了
------解决方案--------------------
Androd上,实际上测出来的效果:H264编码的时候,采用的就是可变帧率,设置帧率没用。
  相关解决方案