Help with Gstreamer and RTSP with Axis Camera
Tom Hendrick
sdtom182 at yahoo.com
Sun Apr 24 15:57:03 PDT 2011
Hi Nicola and others,
I need a little advice using gstreamer for my application. I am using an Axis 212 PTZ camera to feed an rtsp mpeg4 stream with gstreamer to a C++ function which performs modulation of the signal. From there the output goes to hardware. Unfortunately the hardware seems to want a constant bitrate due to the way it samples and outputs the signal.
Are there any tricks or muxers that might help with this? I have the Axis camera configured to a constant bitrate with fixed frame rate but I find that it still varies, especially when there is no motion in the camera's viscinity, and then sudden motion. This causes problems because the C++ modulator works at a near constant bitrate and the hardware expects constant bitrate too so when the bitrate changes a lot, I see random gaps of no signal on the hardware output. When the camera has a more stable bitrate output, I don't see those gaps. Unfortunately big changes to the C++ code is not something easy for me to do since I didn't develop the code.
I heard there is something called MPEG4-TS which helps to give a constant bit rate but I don't know if that even works in gstreamer.
Here is an example of my transmit gstreamer call:
gst-launch-0.10 -e rtspsrc location=rtsp://192.168.0.90/mpeg4/media.amp ! rtpmp4vdepay ! mpeg4videoparse ! gdppay ! filesink location=txfifo.ts&
the receiver looks like (txout.ts is the demodulated piped file):
gst-launch-0.10 filesrc location=txout.ts ! gdpdepay ! ffdec_mpeg4 ! xvimagesink
I was hoping to try something simple with gstreamer because changes to the C++ code are too difficult for me to do. Any advice would be greatly appreciated.
Thanks. Tom
--- On Sat, 4/9/11, Mailing List SVR <lists at svrinformatica.it> wrote:
From: Mailing List SVR <lists at svrinformatica.it>
Subject: Re: Help with Gstreamer and RTSP with Axis Camera
To: "Tom Hendrick" <sdtom182 at yahoo.com>
Cc: "Discussion of the development of and with GStreamer" <gstreamer-devel at lists.freedesktop.org>
Date: Saturday, April 9, 2011, 10:54 PM
I guess the latency is the pipe, gstreamer is perfectly able to record a
stream on disk and at the same time display it, why do you use a pipe?
Please take a look here:
http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-tee.html
Nicola
Il giorno sab, 09/04/2011 alle 15.45 -0700, Tom Hendrick ha scritto:
> Hi Nikola,
>
> Thanks again! That works but if I move my hand by the camera, there
> is latency before I see it on the gst-launch-0.10 playback screen, and
> when my hand moves it moves really fast when it shows up.
>
> Are there any other tricks you might know of? Again it works
> perfectly at 10kbps when I have gst-launch playbin
> uri=rtsp://192.168.0.90/mpeg4/media.amp
> running.
>
> Thanks -tom
>
> --- On Sat, 4/9/11, Mailing List SVR <lists at svrinformatica.it> wrote:
>
> From: Mailing List SVR <lists at svrinformatica.it>
> Subject: Re: Help with Gstreamer and RTSP with Axis Camera
> To: "Discussion of the development of and with GStreamer"
> <gstreamer-devel at lists.freedesktop.org>, "Tom Hendrick"
> <sdtom182 at yahoo.com>
> Date: Saturday, April 9, 2011, 10:27 PM
>
> Try "xvimagesink sync=false" should do the work,
>
> Nicola
>
>
> Il giorno sab, 09/04/2011 alle 14.51 -0700, Tom Hendrick ha
> scritto:
> > Hi Nikola or anyone else,
> >
> > In the end I will be working with named pipes with the video
> file
> > being saved by gstreamer from the axis IP camera.
> >
> > When I make a named pipe using mkfifo test.gdp
> > and then do:
> >
> > gst-launch-0.10 -e rtspsrc
> > location=rtsp://root:pass@192.168.2.127/mpeg4/media.amp !
> > rtpmp4vdepay !
> > mpeg4videoparse ! gdppay ! filesink location=/tmp/test.gdp&
> >
> > and then playback with
> >
> > gst-launch-0.10 filesrc location=/tmp/test.gdp ! gdpdepay !
> > ffdec_mpeg4 ! xvimagesink
> >
> >
> > it works perfectly with the camera bitrate set at 100kbps
> and I see
> > the live video feed from the camera.
> >
> > With the camera set at 10kbps, it starts, and I see the
> gst-launch
> > playback window with the vide feed but it updates extremely
> slow. I
> > see a message in the command line saying
> >
> >
> > There may be a timestamping problem, or this computer is too
> slow.
> > WARNING: from element /GstPipeline:pipeline0/
> > GstXvImageSink:xvimagesink0: A lot of buffers are being
> dropped.
> > Additional debug info:
> > gstbasesink.c(2686): gst_base_sink_is_too_late
> > (): /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0:
> > There may be a timestamping problem, or this computer is too
> slow.
> >
> >
> > Does anyone have advice on additional parameters I may need
> to use?
> > Unfortunately I have a need to work at 10kbps. At this low
> of bitrate
> > I have problems with mplayer and mencoder.
> >
> > However even at 10kbps, the following works fine
> >
> > gst-launch playbin uri=rtsp://192.168.0.90/mpeg4/media.amp
> >
> >
> > Thanks
> > Tom
> >
> >
> >
> > --- On Sat, 4/9/11, Tom Hendrick <sdtom182 at yahoo.com> wrote:
> >
> > From: Tom Hendrick <sdtom182 at yahoo.com>
> > Subject: Re: Help with Gstreamer and RTSP with Axis
> Camera
> > To: lists at svrinformatica.it, "Discussion of the
> development of
> > and with GStreamer"
> <gstreamer-devel at lists.freedesktop.org>
> > Date: Saturday, April 9, 2011, 9:11 PM
> >
> > Nicola, Thanks so much!
> >
> > When I do:
> >
> > gst-launch-0.10 -e rtspsrc
> >
> location=rtsp://root:pass@192.168.2.127/mpeg4/media.amp !
> > rtpmp4vdepay !
> > mpeg4videoparse ! gdppay ! filesink
> location=/tmp/test.gdp
> >
> > and then playback with
> >
> > gst-launch-0.10 filesrc location=/tmp/test.gdp !
> gdpdepay !
> > ffdec_mpeg4 ! xvimagesink
> >
> >
> > It works great. Do you think this uses a lot more
> processing
> > power than using something like mencoder or openRTSP
> to just
> > copy the stream and save it to file?
> >
> > Thanks so much for your help
> > Tom
> >
> > --- On Sat, 4/9/11, Mailing List SVR
> <lists at svrinformatica.it>
> > wrote:
> >
> > From: Mailing List SVR
> <lists at svrinformatica.it>
> > Subject: Re: Help with Gstreamer and RTSP
> with Axis
> > Camera
> > To: "Tom Hendrick" <sdtom182 at yahoo.com>
> > Cc: "Discussion of the development of and
> with
> > GStreamer"
> <gstreamer-devel at lists.freedesktop.org>,
> > t.i.m at zen.co.uk
> > Date: Saturday, April 9, 2011, 8:57 PM
> >
> > Sorry the right pipe is the following:
> >
> > gst-launch-0.10 -e rtspsrc
> >
> location=rtsp://root:pass@192.168.2.127/mpeg4/media.amp !
> rtpmp4vdepay !
> > mpeg4videoparse ! matroskamux ! filesink
> > location=/tmp/test.mkv
> >
> > and then playback with playbin or any
> stardard player
> >
> > or
> >
> > gst-launch-0.10 -e rtspsrc
> >
> location=rtsp://root:pass@192.168.2.127/mpeg4/media.amp !
> rtpmp4vdepay !
> > mpeg4videoparse ! gdppay ! filesink
> > location=/tmp/test.gdp
> >
> > and then playback with
> >
> >
> > gst-launch-0.10 filesrc
> location=/tmp/test.gdp !
> > gdpdepay !
> > ffdec_mpeg4 ! xvimagesink
> >
> > Nicola
> >
> > Il giorno sab, 09/04/2011 alle 13.14 -0700,
> Tom
> > Hendrick ha scritto:
> > > Thanks so much,
> > > When I run:
> > >
> > > gst-launch rtspsrc
> >
> location=rtsp://192.168.0.90/mpeg4/media.amp !
> > > rtpmp4vdepay ! matroskamux ! filesink
> > location=test.mkv
> > >
> > > I get : streaming task paused, reason
> > not-negotiated (-4)
> > >
> > > when I run :
> > >
> > > gst-launch rtspsrc
> >
> location=rtsp://192.168.0.90/mpeg4/media.amp !
> > > rtpmp4vdepay ! gdppay ! filesink
> location=test.gdp
> > >
> > > Control ^C out of it, and then:
> > >
> > > gst-launch filesrc location=test.mkv !
> gdpdepay !
> > decodebin2 !
> > > autovideosink
> > >
> > > It works! but the quality of the image is
> much
> > lower than when I run
> > > gst-launch playbin
> > uri=rtsp://192.168.0.90/mpeg4/media.amp
> > >
> > >
> > > Is this because of the muxer, what else
> can I try?
> > >
> > > thanks
> > > Tom
> > >
> > >
> > >
> > > --- On Sat, 4/9/11, Mailing List SVR
> > <lists at svrinformatica.it> wrote:
> > >
> > > From: Mailing List SVR
> > <lists at svrinformatica.it>
> > > Subject: Re: Help with Gstreamer
> and RTSP
> > with Axis Camera
> > > To: "Discussion of the development
> of and
> > with GStreamer"
> > >
> <gstreamer-devel at lists.freedesktop.org>
> > > Cc: t.i.m at zen.co.uk, "Tom
> Hendrick"
> > <sdtom182 at yahoo.com>
> > > Date: Saturday, April 9, 2011,
> 7:25 PM
> > >
> > > You need a muxer try this:
> > >
> > > gst-launch rtspsrc
> > >
> >
> location=rtsp://192.168.0.90/mpeg4/media.amp !
> > > rtpmp4vdepay ! matroskamux !
> filesink
> > location=test.mkv
> > >
> > > then you'll be able to play the
> video with
> > playbin.
> > >
> > > You can also try:
> > >
> > > gst-launch rtspsrc
> > >
> >
> location=rtsp://192.168.0.90/mpeg4/media.amp !
> > > rtpmp4vdepay ! gdppay ! filesink
> > location=test.gdp
> > >
> > > and then:
> > >
> > > gst-launch filesrc
> location=test.mkv !
> > gdpdepay ! decodebin2 !
> > > autovideosink
> > >
> > > regards
> > > Nicola
> > >
> > >
> > >
> > > Il giorno sab, 09/04/2011 alle
> 10.33 -0700,
> > Tom Hendrick ha
> > > scritto:
> > > >
> > > > I tried:
> > > >
> > > > gst-launch rtspsrc
> > >
> >
> location=rtsp://192.168.0.90/mpeg4/media.amp !
> > > > rtpmp4vdepay ! filesink=txcap.ts
> > > >
> > > > and I didn't get the link error
> and it
> > saved to a file.
> > > >
> > > > When I try to play it with
> gstreamer
> > using:
> > > >
> > > > gst-launch playbin
> uri=file://txcap.ts, or
> > gst-launch-0.10
> > > playbin2
> > > > uri=file://txcap.ts,
> > > >
> > > > it plays too fast and the lower
> half of
> > the each frame has
> > > some weird
> > > > block distortions.
> > > >
> > > > When I do:
> > > > mplayer txcap.ts it also plays
> too fast
> > but I don't see the
> > > weird
> > > > block distortions on the lower
> left half
> > of each frame, but
> > > when I do
> > > > mplayer -fps 1 txcap.ts it plays
> fine.
> > > >
> > > >
> > > > When I do gst-launch playbin
> > >
> uri=rtsp://192.168.0.90/mpeg4/media.amp
> > > > it shows the video feed just
> fine without
> > that distotion in
> > > the lower
> > > > half. I'd like to make the
> saved file
> > work with gstreamer
> > > because I
> > > > had some cache problems with
> mplayer on
> > the receiver in the
> > > past.
> > > >
> > > > Could it have anything to do
> with the fact
> > Axis uses MPEG-ES
> > > formats?
> > > > Any other ideas?
> > > >
> > > > Thanks
> > > > Tom
> > > >
> > > > --- On Sat, 4/9/11, Tom Hendrick
> > <sdtom182 at yahoo.com> wrote:
> > > >
> > > > From: Tom Hendrick
> > <sdtom182 at yahoo.com>
> > > > Subject: Re: Help with
> Gstreamer
> > and RTSP with Axis
> > > Camera
> > > > To: t.i.m at zen.co.uk,
> "Discussion
> > of the development
> > > of and
> > > > with GStreamer"
> > >
> <gstreamer-devel at lists.freedesktop.org>
> > > > Date: Saturday, April 9,
> 2011,
> > 5:13 PM
> > > >
> > > > Thanks Tim,
> > > >
> > > > I can see a live feed
> from the
> > Axis camera when I
> > > do:
> > > >
> > > > gst-launch-0.10 playbin2
> > > >
> > uri=rtsp://192.168.0.90/mpeg4/media.amp
> > > >
> > > >
> > > > I can't figure out how
> to modify
> > my transmit and
> > > receive
> > > > commands given that I
> need to
> > depay. I've read up
> > > on the
> > > > gstreamer site and
> checked other
> > forums but still
> > > can't figure
> > > > it out. When I do
> "gst-launch
> > rtspsrc
> > > >
> >
> location=rtsp://192.168.0.90/mpeg4/media.amp !
> > > > rtpmp4gdepay !
> filesink=txcap.ts"
> > I get an error
> > > saying
> > > > "streaming task paused,
> reason
> > not-linked (-1)".
> > > >
> > > >
> > > > Do you know how I would
> modify
> > them, here they are
> > > again?
> > > >
> > > > gst-launch rtspsrc
> > > >
> >
> location=rtsp://192.168.0.90/mpeg4/media.amp !
> > > > filesink=txcap.ts
> > > >
> > > > gst-launch playbin
> > uri=file://txcap.ts
> > > >
> > > > Thanks
> > > > Tom
> > > >
> > > >
> > > > --- On Sat, 4/9/11,
> Tim-Philipp
> > Müller
> > > <t.i.m at zen.co.uk>
> > > > wrote:
> > > >
> > > > From:
> Tim-Philipp Müller
> > <t.i.m at zen.co.uk>
> > > > Subject: Re:
> Help with
> > Gstreamer and RTSP
> > > with Axis
> > > > Camera
> > > > To:
> > gstreamer-devel at lists.freedesktop.org
> > > > Date: Saturday,
> April 9,
> > 2011, 10:49 AM
> > > >
> > > > On Fri,
> 2011-04-08 at
> > 19:12 -0700, Tom
> > > Hendrick wrote:
> > > >
> > > > Hi,
> > > >
> > > > >
> > > > > As a quick
> test, I am
> > (..) just trying the
> > > > following:
> > > > >
> > > > > Transmitter :
> > > > >
> -------------------
> > > > > gst-launch
> rtspsrc
> > > >
> > >
> >
> location=rtsp://192.168.0.90/mpeg4/media.amp !
> > > > >
> filesink=txcap.ts
> > > > >
> > > > > I let this run
> for 20
> > seconds and control
> > > ^C out of
> > > > it.
> > > > >
> > > > > Receiver:
> > > > > -------------
> > > > > gst-launch
> playbin
> > uri=file://txcap.ts
> > > > >
> > > > >
> > > > > The problem is
> that when
> > I run the
> > > gst-launch
> > > >
> playbin=file://txcap.ts
> > > > > the video file
> plays
> > very fast and then
> > > closes. The
> > > > quality also
> > > > > doesn't look
> as good as
> > when I use "vlc
> > > > >
> > rtsp://192.168.0.90/mpeg4/media.amp"
> > > > >
> > > > > I'm a beginner
> with
> > gstreamer so I'm not
> > > sure how to
> > > > modify the
> > > > > transmit and
> receive
> > command lines to
> > > properly set
> > > > the frame rate,
> > > > > codec, etc.
> Also
> > another problem is that
> > > I want to
> > > > see this live on
> > > > > the receiver,
> so setting
> > gstreamer to run
> > > for a
> > > > specified amount
> of
> > > > > time so that
> the header
> > is written
> > > properly will not
> > > > allow me to see
> > > > > this real-time
> on the
> > receive side. Any
> > > > suggestions?
> > > > >
> > > >
> > > > This works I
> presume:
> > > >
> > > > gst-launch-0.10
> playbin2
> > > >
> > uri=rtsp://192.168.0.90/mpeg4/media.amp
> > > >
> > > > ?
> > > >
> > > > Note that
> rtspsrc outputs
> > RTP packets, which
> > > you need
> > > > to depayload
> using
> > > > an appropriate
> depayloader
> > (rtpmp2tdepay?
> > > > rtpmp4gdepay?
> > rtpmp4vdepay?).
> > > >
> > > > Writing RTP
> packets to
> > file like you do now
> > > is not
> > > > going to work.
> > > >
> > > > Cheers
> > > > -Tim
> > > >
> > > >
> > >
> >
> _______________________________________________
> > > > gstreamer-devel
> mailing
> > list
> > > >
> > gstreamer-devel at lists.freedesktop.org
> > > >
> > >
> >
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> > > >
> > > >
> > > > -----Inline Attachment
> > Follows-----
> > > >
> > > >
> >
> _______________________________________________
> > > > gstreamer-devel mailing
> list
> > > >
> > gstreamer-devel at lists.freedesktop.org
> > > >
> > >
> >
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> > > >
> > > >
> >
> _______________________________________________
> > > > gstreamer-devel mailing list
> > > >
> gstreamer-devel at lists.freedesktop.org
> > > >
> > >
> >
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> > >
> > >
> >
> >
> _______________________________________________
> > gstreamer-devel mailing list
> > gstreamer-devel at lists.freedesktop.org
> >
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> >
> >
> > -----Inline Attachment Follows-----
> >
> > _______________________________________________
> > gstreamer-devel mailing list
> > gstreamer-devel at lists.freedesktop.org
> >
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> >
> > _______________________________________________
> > gstreamer-devel mailing list
> > gstreamer-devel at lists.freedesktop.org
> >
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20110424/09d7a5b0/attachment-0001.htm>
More information about the gstreamer-devel
mailing list