Android camera2 mediarecorder.setvideoencodingbitrate galaxy s6

时间:2016-11-01 14:32:14

标签: android android-camera2 video-recording bitrate

我发现setvideoencodingbitrate(800000)适用于我使用的大多数设备,但在三星Galaxy S6上它似乎记录为1.3 MB而不是800 kbs。

我假设这是因为设备不支持该比特率(我可能是错的)

有没有办法让Android设备支持视频编码比特率?或者至少在看到准备之后看到MediaRecorder被设置为什么?我似乎找不到任何mediaRecorder.getvideoencodingbitrate电话?

以下代码。

    mediaRecorder.setVideoEncodingBitRate(500000); //500000 works with galaxy s6
    mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
    mediaRecorder.setVideoFrameRate(mCaptureProfile.framesPerSecond);

    // Audio Settings
    mediaRecorder.setAudioChannels(mCaptureProfile.audioNumChannels);
    mediaRecorder.setAudioSamplingRate(mCaptureProfile.audioSampleRate);
    mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
    mediaRecorder.setAudioEncodingBitRate(mCaptureProfile.audioBitRate);

    mediaRecorder.prepare();

1 个答案:

答案 0 :(得分:0)

通常,在使用MediaRecorder录制视频时,建议您使用CamcorderProfile选择编码设置,包括比特率。选择具有所需分辨率的配置文件(对于您想要的相机),然后使用MediaRecorder.setProfile在介质记录器上进行设置。

这允许设备供应商设置推荐的比特率,由于不同的硬件编码器,视频录制规范支持的部分等,设备之间的比特率可能会有很大差异。

查看实际支持的比特率,可能在MediaCodecInfo中的某处可用。