gstreamer use with ip cameras

Alex Kuklin alex at kuklin.ru
Mon Aug 1 04:14:51 PDT 2011


Hello

I'm working on video surveillance application processing video feed from
ip cameras.
Currently I have several D-Link DCS-930 and similar devices providing
MJPEG feed.

First, i tried to pick up the feed with an example from
http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-souphttpsrc.html
manual page:

> gst-launch -v souphttpsrc location=http://10.11.12.13/mjpeg do-timestamp=true ! multipartdemux
>    ! image/jpeg,width=640,height=480 ! matroskamux
>    ! filesink location=mjpeg.mkv

The above pipeline reads a motion JPEG stream from an IP camera using
the HTTP protocol, encoded as mime/multipart image/jpeg parts, and
writes a Matroska motion JPEG file.

The problem is, multipartdemux does not work if the stream does not
start with delimiter:

>(BOS)
>Content-length: 34698
>Date: 01-03-2010 06:38:13 PM IO_00000000_PT_000_000
>Content-type: image/jpeg
>
>(data)
>--video boundary--
>(next header)

Adding delimiter to stream with
> ( echo "--video boundary--";  curl http://camera/MJPEG.CGI ) |
gst-launch fdsrc ! multipartdemux boundary="video boundary--" ! jpegdec
!  xvimagesink
helps, but shouldn't multipartdemux handle this situation?

Next, i couldn't find a way to convert stream to some reasonable format.
MKV-encapsulated MJPEG isn't good enough as it is not supported by most
playes.
Could someone point me to appropriate manual/tutorial on building filter
chain?

Thanks a lot.

-- 
Alex



More information about the gstreamer-devel mailing list