[FFmpeg-devel] [PATCH 4/4] ffmpeg: add -amerge option to merge audio streams.

Stefano Sabatini stefasab at gmail.com
Tue Mar 27 01:18:59 CEST 2012


On date Monday 2012-03-26 17:36:47 +0200, Clément Bœsch encoded:
> On Sat, Mar 24, 2012 at 02:24:59PM +0100, Stefano Sabatini wrote:
> [...]
> > > +            continue;
> > > +        av_bprintf(&lavfi, "\namovie=%s:si=%d [a%d];", ifname, map->stream_index, nb_astreams++);
> > 
> > I see this is quite limited. Suppose that the user wants to specify a
> > seek point or time, or in general codec/format options for the input
> > file, this won't be possible. We can surely add such options to movie,
> > but in general mapping ffmpeg options to *movie options will be a
> > problem, and very hard to maintain, since they use rather different
> > logics.
> > 
> 
> Yup indeed, it's quite a hack. But integrating this feature properly means
> changing quite a bunch of things. The only proper way I see right now is:
> 
>  1) ffmpeg using libavfilter for audio which depends on:
>     * proper libavfilter audio API (AVFrame based API)
>     * filter auto reconfiguration in case of sampling rate change
>     * audio stretching in libavfilter (-async)
>     * -af option (with auto insert of pan for map channel, and various
>       others)
>  2) create in the -amerge scope a merge context filtergraph just like the
>     one used for -af, and reference the different input streams in the
>     output stream context.
>  3) make ffmpeg handle multiple input streams for a given output stream
> 
> This requires a tremendous amount of work before we can hope for this
> feature.
> 
> Of course the current solution is far from ideal; just like you said, we
> can't configure the input properly, and it will basically be limited to
> standard usages. Though, it has the advantage to cover a majority of use
> cases. Also, the hack is quite isolated (it doesn't affect the internals).
> 
> Do you or anyone else has an alternative to propose?

I basically agree with this, indeed my objection was not blocking,
although documenting a bit the limitations seems in order. Apart from
that I leave to the ffmpeg maintainer the choice of injecting or not
the extra complexity, I can review the code.
-- 
FFmpeg = Fundamentalist and Freak MultiPurpose Ecumenical Gladiator


More information about the ffmpeg-devel mailing list