receiving video and onvif rtp streams from rtspsrc

Tim Müller tim at centricular.com
Sat Mar 28 07:31:27 PDT 2015


On Sat, 2015-03-28 at 15:00 +0100, marc lievens wrote:

Hi,

(please don't forget to add a meaningful subject to your mails)

> From a camera I want to receive the video stream (h264) and the onvif
> data
> I seem to be able to receive both from different pipelines but when I
> combine both with a tee element it does not work.
> Depending of the changes I make I get errors, like :
> /gstPipeline:pipeline0/GstRtspSrc:rtpsrc0:udpsrc3: internal data error
> /gstPipeline:pipeline0/GstRtspSrc:rtpsrc0:udpsrc3: streaming task
> paused, reason not linked.(-1)
> 
> I think it has something to do with the caps, but I can't figure out
> what is wrong. Any help is Welkom
> The pipeline is :
> gst-launch-1.0 rtsp:"url' ! tee name=tp ! queue ! rtph264depay !
> h264parse ! matroskamux ! filesink location=test-1.mkv tp. ! queue !
> application/x-rtp, media=application ! fakesink

This doesn't look right at first glance. What you're doing here is take
the first RTP stream coming out of rtspsrc (which might be the video, or
metadata, or audio), and then split it via a tee. Thing is, both of the
split branches of the tee must have the same data, whereas you seem to
want h264 rtp data in one branch and application/x-rtp,media=application
in the other branch. That's imposssible.

rtspsrc will give you one source pad per stream, so I think you don't
want to use the tee element here, but tap the streams directly from
rtspsrc, like (untested):

  rtspsrc location=rtsp://.... name=src \
    src. ! queue ! rtph264depay ! ... \
    src. ! application/x-rtp,media=application ! queue ! fakesink

Cheers
 -Tim

-- 
Tim Müller, Centricular Ltd - http://www.centricular.com



More information about the gstreamer-devel mailing list