【问题标题】:Android camera2 mediarecorder.setvideoencodingbitrate galaxy s6Android camera2 mediarecorder.setvideoencodingbitrate Galaxy s6
【发布时间】:2016-11-01 14:32:13
【问题描述】:

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

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

有没有办法让安卓设备支持视频编码比特率?或者至少在调用准备后看到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();

【问题讨论】:

    标签: android android-camera2 video-recording bitrate


    【解决方案1】:

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

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

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

    【讨论】:

    • 嗨,这正是我想要避免的。由于我们希望全面录制的所有视频大小相同,因此手动设置所有比特率。我会查看 MediaCodecInfo,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-17
    • 1970-01-01
    • 1970-01-01
    • 2017-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多