Я реализую видеозапись с камерой Android. Я использую MediaCodec для кодирования кадров из обратного вызова onPreviewFrame().Запись замедленного видео с использованием MediaCodec на Android
Теперь я хочу записать замедленное видео. Как установить частоту захвата камеры или частоту кадров? Где я могу установить эти параметры, например, если я хочу записывать со скоростью 120 кадров в секунду и играть со скоростью 30 кадров в секунду?
Ниже то, что я исследовал:
Я записал видео замедленного с MOTO X (имеющее встроенной функцией записи видео замедленной) и используется FFmpeg проверить его кадры в секунду. Я обнаружил, что он записывается со скоростью 110 кадров в секунду (около 120 кадров в секунду) и воспроизведения со скоростью 30 кадров в секунду. Это доказывает, что он обеспечивает аппаратную поддержку для записи при высоких кадрах в секунду.
Однако, когда я использую getSupportedPreviewFpsRange, чтобы проверить его поддерживаемый диапазон кадров в секунду, есть только четыре набора поддерживаемых кадров в секунду в диапазоне без одного больше, чем 30 кадров в секунду:
min_fps: 15,0, max_fps15.0
min_fps : 15,0, max_fps20.0
min_fps: 15,0, max_fps30.0
min_fps: 24,0, max_fps30.0
Я использовал setPreviewFpsRange, чтобы установить fps выше, но он остается не более 30 кадров в секунду. Я также попытался установить KEY_FRAME_RATE и KEY_CAPTURE_RATE MediaFormat. Но это все еще не работает.
Я также искал solution, установив CamcorderProfile или setVideoFrameRate с MediaRecorder. Но я работаю с MediaCodec.
Может ли кто-нибудь помочь мне с этой проблемой?
Это MediaRecorder, а не MediaCodec. – fadden
Спасибо за ваш ответ. Вы действительно пытались использовать это для записи замедленного видео? Я попытался использовать MediaRecorder. Но это все еще не сработало. –
Здравствуйте, спасибо за ответ, знаете ли вы приложение для Android-андроид (стороннего производителя), которое уже фиксирует скорость 120 кадров в секунду? Спасибо –