Intereting Posts
Открытые карты улиц (osmdroid) показывают серые плитки, а не карту на ПК Включить клавиатуру электронной почты в android для ввода типа электронной почты Android: получите программную информацию по программному обеспечению Android в тестировании подписки на приложения Как поддерживать несколько версий Android в коде? Шкала EditText с выбором Добавление ActionBar к шаблону активности Google Карт по умолчанию в Android Studio Как удалить / скрыть логотип Paypal с Card.io Phonegap iOS и Android? Как поймать, что панорамирование и масштабирование карты действительно закончены? Передача данных RecyclerView CardView с кликами API для зависания Samsung с пальцем Анимированный фон, напоминающий приложение для будильника FAB с якорем в компоновке координатора имеет дополнительную маржу в андроиде до леденца Как удалить встроенную поддержку проекта Android в eclipse, потому что eclipse показывает ошибки в jni? Как отличаются действия popBackStack () и replace ()?

Android – потоковая камера как поток RTMP

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

На данный момент есть две проблемы: я хочу поддерживать API 9+, а RTMP не является родным, поддерживаемым Android.

Я осмотрел и нашел это сообщение SO. Конвертируйте видео входной поток в RTMP и https://github.com/yixia/VitamioBundle . Первый предложил библиотеку , в которой практически нет документации. Последнее, вероятно, поддерживает его (?), Но для этого требуется API 14+.

Есть ли приличные примеры или библиотеки там, что поддерживает потоковое RTMP с Android-устройства? Я также прочитал кое-что о преобразовании RTSP или FFMPEG, если это жизнеспособный путь, то я думаю, этого будет достаточно.

Изменить 1:

Я нашел эту библиотеку (она очень похожа на упомянутую выше) и попыталась работать. Я импортировал его в Android Studio и написал некоторый код, но он, похоже, рушится внутренне с ошибкой java.lang.NoClassDefFoundError RTSP Codec Factory . Похоже, что это не слишком хорошо работает на Android.

Кроме того, я столкнулся с Adobe AIR несколько раз. Я не хочу кодировать в Action Script 3 (AS3), поскольку эта библиотека будет просто (небольшой) частью родного приложения. Если Adobe Air имеет библиотеку, о которой я не знаю, то я бы с радостью ее интегрировал, если это возможно.

Solutions Collecting From Web of "Android – потоковая камера как поток RTMP"

В принятом ответе на вопрос, который вы связали, кто-то предлагает использовать JavaCV.

Он требует API 8 или новее и имеет класс FFmpegFrameRecorder .

Ссылка на github:

https://github.com/bytedeco/javacv

У них даже есть полный образец захвата flv (он довольно большой, поэтому я не буду вставлять его здесь): https://github.com/bytedeco/javacv/blob/master/samples/RecordActivity.java

В вашем случае вам, вероятно, придется заменить:

 private String ffmpeg_link = "/mnt/sdcard/stream.flv"; 

с

 private String ffmpeg_link = "rtmp://<server>:<port>/stream"; 

Вы должны взглянуть на spydroid ; Он делает именно то, что вы ищете. Их сайт можно найти здесь: https://code.google.com/p/spydroid-ipcamera/

Они предоставляют библиотеку, которую вы можете использовать, а также объяснение различных вариантов потоковой передачи и некоторых примеров кода. Указанную информацию можно найти здесь: https://github.com/fyhertz/libstreaming

Если вы можете публиковать на своем устройстве Android с помощью протокола, поддерживаемого ffmpeg (см. Список поддерживаемых протоколов ), вы можете использовать следующую команду для передачи видео на ваш сервер:

 ffmpeg -re -i <input link> -vcodec h264 -ar 44100 -f flv "rtmp://<host>/<publication>"