[FFmpeg-user] MLP encoder: encodes 24-bit wav files into 16-bit MLP

Fabrice Nicol fabrnicol at gmail.com
Sun Jul 7 09:57:26 EEST 2019


Thanks for this prompt reply.
I'll be testing the recompiled-reactivated 24 bit encoder so that MLP can
be added to the free DVD-Audio authoring software dvda-author (
http://dvd-audio.sourceforge.com), which is currently being improved.
Hopefully Jai can fix remaining issues and let me know.
Best
Fabrice Nicol

Le dim. 7 juil. 2019 03:58, Moritz Barsnick <barsnick at gmx.net> a écrit :

> On Sat, Jul 06, 2019 at 03:57:38 +0200, fabrice nicol wrote:
> > ffmpeg is build from git source code. Choosing a simple 2-channel 24
> > -bit 96khz wav file yields:
> >
> >    `~ $  /usr/local/bin/ffmpeg -i a_2_24_96.wav -c:a mlp -strict
> experimental a_2_24_96.mlp`
> [...]
> > Input #0, wav, from 'a_2_24_96.wav':
> >    Duration: 00:14:14.05, bitrate: 4608 kb/s
> >      Stream #0:0: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 96000 Hz,
> stereo, s32 (24 bit), 4608 kb/s
> [...]
> >      Stream #0:0: Audio: mlp, 96000 Hz, stereo, s16, 128 kb/s
> [...]
> > Is this a limitation of the currently still experimental encoder or am I
> > doing something wrong?
>
> Indeed, this seems to be a limitation of the mlp encoder:
>
> $ ffmpeg -h encoder=mlp
> [...]
>     Supported sample formats: s16
>
> But looking at the code (mplenc.c), there does seem to be support for
> 24 bit MLP in there. It just can't be accessed, because the encoder is
> not configured to accept such input:
>
>     .sample_fmts            = (const enum AVSampleFormat[])
> {AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE},
> (This is a list of supported input formats.)
>
> If you edit this line to:
>     .sample_fmts            = (const enum AVSampleFormat[])
> {AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_NONE},
>
> and recompile, it seems to actually produce 24 bit output. (And this
> output plays with ffplay and mpv at least, which both use libavcodec to
> decode though).
>
> The reason for the support missing can be read in the commit message:
>
> https://github.com/FFmpeg/FFmpeg/commit/15b86f480a9c748aeeafb42a877ee755c64f90f2
>
>   * 32-bit sample support has been removed for now, will add it later
>
>     While testing, some samples gave lossless check failures when enforcing
>     s32. Probably this will also get solved with the LFE issues.
>
> So it was disabled because some encodings were incorrect.
>
> Cheers,
> Moritz
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-user mailing list