Appsrc video performance optimization

Tim Müller tim at centricular.com
Tue Jun 14 21:27:55 UTC 2016


On Tue, 2016-06-14 at 13:19 -0700, lucas.kinion wrote:

Hi Lucas,

> The pipeline looks like this, and seems to be working:
> appsrc [caps] ! videoconvert ! [caps] ! ducatih264enc ! h264parse !
> rtph264pay ! udpsink
> And on the other machine I receive the UDP stream through VLC using
> an SDP file. 
> ....
> I'm mainly looking at the cb_need_data for optimizations. Some basic
> profiling leads me to believe that it is spending a lot of time on
> gst_app_src_push_buffer, but I don't know of any way to optimize this
> function. Is there something I'm missing?

The first thing that would be interesting to know is if it's the ducati
encoder that's the limiting element, or really the appsrc.

One thing I'd recommend is to add a queue right after the encoder, and
perhaps also before the encoder. Also check with a fakesink if you
achieve higher throughput that way.

It might also be worth writing your own source element based on
GstPushSrc. It should be quite simple, and you can then just pop
buffers off your array directly.

 Cheers
  -Tim

-- 

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


More information about the gstreamer-devel mailing list