[gst-devel] Pipeline performance assessment

Baldur Gislason baldur at medizza.com
Mon Sep 20 18:20:25 CEST 2010


I have been doing some experiments with transcoding using gstreamer
and I've had some pretty terrible performance.
VLC has no problem performing the same task with as far as I can tell,
identical encoder profiles, leaving plenty of resources behind, while
with gstreamer I am maxing out one core and going about 40-50% on the
remaining three, and not quite keeping up with real time transcoding.
Machine is a 64 bit Linux system on an Intel Xeon E5507 quad core processor.
I am decoding MPEG2 and encoding H.264.
I was wondering if there was a recommended method of wathing the CPU
time used by an element in a pipe.
My current pipeline goes like this:
udpsrc -> mpegtsdemux
demux -> decodebin2
decoder -> x264enc -> queue -> mpegtsmux
decoder -> audioconvert -> audioresample -> ffenc_aac -> queue -> mpegtsmux
mux -> filesink (for testing purposes, would be udpsink in production)
Is there any inherent problem with this configuration? I tried placing
queues between decoder and encoders but that did not make any
difference
I have a hunch that the handling of the uncompressed video is
inefficient but I'm not quite sure what the best tools are for finding
bottlenecks of streaming applications.

Baldur




More information about the gstreamer-devel mailing list