【发布时间】:2018-01-30 21:24:04
【问题描述】:
我正在使用 MediaRecorder 录制视频。假设视频的大小保持不变,我不清楚应该使用哪些参数来改变图像的质量。例如,我想始终创建一个 640x480 mp4 视频。我可以调整哪些参数来提高或降低质量?
【问题讨论】:
我正在使用 MediaRecorder 录制视频。假设视频的大小保持不变,我不清楚应该使用哪些参数来改变图像的质量。例如,我想始终创建一个 640x480 mp4 视频。我可以调整哪些参数来提高或降低质量?
【问题讨论】:
你可以试试
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);
设置高质量和低质量参数见here
【讨论】:
试试这个你可以解决问题
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
String path = Environment.getExternalStorageDirectory() + "/file.mp4";
mediaRecorder.setOutputFile(path);
【讨论】:
使用setVideoEncodingBitRate() in MediaRecorder,您必须提高视频编码比特率以提高视频质量。
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mRecorder.setVideoEncodingBitRate(4000000);`
【讨论】: