[MPlayer-dev-eng] adding a phase-vocoder to mplayer

Reimar Döffinger Reimar.Doeffinger at gmx.de
Tue Mar 7 22:32:21 EET 2017


On Wed, Jan 25, 2017 at 05:46:40PM -0800, bruce m beach wrote:
> On 1/16/17, bruce m beach <brucembeach at gmail.com> wrote:
> > Hello Everybody
> >
> >   I have a a vocoder program that I have written up that works
> > reasonably well that slows sound by some factor ( say 5 times slower,
> > whatever you like ) with good fidelity, far better than the current
> > scaletempo that currently exists. I would like to add it in the style
> > of 'scaletempo' to mplayer, i.e. something like
> >
> >   mplayer -speed 0.25 what_ever_parameters_for_the_vocoder
> >
> > so that when you watch the movie at 1/4 speed the sound is properly
> > tracking and am wondering if somebody can point me in the right
> > direction to whatever I need to know to do this.
> >
> > Bruce
> >
>   Okay so it looks like you just go into libaf and according to
>   numerous examples, the whole thing is straight-forward, except
>   for af_data_t->len. I assume it is the length of the audio data
>   arriving at the audio filter. The question is what are the typical
>   lengths arriving (i.e a few bytes, several k) and can len be controlled
>   at all. This is because to do the DFTs blocks of data are needed.

In case you are still interested:
1) Consider developing it on top of FFmpeg, it is more active,
though admittedly its filters are not usable in MPlayer, so
it might not make sense for you.
2) You can only assume you always get full samples. If you need
more than you get you need to buffer it. But note that for
efficiency reasons MPlayer will try to give you fairly large
chunks, at least 0.2s but possible 1 second or more.
But in the end, it is the output module that controls it (and other
filters in the chain).

More information about the MPlayer-dev-eng mailing list