2016-01-19 4 views
1

У меня есть кусок кода, который можно использовать андроид камеру для записи видео в QUALITY_HIGH с помощью MediaRecorder и апите камеры 1.Как программно записывать видео высокой скорости (60-120fps) на андроид

Код камеры основаны от: https://github.com/Glamdring/EasyCamera

И запись видео может выглядеть следующим образом: How to record video of particular width and height on samsung device android?

Я могу видеть из документации http://developer.android.com/intl/es/reference/android/media/CamcorderProfile.html#QUALITY_HIGH_SPEED_HIGH что есть профиль для высокоскоростного видео, но ... называют это:

CamcorderProfile profile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH_SPEED_LOW); 

бросает исключение, говоря:

"E/MediaProfiles: В профиле приведены видеокамеры камеры 0 качество 2000 является не найден"

Призвание:

mMediaRecorder.setVideoFrameRate(100); 

прогонов но выходное видео не составляет 100 кадров в секунду.

и вызова:

mMediaRecorder.setVideoFrameRate(CamcorderProfile.QUALITY_HIGH_SPEED_LOW); 

бросает исключение:

MediaRecorder: setVideoFrameRate не удалось: -22

я могу использовать встроенную в приложении камеры для записи «медленный motion video ", который будет генерировать mp4 со скоростью 120 кадров в секунду, поэтому я уверен, что устройство может записывать высокоскоростное видео, но что-то кажется отсутствующим.

+0

Какое устройство вы используете? Какой API? Планируете ли вы использовать только это устройство? – JParrish88

+0

S6 и api 1 (мы можем перейти на 2). Пока мы планируем использовать это устройство –

+0

Здравствуйте, спасибо за ответ, знаете ли вы приложение для камеры Android (стороннего производителя), которое уже фиксирует скорость 120 кадров в секунду?Спасибо –

ответ

2

Сначала проверьте поддерживаемый диапазон fps вашего устройства камеры, используя getSupportedPreviewFpsRange.

Я также сделал тест на встроенное приложение для смартфона, которое поддерживает замедленное воспроизведение и действительно может записывать с высокой частотой кадров (120 кадров в секунду). Но из результатов getSupportedPreviewFpsRange частота кадров составляет не более 30 кадров в секунду.

Я думаю, что поставщик первоначально не обеспечивает интерфейс для записи с высокой частотой кадров, хотя встроенное приложение камеры показывает его аппаратную способность. Я думаю, это связано с тем, что это может привести к непредвиденным результатам, таким как повреждение оборудования, если оно не используется должным образом.

Аппаратные требования для записи видео высокой скорости выше, чем при записи обычных видеороликов. Встроенное приложение для камеры может использовать другую стратегию записи для замедленного видео. Например, он может использовать низкое разрешение и различные ответы на свет. Таким образом, доступ к программной записи видео высокой скорости не отображается.

Однако есть решение для взлома в here, которое использует новый API камеры2. Вам нужен root, и он может быть нестабильным.

Смежные вопросы