Dynamic transcoding pipeline

pablo platt pablo.platt at gmail.com
Mon Jun 7 09:18:38 UTC 2021


I have several uridecodebin elements connected to an audiomixer and
compositor and encoded to mp4. I'm trying to pause the pipeline after
predefined times, replace some of the uridecodebin elements and resume the

For example:
1. Create a pipeline with uridecodebin1 (video1.mp4) and uridecodebin2
1. Play/seek the pipeline and encode to a file for 10 seconds.
2. Pause the pipeline.
3. Replace uridecodebin2 with uridecodebin3 (video3.mp4).
4. Play/seek the pipeline for 30 seconds.
5. Pause the pipeline.
6. Replace, Pause, Play/seek...

I don't think I can use ges because I'll need to remove and add the same
file multiple times. With full control of the pipeline I'll be able to
optimize for such a case.

What can I use for this?
Should I use seek or blocking probes?
Should I seek the pipeline or each one of the uridecodebin elements?

A simplified version of the pipeline with one uridecodebin element:
uridecodebin uri=file:///input.mp4 name=decoder ! audioconver !
audioresample ! audiomixer ! audioconvert ! audioresample ! voaacenc !
aacparse ! mp4mux name=muxer ! filesink location=file:///output.mp4
decoder. ! videoconvert ! compositor ! videoconvert ! x264enc ! h264parse !


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20210607/f2547ebf/attachment.htm>

More information about the gstreamer-devel mailing list