Подтвердить что ты не робот

Захват видео с экрана Android

Забудьте о скриншотах, можно ли захватить видео из работающего приложения в Android? Коренные или не связанные с корнем, мне все равно, я хочу, по крайней мере, 15 кадров в секунду.

Обновление: мне не нужны внешние устройства. Цель состоит в том, чтобы сделать его совершенно портативным, и каждый кадр захвачен в ОС Android. Если он пересекает границы приложения sdk, я готов перейти на модификации уровня ОС, но мне нужна начальная точка.

4b9b3361

Ответ 1

Android 4.4 (KitKat) и более высокие устройства имеют утилиту оболочки для записи экрана устройства Android. Подключите устройство в режиме разработчика/отладки с помощью KitKat с помощью утилиты adb через USB и введите следующее:

adb shell screenrecord /sdcard/movie.mp4
(Press Ctrl-C to stop)
adb pull /sdcard/movie.mp4

Запись на экран ограничена максимум 3 минутами.

Ссылка: https://developer.android.com/studio/command-line/adb.html#screenrecord

Ответ 2

Я знаю, что это старый вопрос, но поскольку он, как представляется, не отвечает интересам OP. Существует приложение, которое accolmlishes это в Android Market ссылка Screencast

Ответ 4

@taranfx, без дополнительной информации. Я предполагаю, что вы на StackOverFlow, что у вас установлены Android Developer Tools. Если это так, вы можете запустить эмулятор, а затем использовать одну из многих программ захвата экрана на экране, чтобы захватить запущенное приложение. Screenflow на Mac отлично работает для этого. Я уверен, что есть много хороших программ захвата экрана, если вы находитесь на Windows или платформе Nix, и я знаю, что есть некоторые онлайн-сервисы, но у меня нет никаких ссылок и я их не использовал. Вот ссылка для справочного документа по настройке и запуску эмулятора. Android SDK включает эмулятор мобильных устройств...

Ответ 5

Мое предложение - также использовать экранный рекордер, такой как SMRecorder. Вместо использования эмулятора, который работает медленно - особенно для игр и вещей, которые вы хотели бы получить, я рекомендую использовать VirtualBox VM с установленным Android. Вы можете подключить к нему отладчик Dalvik и отладить там приложение. Если отладчик замедляет ваше приложение слишком сильно, отключите его для записи видео. Существует множество ссылок, объясняющих, как настроить виртуальную машину Android для отладки. Я нахожу это намного лучше, чем эмулятор. Теперь это не позаботится о том, чтобы захватывать экраны непосредственно на устройстве, если приложение использует акселерометр или камеру, недоступную на ПК. Для этого я бы использовал приложение Android для Android, упомянутое выше.

Ответ 6

Я думаю, что screencast не вызывает причину несовместимости tegra 2, я уже пробовал, но без сыворотки! Поэтому я попытался использовать Z-ScreeNRecorder с рынка, установил его на моем LG Optimus 2x, но он записывает только пустой экран, я пробовал в течение 5 минут. и там я получаю 5мин. пустого экрана размером 6 МБ... поэтому нет смысла пытаться, пока они не выпустят мир программного обеспечения, совместимый с чипсетом tegra2!

Ответ 7

Android 4.3 имеет новый API MediaCodec, который можно использовать для записи с поверхности. Смотрите: http://developer.android.com/about/versions/android-4.3.html (прокрутите вниз до раздела "Кодирование видео с поверхности" )

Ответ 8

Можно записывать видео с экрана прямо с телефона или планшета, если ваше устройство укоренено. Я работаю над SCR Screen Recorder. Насколько мне известно, это единственное приложение, поддерживающее устройства Tegra (включая Nexus 7) и Android 4.2. В настоящий момент приложение записывает между 9-18fps в зависимости от устройства, но я работаю над улучшением этого. SCR Screen Recorder все еще находится в стадии бета-тестирования, поэтому не стесняйтесь протестировать его и дать обратную связь.

