2016-11-01 6 views
1

나는 setvideoencodingbitrate (800000)가 내가 사용하는 대부분의 장치에서 작동하지만 samsung galaxy s6에서는 800kbs보다는 1.3mbs에서 녹화하는 것으로 나타났습니다. 그 비트 레이트를 지원 나던 장치가안드로이드 camera2 mediarecorder.setvideoencbityrate 갤럭시 s6

videoencoding의 비트 전송률을 지원하는 안드로이드 장치를 가져 오는 방법이 있나요 (내가 틀릴 수도) 때문에이 가정하고

은? 아니면 적어도 준비를 위해 전화 한 후에 메디 케어가 설정되었는지 확인하십시오. 나는 어떤 종류의 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를 살펴 보겠습니다. –