[FFmpeg-devel] avisynth as an internal filter, any objections?

Michael Niedermayer michael at niedermayer.cc
Thu Jul 18 17:22:28 EEST 2024


On Thu, Jul 18, 2024 at 12:21:11PM +0200, Stefan Oltmanns via ffmpeg-devel wrote:
> AviSynth (or better VapourSynth) as filter sounds great, but is it possible?
> The reason why input plugins (like FFmpegSource2) in
> AviSynth/VapourSynth create an index file in a first pass is to allow
> frame-accurate random access to the video. Also the exact number of
> frames of a clip has to be known, because I could access that property
> in VapourSynth.
> 
> There is a reverse filter in ffmpeg, but there is a warning to not use
> it on long clips, because every frame needs to be buffered, so I don't
> think the ffmpeg filter API has the ability to randomly access frames
> (that for example wouldn't work with stdin).
> 
> But maybe porting some specific filters like QTGMC (which is probably
> the best deinterlacer) that don't need that random-access functionality
> would be possible.

Maybe but i think that solves the wrong problem.

Porting everything into libavfilter while few of the authors/creators/innovators
want to work or maintain the code inside libavfilter doesnt scale.

What does scale is giving the final power about each module to
the authors/creators/innovators that created that module.
This can be inside libavfilter as it is now with a system closer to the linux kernel
This can be with a plugin system where the code is outside our control
This can be in another filter API/ABI that we support

The fundamental problem i see is whoever wants to make the decissions will
have to also do the work maintaining the code or pay someone to do it.
So the cheapest and easiest is to give up the power and let the individuals
who wrote and care about the individual filters, decoders, ... maintain them
as they see fit.
Thats not going to magically make everyone maintain their filter in libavfilter
but it would attract more filters and developers. I certainly would be more
interrested in writing more filters if i _know_ i wont have to argue with
anyone about anything.

thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Everything should be made as simple as possible, but not simpler.
-- Albert Einstein
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20240718/c8a37270/attachment.sig>


More information about the ffmpeg-devel mailing list