Ответ 9

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

Ответ 10

Зеркальное отражение и экранирование AirPlay теперь находится в CyanogenMod с зеркальной APK (бета-версия).

Ответ 11

Если вы разрабатываете приложения для видеокамеры, тогда будет полезно узнать API, который будет использоваться для захвата видео:

http://developer.android.com/training/camera/videobasics.html

(приведенная выше ссылка показывает только, как видеозапись может быть выполнена посредством представления Intent, а не как выполняется фактическая запись)

https://www.linux.com/learn/tutorials/729988-android-app-development-how-to-capture-video

и если вы хотите написать приложение "screenrecord" adb самостоятельно:

https://android.googlesource.com/platform/frameworks/av/+/android-cts-4.4_r1/cmds/screenrecord/screenrecord.cpp

И действие записи ключа выполняется здесь:

static status_t recordScreen(const char* fileName) {
    status_t err;

<...>

    // Configure, but do not start, muxer.
    sp<MediaMuxer> muxer = new MediaMuxer(fileName,
            MediaMuxer::OUTPUT_FORMAT_MPEG_4);
    if (gRotate) {
        muxer->setOrientationHint(90);
    }

    // Main encoder loop.
    err = runEncoder(encoder, muxer);
    if (err != NO_ERROR) {
        encoder->release();
        encoder.clear();

        return err;
    }

Для телефона Samsung есть дополнительные настройки ( "cam_mode" взломать):

ВидеокамераProfile.QUALITY_HIGH обеспечивает зеленое мерцающее видео

Дополнительные полезные ссылки:

Как записать видеозапись на Android?

Ответ 12

Я не реализовал его, но все же даю вам идею сделать это.

Прежде всего, получите код, чтобы снять снимок экрана Android . И Вызов той же функции для создания изображений через промежуток времени. Затем добавьте код для создания видео из фреймов/изображений.

Edit

см. эту ссылку и измените ее в соответствии с размером экрана. Главное - разделить свою работу на несколько небольших задач, а затем объедините его как свою потребность.

FFMPEG - лучший способ сделать это. но как только я попытался, но это очень длинная процедура. Сначала вам нужно скачать cygwin и Native С++ библиотеку и многое другое и подключиться, тогда вы сможете работать с FFMPEG (он построен на С++).

Ответ 13

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

Он позволяет отправлять apk некоторым пользователям тестов по электронной почте и просматривать видео со всеми сеансами в приложении и даже с ошибками приложения и статистикой устройства.

Ответ 14

Это старый, но как насчет ASC?

Ответ 15

Если вы находитесь на ПК, вы можете запустить "Мой проводник телефона" на ПК, "MyPhoneExplorer Client" на телефоне, установите режим непрерывного обновления экрана и используйте Wink, чтобы пользовательскую прямоугольную область вашего экрана в окне "Мой телефон-проводник" с вашей собственной скоростью захвата. Затем конвертируйте в FLV в Wink, затем конвертируйте из Flash видео в MPG с WinFF.

Ответ 16

Я не использовал приложение, но я видел Rec. как способ сделать это, но вам нужно root телефон.

Ответ 17

В Android Lollipop (5) добавлена ​​новая функция, которая позволяет снимать экран который объясняется здесь

Вот пример

Вызов startActivityForResult, подобный этому

startActivityForResult(mProjectionManager.getScreenCaptureIntent(), PERMISSION_CODE);

Затем запишите результат

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode != PERMISSION_CODE) {
        Log.e(TAG, "Unknown request code: " + requestCode);
        return;
    }
    if (resultCode != RESULT_OK) {
        Toast.makeText(this,
                "User denied screen sharing permission", Toast.LENGTH_SHORT).show();
        return;
    }
    mMediaProjection = mProjectionManager.getMediaProjection(resultCode, data);
    mVirtualDisplay = createVirtualDisplay();
}