Post image

Запись видео с экрана Android

toppick

Два дня назад я подал свою игру Loony Quack на участие в конкурсе SiiconJam #3. Предварительно нарезал красивые картинки персонажей и набросала небольшое описание проекта, в каком он сейчас состоянии и куда он направляется, как локомотив без тормозов. Подробнее об игре можно прочитать в предыдущей статье.

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

И тут я столкнулся с дилеммой. У меня в пользовании два замечательных устройства: HTC Desire HD и HTC One. Оба без root доступа и что-то из ряда вон выходящее с ними делать не хотелось. К сожалению все программы которые я нашел в Google Play требовали либо разrootченое устройство, либо установки подозрительного ПО на которое антивирус начинал страшно верещать.

На помощь пришел Android Debug Bridge, с помощью которого, начиная с Andorid 4.4 KitKat, можно записывать видео на устройстве( и те только это ). Adb - консольное приложение, поэтому если хотите записать видео приготовьтесь набрать пару команд в ручную. Но ничего сложного или страшного.

Для начала вам понадобится скачать Android SDK, в низу страницы есть раздел SDK Tools Only, пригодится если вы не хотите устанавливать себе Android Studio, как например я :) После установки находите adb, он располагается где-то по адресу <sdk>/platform-tools/.

Далее, подключите, через USB, мобильное устройство к компьютеру, на телефоне или планшете должен быть установлен Andorid 4.4 KitKat или выше. Запустите консоль и наберите команду:

adb shell screenrecord /sdcard/demo.mp4

Давайте немного разберем что данная команда делает. adb shell screenrecord - стартует запись видео на подключенном устройстве. Кстати, связь с запущенными для отладки приложениями прервется, вернее adb её принудительно разорвет. /sdcard/demo.mp4 - указывает буфер куда будет записываться видео.

Чтобы прервать запись нажмите Ctrl+C. После наберите команду:

adb pull /sdcard/demo.mp4

И видео записанное с экрана устройства можно будет найти на самом устройстве по указанному в командах адресу. В нашем случае в корне SD карты.

По умолчанию запись видео лимитирована тремя минутами. Но это можно настроить, как разрешение видео, битрейд, размер и т.д.

Например эта команда запишет видео с 8 Mbps вместо 4Mbps и продолжительностью 30 секунд:

adb shell screenrecord --bit-rate 8000000 --time-limit 30 /sdcard/demo.mp4

Вот видео которое я снял со своего HTC One, конечно после небольшой обработки.

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

Более подробно о Android Debug Bridge, в часности о screenrecord можно почитать тут: http://developer.android.com/tools/help/adb.html#screenrecord