安卓摄像头、媒体记录仪.设置视频编码比特率银河s6



我发现setvideoencodingbitrate(800000)适用于我使用的大多数设备,但在三星Galaxy S6上,它似乎以1.3 mb的速度录制,而不是设置的800 kbps。

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

是否有一种方法可以让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();

一般情况下,在使用MediaRecorder录制视频时,建议使用CamcorderProfile来选择编码设置,包括比特率。选择具有您想要的分辨率的配置文件(对于您想要的相机),然后使用MediaRecorder.setProfile在媒体记录器上设置它。

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

要查看实际支持的比特率,可以在MediaCodecInfo中找到。

最新更新