Как настроить MediaRecorder для получения наилучшего эффекта качества видео?

Ребята могут мне сказать, как мне настроить параметры в mediaRecorder, чтобы получить лучший эффект видеозаписи при кодировании без учета физического ограничения телефона? Или есть эффект небольшого искажения зрения, вызванного моим кодированием mediaRecorder?

Может кто-нибудь помочь мне по этому вопросу, потому что я довольно новичок в программировании android/java.. Спасибо:) Если некоторые из вас могут догадываться о неясных параметрах, я фактически устанавливаю некоторые параметры с использованием настроек. Каковы параметры, которые я пропускаю, что может помочь улучшить процесс кодирования видео, например: частота кадров

Ответ 1

В зависимости от уровня API вы можете использовать существующие профили или нет.

Без профилей:

recorder.setVideoSize(640, 480);
recorder.setVideoFrameRate(16); //might be auto-determined due to lighting
recorder.setVideoEncodingBitRate(3000000);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);// MPEG_4_SP
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

Или если вы хотите использовать существующие профили

CamcorderProfile cpHigh = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);
recorder.setProfile(cpHigh);

Обратите внимание, что у вас не может быть обоих параметров вместе, так как вы получите ошибки или ваша подготовка не будет работать.

Поскольку не все Android API и/или устройства поддерживают одни и те же значения, вам нужно либо запросить максимальные значения для каждого устройства, либо найти что-то, что работает везде.