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