[FFmpeg-devel] Exposing ability to add new filters without recompiling libavfilter?

Carlos Ruiz carlos.r.domin at gmail.com
Fri Sep 27 14:22:04 EEST 2024


Hi all,

Not sure if this should be directed at libav-user instead, feel free to
redirect
me if needed.

I've read the writing_filters.txt documentation and numerous StackOverflow
posts and everything indicates that in order to add your own custom filter,
the
Makefile in libavfilter needs to modified (and therefore the whole library
be
recompiled). Maybe this has been discussed before but I was wondering if
there are any plans to expose a public API so that downstream users of the
library could develop and inject their own "local" filters and use them
inside a
filter chain together with existing filters.

For context, we use FFmpeg via Python bindings (PyAV) and I was able to
wrap my own filter that calls a python callback (so I can use any python
code
to decide what to render on the frame without serializing and interfacing
with
c++ directly, which would significantly limit our applications and
iteration speed).
I had to use the "private" side of the AVFilter API (nb_inputs, nb_outputs,
formats)
and expose the `ff_filter_frame` function, but other than that everything
works.
I assume the rationale of not exposing a fully public API is to be able to
iterate
quicker without having to maintain backwards compatibility, but there might
be
other reasons. In any case, is this something that has ever been proposed
or are
there any plans to support extending libavfilter with custom filters
without having
to build it from source? Would be super useful to us!

Thanks,
Carlos


More information about the ffmpeg-devel mailing list