2016-12-12 5 views
12

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

Однако я попытался с помощью своего приложения для записи видео, и эта стабилизация не происходит.

Я, конечно, пробовал использовать метод setVideoStabilization() по адресу the official docs, но результат не так хорош, как с встроенным приложением для камеры.

Есть ли что-нибудь еще, что мне не хватает?

+1

_ «Есть ли что-нибудь еще, что мне не хватает?» _ Да, это называется многомиллионным бюджетом R & D + некоторая собственная собственность патентов на патенты, чтобы превзойти нынешнее соревнование ... Серьезно, однако, вы должны ** закодировать свой собственный алгоритм стабилизации ** для записанных пикселей (поскольку нет доступа к перепрограммированию самого датчика изображения камеры). Вот несколько вдохновляющих [** результатов поиска **] (https://www.google.com/search?q=Video+Stabilization+algorithm). В основном просто ** рассмотрим представленные концепции и получаю удовольствие от внедрения в Java-код ... –

+1

Более чем вероятно, что код стабилизации, используемый приложением Google, - это * не * та же самая библиотека стабилизации, которая доступна для нас просто смертными разработчиками , –

ответ

5

Вы можете посмотреть на OpenSource.Android и найти некоторую логику для стабилизации. Еще одна ссылка находится здесь platform_packages_apps_camera. Оттуда и далее вы можете сделать свой собственный R & D.

Или

Подождите, пока на основе API Google Pixel стабилизации камеры, или такой код, доступен каждому.
Будущее обновление Android SDK может улучшить текущую функцию стабилизации.

+2

В этом пакете платформы для камеры этот [** 'dbstabsmooth.cpp' **] (https://github.com/android/platform_packages_apps_camera/blob/33c59af04ab44eff0e3806f140d472252300646a/jni/feature_stab/src/dbreg/dbstabsmooth.cpp) выглядит наиболее перспективным для логического вдохновения или отправной точкой для собственной реализации Asker. –

+0

@ Qamar relax man, я просто подумал, может быть, я делал что-то не так, потому что там есть * некоторая поддержка стабилизации на текущем API-интерфейсе камеры – MichelReap

+0

@MichelReap это не личное ... Ответ должен также говорить с будущими читателями, нуждающимися в этом Информация. –

0

Подождите, пока Google выпустит его в своем API.

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

Тем временем попробуйте обратить внимание экспертов здесь: https://code.google.com/p/android/issues/list. Вы можете заставить его вдаваться в обновление ранее даже

0

Если вы не хотите ждать, то можно прочитать this amazing article on content unshaking using the accelerometersourcecode here).

Это было сделано для того, чтобы отключить содержимое телефона (например, облегчить чтение при перемещении транспорта), но это та же логика, что и для видеопотоков с камеры.

Однако не ожидайте получения тех же результатов, что и подход Google. Действительно, это может только стабилизация программного обеспечения, которая будет перемещаться вокруг вашего изображения и, таким образом, обрезать его. Чтобы избежать обрезки и изменения яркости, Google использует Optical Image Stabilization, which mechanically moves the lens и, таким образом, избегает любых обрезков. Однако OIS пока не поддерживается на всех телефонах, поэтому учтите это, если вы используете API Google в своем приложении.