2016-11-01 8 views
1

setvideoencodingbitrate(800000)は私が使用しているデバイスのほとんどで動作しますが、samsung galaxy s6では800kbsではなく1.3mbsで記録されているようです。そのビットレートをサポートdoesntのデバイスがAndroid camera2 mediarecorder.setvideocodebitrate galaxy s6

videoencodingビットレートサポートAndroidデバイスを取得する方法はあります(私は間違っている可能性が)ので、私はこれを想定しています

はありますか?準備をした後にメディアコードがどのように設定されているかを少なくとも見ているか?私は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

おかげで、MediaRecorderでビデオを録画するときに、ビットレートなどのエンコード設定を選択するCamcorderProfileを使用をお勧めします。必要な解像度(必要なカメラ用)のプロファイルを選択し、MediaRecorder.setProfileでメディアレコーダーに設定します。

これにより、デバイスベンダーは、ハードウェアエンコーダの違い、ビデオ録画スペックのサポートされている部分などによって、デバイスによって大きく異なる可能性がある推奨ビットレートを設定できます。

サポートされている実際のビットレートを調べるには、MediaCodecInfoのどこかで利用可能かもしれません。

+0

こんにちは、これは私が避けようとしているものです。ボード全体で記録されたすべてのビデオをほぼ同じサイズにしたいので、すべてのビットレートを手動で設定します。私はMediaCodecInfoを見ていきます。ありがとう。 –

関連する問題