<div dir="ltr">To partially answer my own question:  I think I need to use a <b>GstPipeline</b> rather than a <b>GESPipeline</b> (so I can have full control over the GstElements which do the encoding and writing to files).<div><br></div><div>On another email thread, it was suggested that GESTimeline and GstPipeline are not 100% compatible with each other:  <a href="https://lists.freedesktop.org/archives/gstreamer-devel/2018-March/067349.html">https://lists.freedesktop.org/archives/gstreamer-devel/2018-March/067349.html</a></div><div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><div>>     The GES timeline can indeed be used in a regular gstreamer pipeline, but there</div></div><div><div>>     are some undocumented quirks, amongst them the "query-position" signal emitted</div></div><div><div>>     by the NLEComposition wrapped by the GESTrack object, this is why using GESPipeline</div></div><div><div>>     is the recommended approach.</div></div></blockquote><div><br></div><div>If I use GESTimeline with GstPipeline, what kinds of trouble can I expect?</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jun 29, 2018 at 1:32 PM, David Ing <span dir="ltr"><<a href="mailto:ding@panopto.com" target="_blank">ding@panopto.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I am using GES 1.12 and I am trying to build a single GESPipeline with a somewhat complicated set of outputs.  I am coding in C++ (using gstreamer headers and libs).<div><br></div><div>Consider a representative example:</div><div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>I have built a GESTimeline which sits inside a GESPipeline.</div><div><div><br></div></div><div><div>I want to generate multiple encodings.</div></div></blockquote><div><div><ol><ol><li>Low quality video AVC
<span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">(h.264)</span></li><li>Mid quality video AVC
<span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">(h.264)</span></li><li>High quality video AVC (h.264)</li><li>High quality audio AAC</li></ol></ol></div></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><div><div>I want to shunt these encodings into multiple containers.</div></div></div></blockquote><div><div><div><ol><ol><li>HLS folder (all encodings)</li><li>MP4 high quality (encodings 3 & 4)</li><li>MP4 mid quality (encodings 2 & 4)</li></ol></ol></div><div>Presumably, the most efficient approach (computationally) is to use a single pipeline for all of this.  <b>Computational efficiency is of paramount importance to me.</b></div><div><br></div><div>My question is:<b>  What approach should I take?</b></div><div></div></div><div><br></div><div>One approach is to manually construct the GstElements I need for encoding and muxing, and connect them together in the appropriate way within the GESPipeline (I guess they would source directly from the sinks on the GESTimeline).  Is that the correct approach?  Or is there another approach that will work better?</div></div><div><br></div><div><b>Guidance is appreciated.</b></div></div>
</blockquote></div><br></div>