title: GStreamer: How to use GPU on pipeline?
body: <p>I have a project, in C++, where I need to use GStreamer to retrieve datas from a specific communication protocol, convert it to MPEG1 and send it with UDP. So I build the pipeline (which can be written like below) and when I start my program, the CPU is around 200% (which is far too many).</p>
  <pre><code>gst-launch-1.0 appsrc is-live=1 do-timestamp=1 caps=&quot;video/x-raw,format=[imageFormat],height=[height],width=[witdh]&quot; format=time ! \
  videoconvert ! videorate ! videoscale ! \
  capsfilter caps=&quot;video/x-raw,width=640,height=480&quot; ! \
  clockoverlay ! queue ! avenc_mpeg1video ! mpegtsmux ! \
  udpsink host=[address] port=[port] sync=0
  </code></pre>
  <p>After some research, I found that some plugins use CPU and other GPU. I suspect that the problem is from the encoder <code>avenc_mpeg1video</code> but I can't find any documentation that explain which plugins use CPU or GPU.</p>
  <p>So here is my questions :</p>
  <ul>
  <li>How can I reduce the CPU usage ?</li>
  <li>Do I need to change the encoder ?</li>
  <li>Is there a parameter that I missed which enable the capability to use GPU ?</li>
  </ul>