Сохранение видеозаписи в режиме реального времени на SD-карте с помощью Local Socket в Android – Видео не воспроизводится

Попытка захватить видео и сохранить его на SD-карте в форматах Mp4 / 3gp, используя локальный сокет. Возможность записывать байты по байтам на SD-карту, но видеофайл не воспроизводится. Я рассмотрел множество примеров:

https://github.com/fyhertz/spydroid-ipcamera

https://github.com/mconf/sipdroid

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

private void skipHeader() throws IOException { // Skip all atoms preceding mdat atom byte[] buffer = new byte[3]; while (true) { while (mReceiver.getInputStream().read() != 'm'); mReceiver.getInputStream().read(buffer,0,3); if (buffer[0] == 'd' && buffer[1] == 'a' && buffer[2] == 't') break; } } 

Наконец-то ничего не работало для меня. Что мне нужно сделать для создания этих видеофайлов с помощью Local Socket

Solutions Collecting From Web of "Сохранение видеозаписи в режиме реального времени на SD-карте с помощью Local Socket в Android – Видео не воспроизводится"

Из вашего объяснения, что вы имеете в виду для реализации, является экранный рекордер. Конечно, вы намерены, что система будет реализована как часть технологии, предлагаемой вашим программным обеспечением.

Введите описание изображения здесь

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

Введите описание изображения здесь

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

Введите описание изображения здесь

Также важно достичь хорошей скорости, которая позволяет по меньшей мере захватывать 20 экранов в секунду в Android для разных размеров экрана, обеспечивая четкое разрешение и низкое потребление ЦП. Все эти характеристики оставят ваше решение стабильным и все еще выглядящим твердотельным.

Введите описание изображения здесь

Я думаю, что лучший подход, который вы можете предпринять, который сэкономит время и массу головных болей, будет включать код «sji-android-capture-capture» как часть вашего проекта. Если ваши целевые устройства – Android 4.2-4.4, вы можете идти, поддерживая эти версии Android. Более подробную информацию и исходный код вы найдете в репозитории Github . Кроме того, вы можете использовать образец экрана Android ScreenCapture для захвата экрана устройства в режиме реального времени.