[gst-devel] Motion jpeg depayload.

Vladimir Eremeev wl2776 at gmail.com
Tue Dec 25 13:31:45 CET 2007


Hi all.

I am trying to receive video over RTSP and store it to disk using
GStreamer.

I have already added some additional functionality to the RTSP plugin
(it now handles redirects (301 and 302), however I must test it
thoroughly before submitting the patch).

RTSP server gives me the following line, describing media
  m=video 0 RTP/AVP 26
when answers the DESCRIBE request.

RTP payload type 26 is Motion Jpeg (RFC 2035).

Consider rtpmpeg2tdepay:
$ gst-inspect rtpmpeg2tdepay
[skip]
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      application/x-rtp
                  media: video
                payload: [ 96, 127 ]
             clock-rate: [ 1, 2147483647 ]
          encoding-name: MP2T-ES
      application/x-rtp
                  media: video
                payload: 33
             clock-rate: [ 1, 2147483647 ]
[skip]

Am I correct in thinking that this depayloader supports types 33, 96,
and 127?

If yes, then GStreamer looks like missing MJpeg depayloader.

However, it has generic depayloader rtpdepay.
How should I do with this depayloader?
Currently I am getting:

$ gst-launch rtspsrc location="rtsp://192.168.24.23/stream.cgi?usrid=0&mgrid=116&devtp=1&prtid=o1&devid=1&picsz=5000x5000" protocols=udp-unicast ! rtpdepay ! fakesink
Setting pipeline to PAUSED ...

(gst-launch-0.10:24783): GStreamer-CRITICAL **:gst_pad_link_prepare:assertion `GST_IS_PAD (srcpad)' failed

Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
ERROR: from element /pipeline0/rtspsrc0/udpsrc0: Internal data flow
error. Additional debug info:
gstbasesrc.c(2099): gst_base_src_loop (): /pipeline0/rtspsrc0/udpsrc0:
streaming task paused, reason not-linked (-1)
Execution ended after 32606000 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
FREEING pipeline ...

RTSP server logs show that it receives PLAY request from gst-launch.
Removing rtpdepay from the pipeline above makes gstreamer to receive
packets and move them to the fake sink.

Am I doing something wrong?

Thanks
Vladimir




More information about the gstreamer-devel mailing list