2011-05-19 34 views
11

伙计们可以告诉我,我应该如何设置mediaRecorder中的参数,以便通过编码获得最佳的视频录制效果,而不必考虑手机的物理限制?或者是否有任何影响我的编码mediaRecorder造成的小失真?如何设置MediaRecorder以获得最佳的视频质量效果?

有人可以帮助我解决这个问题,因为我在android/java编程中颇为新颖。谢谢:) 如果你们中的某些人可能猜测不清楚的参数,我实际上使用首选项设置了一些参数..我错过了哪些参数可能有助于改进视频编码过程,例如:帧速率

+0

正在谈论质量?这基于底层的编解码器和相机,因设备而异,但尝试将视频编码器更改为H264并提高分辨率,看看是否有帮助。 – bluefalcon 2011-05-19 17:15:24

+0

@Ravi嘿,只是为了确认我的代码的哪一部分确实处理编码和解析度? – Vivian 2011-05-20 01:00:42

+0

您必须在MediaRecorder类实例上使用'void setVideoSize(int width,int height)'和encoding'public void setVideoEncoder(int video_encoder)'来设置分辨率。检查MediaRecorder documnetation [这里](http://developer.android.com/reference/android/media/MediaRecorder.html) – bluefalcon 2011-05-20 10:41:20

回答

29

根据API级别,您可能希望使用现有的配置文件。

没有配置文件:

recorder.setVideoSize(640, 480); 
recorder.setVideoFrameRate(16); //might be auto-determined due to lighting 
recorder.setVideoEncodingBitRate(3000000); 
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);// MPEG_4_SP 
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 

或者,如果你想使用现有的配置文件

CamcorderProfile cpHigh = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH); 
recorder.setProfile(cpHigh); 

请注意,你不能有两个选项在一起,你会得到错误或您准备将无法正常工作

由于并非所有的Android API和/或设备都支持相同的值,您将不得不查询每个设备的最大值或找到每天都有用的东西回覆。

+0

谢谢,为我工作! – 2017-04-21 04:10:45

相关问题