代码之家  ›  专栏  ›  技术社区  ›  Hong Duan

确定MediaRecorder.setVideoEncodingBitrate的正确值

  •  3
  • Hong Duan  · 技术社区  · 6 年前

    我正在使用 MediaRecorder android.hardware.camera2 API,遵循 googlesamples/android-Camera2Video ,它设置了 媒体录制器 像这样( link ):

        mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);
        mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
        if (mNextVideoAbsolutePath == null || mNextVideoAbsolutePath.isEmpty()) {
            mNextVideoAbsolutePath = getVideoFilePath(getActivity());
        }
        mMediaRecorder.setOutputFile(mNextVideoAbsolutePath);
        mMediaRecorder.setVideoEncodingBitRate(10000000); // <--- look at this line
        mMediaRecorder.setVideoFrameRate(30);
        mMediaRecorder.setVideoSize(mVideoSize.getWidth(), mVideoSize.getHeight());
        mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
        mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
        int rotation = activity.getWindowManager().getDefaultDisplay().getRotation();
        switch (mSensorOrientation) {
            case SENSOR_ORIENTATION_DEFAULT_DEGREES:
                mMediaRecorder.setOrientationHint(DEFAULT_ORIENTATIONS.get(rotation));
                break;
            case SENSOR_ORIENTATION_INVERSE_DEGREES:
                mMediaRecorder.setOrientationHint(INVERSE_ORIENTATIONS.get(rotation));
                break;
        }
        mMediaRecorder.prepare();
    

    如你所见,它 setVideoEncodingBitRate 固定值 10000000 ,但是我找不到关于这个值的任何解释,我如何确定 MediaRecorder.setVideoEncodingBitRate 或者我应该用固定值 1亿 是吗?

    0 回复  |  直到 6 年前