Pipeline performance problems

Stefan Sauer ensonic at hora-obscura.de
Thu Mar 22 11:47:30 PDT 2012


On 03/22/2012 03:00 PM, David Klasinc wrote:
> On 03/22/2012 12:15 PM, David Klasinc wrote:
>> $ time gst-launch -e ximagesrc startx=0 starty=0 endx=1919 endy=1079\
>> num-buffers=250 use-damage=0 ! video/x-raw-rgb,framerate=25/1 ! \
>> videorate ! queue ! ffmpegcolorspace ! vp8enc ! queue ! webmmux !
>> \ queue ! filesink location="test.webm"
>
> The problem is in the VP8 encoder. This happens with x264enc:
>
> $ time gst-launch -e ximagesrc startx=0 starty=0 endx=1279 endy=1023\
> num-buffers=150 use-damage=0 ! video/x-raw-rgb,framerate=15/1 !\
> videorate ! queue ! ffmpegcolorspace ! x264enc ! queue ! matroskamux
> !\ queue ! filesink location="test.mkv"

Doing live encoding of 1280x1024 at 25 fps + the conversion from rgb to
yuv will require a fast CPU and a optimized encoder. Please discuss with
the libvpx developers if you are not happy abouts its performance. Also
running a profiler (such as oprofile and getting data about where the
cpu is spend is useful). Also grabbing the screen using ximagesrc seems
to have quite some overhead, although I can't suggest any alternative.

Stefan
>
> Setting pipeline to PAUSED ...
> Pipeline is live and does not need PREROLL ...
> Setting pipeline to PLAYING ...
> New clock: GstSystemClock
> Got EOS from element "pipeline0".
> Execution ended after 10582065296 ns.
> Setting pipeline to PAUSED ...
> Setting pipeline to READY ...
> Setting pipeline to NULL ...
> Freeing pipeline ...
>
> real    0m10.689s
> user    0m9.877s
> sys    0m0.320s
>
>
> With vp8 I pressed CTRL-C after around 30 seconds and this happened:
>
> $ time gst-launch -e ximagesrc startx=0 starty=0 endx=1279 endy=1023\
> num-buffers=150 use-damage=0 ! video/x-raw-rgb,framerate=15/1 !\
> videorate ! queue ! ffmpegcolorspace ! vp8enc ! queue ! webmmux ! \
> queue ! filesink location="test.webm"
> Setting pipeline to PAUSED ...
> Pipeline is live and does not need PREROLL ...
> Setting pipeline to PLAYING ...
> New clock: GstSystemClock
> Redistribute latency...
> ^CCaught interrupt -- handling interrupt.
> Interrupt: Stopping pipeline ...
> EOS on shutdown enabled -- Forcing EOS on the pipeline
> Waiting for EOS...
> Got EOS from element "pipeline0".
> EOS received - stopping pipeline...
> Execution ended after 70585427853 ns.
> Setting pipeline to PAUSED ...
> Setting pipeline to READY ...
> Setting pipeline to NULL ...
> Freeing pipeline ...
>
> real    1m10.686s
> user    1m9.884s
> sys    0m0.200s
>
> Pipeline is exactly the same except for encoder and muxer. True, it
> could also be a muxer problem. :)
>
> Any thoughts, ideas on how to improve performance?
>
> Rgrds,
> David
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



More information about the gstreamer-devel mailing list