Управляем чем угодно откуда угодно

Не нужен GStreamer под Android

Обсуждение клиентского ПО для доступа к виртурилке, управления и мониторинга

Не нужен GStreamer под Android

Сообщение merofeev » 10 ноя 2013, 05:57

Ранее я пытался реализовать прием видео на андройде с помощью gstreamer, и даже выкладывал некоторые свои наработки на этот форум. Но возникали проблемы с декодированием H264. Да и сама идея gstreamer для аднройда мне не нравилась, какой-то он тяжеловесный и неуклюжий.
Это привело меня к идее приема видео на андроиде с использованием только нативных средств (в частности MediaCodec)
Это позволит получить следующие преимущества:
* Аппаратное декодирование
* Легковесное приложение (не нужно тащить кучу библиотек)
* Лучшая переносимость (ndk не нужно)
* Сборка без всяких плясок с бубном

https://dl.dropboxusercontent.com/u/213 ... tivity.apk - вот такой proof-of-concept у меня получился.
Стриминг с виртурилки нужно запускать после старта приложения следующей командой (обратите внимание она не такая как всегда)
Код: Выделить всё
gst-launch v4l2src always-copy=false chain-ipipe=true ! video/x-raw-yuv,format='(fourcc)'NV12, width=640, height=480, framerate='(fraction)'30/1 ! dmaiaccel  ! dmaienc_h264 ddrbuf=true rcalgo=0 bytestream=true headers=true encodingpreset=2 ratecontrol=1 intraframeinterval=46 idrinterval=46 targetbitrate=1000000 ! udpsink port=3000  host=ip_телефона


Т.к. приложение всего лишь иллюстрация концепции, оно обильно сдобрено багами. Мне потребуется некоторое время, чтобы их исправить.
Тем не менее прошу уважаемых форумчан, немного потестировать приложение на своих девайсах.
merofeev
 
Сообщения: 25
Зарегистрирован: 08 сен 2013, 04:45

Re: Не нужен GStreamer под Android

Сообщение Noor » 10 ноя 2013, 17:35

Приложение не устанавливается, синтаксическая ошибка
Мастер сам устанавливает закон
Noor
 
Сообщения: 341
Зарегистрирован: 04 сен 2013, 20:03

Re: Не нужен GStreamer под Android

Сообщение merofeev » 10 ноя 2013, 17:56

Noor писал(а):Приложение не устанавливается, синтаксическая ошибка

На каком устройстве проверяете? Какая версия андройд? Разрешена ли установка из неизвестных источников? Можно подробнее какую ошибку выдает?
merofeev
 
Сообщения: 25
Зарегистрирован: 08 сен 2013, 04:45

Re: Не нужен GStreamer под Android

Сообщение Noor » 10 ноя 2013, 18:28

На смартфоне, Анрдоид 4,03 пишет "при синтаксическом анализе пакета произошла ошибка" вот и все
Мастер сам устанавливает закон
Noor
 
Сообщения: 341
Зарегистрирован: 04 сен 2013, 20:03

Re: Не нужен GStreamer под Android

Сообщение merofeev » 10 ноя 2013, 18:49

Noor писал(а):На смартфоне, Анрдоид 4,03 пишет "при синтаксическом анализе пакета произошла ошибка" вот и все

Да, об этом недостатке я забыл. MediaCodec появился в api level 16 а это Android 4.1
merofeev
 
Сообщения: 25
Зарегистрирован: 08 сен 2013, 04:45

Re: Не нужен GStreamer под Android

Сообщение Dimano » 10 ноя 2013, 20:35

Samsung Galaxy S3
Android 4.1.2
Прошивка v2r от 28.10.2013
Устанавливается, но видео не показывает. В консоле v2r следующее:
Код: Выделить всё
Setting pipeline to PAUSED ...
libv4lconvert: warning more framesizes then I can handle!
Pipeline is live and does not need PREROLL ...
WARNING: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Failed to set
norm for device '/dev/video0'.
Additional debug info:
v4l2_calls.c(749): gst_v4l2_set_norm (): /GstPipeline:pipeline0/GstV4l2Src:v4l2s
rc0:
system error: Invalid argument
WARNING: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Video input de
vice did not accept new frame rate setting.
Additional debug info:
v4l2src_calls.c(331): gst_v4l2src_set_capture (): /GstPipeline:pipeline0/GstV4l2
Src:v4l2src0:
system error: Invalid argument
Setting pipeline to PLAYING ...
New clock: GstSystemClock

p.s. Virt2RealDroid работает
Dimano
 
Сообщения: 35
Зарегистрирован: 17 окт 2013, 12:23

Re: Не нужен GStreamer под Android

Сообщение merofeev » 10 ноя 2013, 21:23

хм, странно. а команду вводите такую же как и в первом посте? и запускаете стрим после старта приложения на телефоне? и еще попробуйте, пожалуйста, перезагрузить телефон (этот MediaCodec на моей xperia Z однажды заглючил и отказывался работать до перезагрузки)
upd> и камера в 640x480 настроена?


offtopic:
p.s. Virt2RealDroid работает

о, вы один из тех десяти кто его скачал). спасибо за тестирование. Возможно я и погорячился, что gstreamer не нужен.
merofeev
 
Сообщения: 25
Зарегистрирован: 08 сен 2013, 04:45

Re: Не нужен GStreamer под Android

Сообщение Dimano » 10 ноя 2013, 22:14

merofeev писал(а):хм, странно. а команду вводите такую же как и в первом посте? и запускаете стрим после старта приложения на телефоне? и еще попробуйте, пожалуйста, перезагрузить телефон (этот MediaCodec на моей xperia Z однажды заглючил и отказывался работать до перезагрузки)
upd> и камера в 640x480 настроена?
Да, я всё делаю по инструкции, телефон перегрузил, "cameramode.sh 480" сделал, видео нет :(
Dimano
 
Сообщения: 35
Зарегистрирован: 17 окт 2013, 12:23

Re: Не нужен GStreamer под Android

Сообщение realizator » 10 ноя 2013, 23:07

Sony Xperia V (LT25i)
Android 4.1.2

Приложение установилось без проблем, запустилось с первого раза.
Трансляция пошла с первого-же запуска.
Картинка идет во весь экран, но "растянута" по горизонтали.
Задержка примерно 0,5 секунды (на глаз)

UPD> Прошивка от 04 октября, как в статье для чайников http://virt2real.com/content/145, в консоли сижу по USB.
Аватара пользователя
realizator
virt2real team
 
Сообщения: 640
Зарегистрирован: 17 фев 2012, 23:18

Re: Не нужен GStreamer под Android

Сообщение Dimano » 10 ноя 2013, 23:22

merofeev писал(а):на моей xperia Z

realizator писал(а):Sony Xperia V (LT25i)

Это заговор SONY! :)

Завтра попробую с другой прошивкой.
Dimano
 
Сообщения: 35
Зарегистрирован: 17 окт 2013, 12:23

След.

Вернуться в Софт на управляющих устройствах (iOS, Android, Win/Mac/Linux)

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron