Суть такова. Собрал из гит репов последний GStreamer(1.0.9), а так же все плагины (base, good, bad, ugly, libav) и rtsp-server. Установил (make install). Модифицировал один из примеров(gst-rtsp-server/examples) простейшего сервера на стриминг с вебки - поменял строчку gst_rtsp_media_factory_set_launch()... на найденную в на одном из форумов:
gst_rtsp_media_factory_set_launch (factory,
"( "
"uvch264src device=/dev/video0 name=src auto-start=true iframe-period=1000 src.vidsrc ! queue ! video/x-h264,width-1920,height=1080,framerate=30/1 ! h264parse ! rtph264pay pt=96 name=pay0 src.vfsrc ! queue ! video/x-raw,width=432,height=240,framerate=30/1 ! xvimagesink "
")");
Всё скомпилилось, запустилось, но при попытке подключиться к вещанию в логи сыпятся ошибки и подключения не происходит:
0:00:02.334165091 [335m 6880 [00m 0x9362af0 [31;01mERROR [00m [00;01;37;41m GST_PIPELINE ./grammar.y:672:priv_gst_parse_yyparse: [00m no element "uvch264src"
0:00:02.334239918 [335m 6880 [00m 0x9362af0 [31;01mERROR [00m [00;01;37;41m GST_PIPELINE ./grammar.y:942:priv_gst_parse_launch: [00m Unrecoverable syntax error while parsing pipeline ( uvch264src device=/dev/video0 name=src auto-start=true iframe-period=1000 src.vidsrc ! queue ! video/x-h264,width-1920,height=1080,framerate=30/1 ! h264parse ! rtph264pay pt=96 name=pay0 src.vfsrc ! queue ! video/x-raw,width=432,height=240,framerate=30/1 ! xvimagesink )
** (gstrtspserver-test1_0:6880): CRITICAL **: could not parse launch syntax (( uvch264src device=/dev/video0 name=src auto-start=true iframe-period=1000 src.vidsrc ! queue ! video/x-h264,width-1920,height=1080,framerate=30/1 ! h264parse ! rtph264pay pt=96 name=pay0 src.vfsrc ! queue ! video/x-raw,width=432,height=240,framerate=30/1 ! xvimagesink )): no element "uvch264src"
** (gstrtspserver-test1_0:6880): CRITICAL **: could not create element
0:00:02.334412208 [335m 6880 [00m 0x9362af0 [31;01mERROR [00m [00m rtspclient rtsp-client.c:584:find_media: [00m client 0x94eec18: can't create media
0:00:02.334508028 [335m 6880 [00m 0x9362af0 [31;01mERROR [00m [00m rtspclient rtsp-client.c:1724:handle_describe_request: [00m client 0x94eec18: no media
(gstrtspserver-test1_0:6880): GLib-CRITICAL **: unblock_source: assertion `!SOURCE_DESTROYED (source)' failed
(gstrtspserver-test1_0:6880): GLib-CRITICAL **: unblock_source: assertion `!SOURCE_DESTROYED (source)' failed
До этого использовал GStreamer 0.10, там стримилось с такой строкой:
gst_rtsp_media_factory_set_launch (factory,
"( "
"v4l2src device=/dev/video0 "
"! video/x-raw-yuv,width=352,height=288,framerate=30/1 "
"! ffmpegcolorspace "
"! videoscale "
"! ffenc_mpeg4 tune=zerolatency byte-stream=true threads=2 speed-preset=3 "
"! ffenc_mpeg4 tune=zerolatency byte-stream=true bitrate=1050 threads=0 speed-preset=3"
"! v4l2sink "
"! rtpmp4vpay pt=96 name=pay0 "
")");
но тут совсем не хочет работать, ругается почти на каждый элемент, даже при замене на логически похожие (например ffmpegcolorspace заменял на autoconvert).
Так кто-нибудь может быть знает как это дело завести? Может какие мысли есть? Как понимаю no element «uvch264src» означает что элемент не найден, но как это исправить не знаю.
Сразу оговорюсь, vlc и ffmpeg(ffserver/avserver) пробовал, не впечатлило, не подходит вобщем. Нужно именно решение с GStreamer 1.0+