Страница 6 из 9

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

СообщениеДобавлено: 16 окт 2013, 15:06
merofeev
Коллега, в чем секрет успеха? Что пришлось изменить?

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

СообщениеДобавлено: 16 окт 2013, 15:11
COBECTb
merofeev писал(а):Коллега, в чем секрет успеха? Что пришлось изменить?


в строке инициализации pipeline на приеме после всех caps "! rtph264depay ! ffdec_h264 ! autovideosink" и все.
queue - помоему нам больше всего мешает.

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

СообщениеДобавлено: 16 окт 2013, 15:15
merofeev
Хм, h264parse я, кажется, пробовал на андроиде убирать, и вроде не помогло. Ну что же вечером еще разок попробую.

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

СообщениеДобавлено: 16 окт 2013, 15:17
COBECTb
Кстати во всяких туториалах написано что caps надо брать те что на сервере, а как их получить?
Помоему должны выводиться куда-то после запуска gst-launch на сервере.
H.264 RTP Streaming

This section gives example where EVM acts as streaming server, which captures, encodes and transmit via udp. Host PC can be used as client to decode.

H.264 Encode/Stream/Decode A simple RTP server to encode and transmit H.264.

gst-launch -v videotestsrc ! TIVidenc1 codecName=h264enc engineName=codecServer ! rtph264pay pt=96 ! udpsink host=<HOST_PC_IP> port=5000

When the pipeline starts to run, you'll see something that looks like this:

/GstPipeline:pipeline0/GstUDPSink:udpsink0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, profile-level-id=(string)42801e, sprop-parameter-sets=(string)\"Z0KAHukCg+QgAAB9AAAdTACA\\,aM48gA\\=\\=\", payload=(int)96, ssrc=(guint)3417130276, clock-base=(guint)2297521617, seqnum-base=(guint)48503

Make a note of caps="application/x-rtp, media=(string)video ................" string and pass this string in client below

A simple RTP client to decodes H.264 and display on HOST machine

gst-launch -v udpsrc port=5000 caps="<CAPS_FROM_SERVER>" ! rtph264depay ! ffdec_h264 ! xvimagesink



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

СообщениеДобавлено: 16 окт 2013, 16:11
orangeudav
а точно ffdec_h264 ? avdec_h264 не работает?

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

СообщениеДобавлено: 16 окт 2013, 16:18
COBECTb
orangeudav писал(а):а точно ffdec_h264 ? avdec_h264 не работает?

avdec_h264 - не работает.
"Unable to build pipeline: no element "avdec_h264""

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

СообщениеДобавлено: 16 окт 2013, 16:37
merofeev
COBECTb писал(а):Кстати во всяких туториалах написано что caps надо брать те что на сервере, а как их получить?
Помоему должны выводиться куда-то после запуска gst-launch на сервере.

Просто надо добавить флаг -v при запуске gst-launch. и он выведет кучу всего и caps в конце

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

СообщениеДобавлено: 19 окт 2013, 17:52
dimitrimus
привет! хотел спросить, пытаюсь завести получение стрима на c++, по аналогии с тем, как тут на андроиде, но при попытке добавить строчку
Код: Выделить всё
udpsrc port=3000 ! \"application/x-rtp, .... se show-preroll-frame=false
(пробовал разные, от тех, что в инструкции, до тех, что здесь перечислены, все время получаю результат:
Error: Internal data flow error.

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

СообщениеДобавлено: 19 окт 2013, 18:25
merofeev
Ты пробовал собирать примеры из их SDK http://docs.gstreamer.com/display/GstSD ... +tutorials ? Я бы советовал начать именно с них и взять наиболее подходящий за основу приложения. Относительно пайплайна вызывающего ошибку можно попробовать узнать из-за какого элемента она случается, выкидывая по одному элементу из самого конца, добавив в конце fakesink (который точно все сожрет и не подавится)

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

СообщениеДобавлено: 19 окт 2013, 18:49
dimitrimus
merofeev писал(а):Ты пробовал собирать примеры из их SDK http://docs.gstreamer.com/display/GstSD ... +tutorials ? Я бы советовал начать именно с них и взять наиболее подходящий за основу приложения. Относительно пайплайна вызывающего ошибку можно попробовать узнать из-за какого элемента она случается, выкидывая по одному элементу из самого конца, добавив в конце fakesink (который точно все сожрет и не подавится)


да, я как раз брал за основу вот этот пример: http://docs.gstreamer.com/display/GstSD ... +Streaming
просто странно, что если с теми же параметрами звать приложение gst-launch, то все работает