Hello there,

If we have a filtergraph that is already configured and running, what
is the best way to change its source?

The details...

1. In our product, we use a filtergraph that consists of two
filterchains in series:

front_filterchain -> back_filterchain

2. Initially, front_filterchain starts with an `anullsrc` and some
filters. The back_filterchain is always a fixed number of filters
ending with a `abuffersink`.

3. The filtergraph is configured and running, and we get 0 samples
from buffersink as expected.

4. We then replace front_filterchain with another front_filterchain
which starts with an `abuffer` and some filters. The back_filterchain
stays the same.

5. After calling `avfilter_graph_config()` we use
`avfilter_config_links()` to configure the new links in
front_filterchain.

6. We can then push new frames into the `abuffer` and get processed
frames out of the `abuffersink`.

7. This works really well in in our product, which helps hundreds of
thousands of users exporting their video timeline. We can also mix
many front_filterchain chains into one back_filterchain and
dynamically replace them.

front_filterchain1 \
front_filterchain2 -> back_filterchain
front_filterchain3 /


8. But, `avfilter_config_links()` was deprecated and removed over the
course of around last 2 years. I wrote a bit more here:

https://lists.ffmpeg.org/archives/list/[email protected]/message/W5LFRAPKMQHEW5RVM2GTAEDNTONUQS7I/

So, what is the best way to go about this. I.e. Hod do we replace
source filterchains on the fly?

I'm happy to write more about it, if needed. I'm just not sure if this
is a unique use-case. It feels like a streaming use case that FFmpeg's
filtergraphs should easily support.

Thanks,
Nolan
_______________________________________________
Libav-user mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to