GES 1.12 -- Multiple encodings to multiple files

David Ing ding at panopto.com
Mon Jul 2 16:41:43 UTC 2018


I sent the original message on this thread Friday evening (US Pacific Time)
... chances are that most people never saw it, so I'm trying again:

On a prior email thread, it was suggested that GESTimeline and GstPipeline
are not 100% compatible with each other:  https://lists.
freedesktop.org/archives/gstreamer-devel/2018-March/067349.html

>     The GES timeline can indeed be used in a regular gstreamer pipeline,
but there
>     are some undocumented quirks, amongst them the "query-position"
signal emitted
>     by the NLEComposition wrapped by the GESTrack object, this is why
using GESPipeline
>     is the recommended approach.


I am now in the position of being forced to use the GstPipeline with the
GESTimeline (for reasons described in the first message of this thread).  I
wonder if anybody can shed some light on the problems that I might see, and
provide a hint about how I might overcome them.  I am working in C / C++ so
I have a lot of options, but I would benefit from a little guidance.


On Fri, Jun 29, 2018 at 4:24 PM, David Ing <ding at panopto.com> wrote:

> To partially answer my own question:  I think I need to use a
> *GstPipeline* rather than a *GESPipeline* (so I can have full control
> over the GstElements which do the encoding and writing to files).
>
> On another email thread, it was suggested that GESTimeline and GstPipeline
> are not 100% compatible with each other:  https://lists.
> freedesktop.org/archives/gstreamer-devel/2018-March/067349.html
>
> >     The GES timeline can indeed be used in a regular gstreamer pipeline,
> but there
> >     are some undocumented quirks, amongst them the "query-position"
> signal emitted
> >     by the NLEComposition wrapped by the GESTrack object, this is why
> using GESPipeline
> >     is the recommended approach.
>
>
> If I use GESTimeline with GstPipeline, what kinds of trouble can I expect?
>
> On Fri, Jun 29, 2018 at 1:32 PM, David Ing <ding at panopto.com> wrote:
>
>> 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).
>>
>> Consider a representative example:
>>
>> I have built a GESTimeline which sits inside a GESPipeline.
>>
>> I want to generate multiple encodings.
>>
>>
>>    1. Low quality video AVC (h.264)
>>       2. Mid quality video AVC (h.264)
>>       3. High quality video AVC (h.264)
>>       4. High quality audio AAC
>>
>> I want to shunt these encodings into multiple containers.
>>
>>
>>    1. HLS folder (all encodings)
>>       2. MP4 high quality (encodings 3 & 4)
>>       3. MP4 mid quality (encodings 2 & 4)
>>
>> Presumably, the most efficient approach (computationally) is to use a
>> single pipeline for all of this.  *Computational efficiency is of
>> paramount importance to me.*
>>
>> My question is:*  What approach should I take?*
>>
>> 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?
>>
>> *Guidance is appreciated.*
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20180702/cf47110f/attachment-0001.html>


More information about the gstreamer-devel mailing list