我发现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();
答案 0 :(得分:0)
通常,在使用MediaRecorder录制视频时,建议您使用CamcorderProfile选择编码设置,包括比特率。选择具有所需分辨率的配置文件(对于您想要的相机),然后使用MediaRecorder.setProfile在介质记录器上进行设置。
这允许设备供应商设置推荐的比特率,由于不同的硬件编码器,视频录制规范支持的部分等,设备之间的比特率可能会有很大差异。
查看实际支持的比特率,可能在MediaCodecInfo中的某处可用。