gstreamer use with ip cameras

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


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
manual page:

> gst-launch -v souphttpsrc location= 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:

>Content-length: 34698
>Date: 01-03-2010 06:38:13 PM IO_00000000_PT_000_000
>Content-type: image/jpeg
>--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
Could someone point me to appropriate manual/tutorial on building filter

Thanks a lot.


More information about the gstreamer-devel mailing list