2016-06-09 17 views
2

У меня нет большого опыта работы с gstreamer, и я не мог найти что-то в Интернете, чтобы понять это.Стрим Android-камеры как H264 mpeg-ts по UDP с использованием GStreamer

Я использую this open-source, чтобы разработать приложение для Android для потоковой камеры как H264 mpegts поверх UDP.

Я застрял с трубопроводом, где у меня есть два рабочих трубопровода, с которыми я просто не могу слиться, чтобы работать вместе. Трубопровод оригинального OpenSource в:

"ahcsrc ! queue ! glimagesink name=vsink sync=false" 

(когда ahcsrc означает андроида-аппаратно-камеры-Src)

И мои испытания трубопровода:

"videotestsrc ! decodebin ! x264enc bframes=2 ! mpegtsmux ! udpsink host=192.168.102.74 port=1234" 

Оба отлично работает.

Моя цель состоит в том, чтобы взять мой тестовый трубопровод, и переключить videotestsrc к ahcsrc как в:

"ahcsrc ! decodebin ! x264enc bframes=2 ! mpegtsmux ! udpsink host=192.168.102.74 port=1234" 

К сожалению не повезло там. Было бы очень полезно получить любую помощь!

Редактировать: Я попытался добавить журналы везде, а затем увидел, что ошибок нет, за исключением того, что каждый модуль изменил его статус с PAUSED на PLAYING, кроме udpsink.

Я добавил к нему «udpsink async = false», благодаря которому он стал ИГРАТЬ, но пакет не отправлен и никаких заметных ошибок. Может быть, у раковины нет данных?

Edit2: После попытки все, что я мог бы найти, что думаю, что это может быть проблема с ahcsrc, так как этот трубопровод:

ahcsrc ! video/x-raw-yuv, framerate=25/1, width=640, height=360 ! videoconvert..... 

результат с

Could not link ahcsrc0 to videoconvert0

В конце концов, она является частью из gst-plugins-bad. Любая конфлинация была бы замечательной.

ответ

0

Что вы имеете в виду не повезло? любая ошибка?

Выход из ahcsrc выглядит raw yuv - может быть, нет необходимости использовать decodebin, просто видеоконвертер.

Вы можете добавить очередь после ЦСИ для лучшей производительности, не уверен, если это будет работать, но это он:

ahcsrc ! queue ! videoconvert ! x264enc bframes=2 ! mpegtsmux ! udpsink host=192.168.102.74 port=1234 

Пожалуйста, добавьте некоторые журналы с запуска вашего приложения с переменным окр GST_LAUNCH=4 ./your-app и вставить их куда-нибудь. .

+0

Пытался запустить ваш трубопровод. Я получил эту ошибку: gst_video_overlay_set_window_handle: утверждение «GST_IS_VIDEO_OVERLAY (overlay)» не удалось – Weknin

+0

моя труба не была протестирована .. так что, возможно, что-то не так .. но почему бы какой-либо элемент моей трубы произвел эту ошибку - похоже, вы используете некоторые видеопотоки - не так ли? добавьте еще несколько журналов с этим трубом - в идеале на ваш вопрос (другие люди заметят, когда вы обновите свой вопрос). Вы можете использовать пастебины и скопируйте важные части – nayana