[FFmpeg-user] MLP decoder: decodes 24-bit MLP files into 16-bit MLP wav
fabrice nicol
fabrnicol at gmail.com
Wed Jul 3 11:17:57 EEST 2019
The MLP decoder does not seem to work for 24-bit MLP. It converts such
files into 16-bit WAV, whatever the sample rate.
Example from a (non-encrypted) commercial disc: check the telling chunk:
" Stream #0:0[0xa1]: Audio: mlp, 96000 Hz, 5.1, s32 (24 bit)
Stream mapping:
Stream #0:0 -> #0:0 (mlp (native) -> pcm_s16le (native))"
Complete output:
`ffmpeg -i /mnt/cdrom/AUDIO_TS/ATS_01_3.AOB ~/a.wav`
ffmpeg version 4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 9.1.0 (Gentoo 9.1.0 p1.0)
configuration: --prefix=/usr --libdir=/usr/lib64
--shlibdir=/usr/lib64 --docdir=/usr/share/doc/ffmpeg-4.1.3/html
--mandir=/usr/share/man --enable-shared --cc=x86_64-pc-linux-gnu-gcc
--cxx=x86_64-pc-linux-gnu-g++ --ar=x86_64-pc-linux-gnu-ar
--optflags='-O2 -pipe -march=core-avx2' --enable-static
--enable-avfilter --enable-avresample --disable-stripping
--disable-optimizations --disable-libcelt --disable-indev=v4l2
--disable-outdev=v4l2 --disable-indev=oss --disable-indev=jack
--disable-outdev=oss --enable-bzlib --disable-runtime-cpudetect
--disable-debug --disable-gcrypt --disable-gnutls --disable-gmp
--enable-gpl --enable-hardcoded-tables --enable-iconv --disable-libtls
--disable-libxml2 --disable-lzma --enable-network --disable-opencl
--disable-openssl --enable-postproc --disable-libsmbclient
--enable-ffplay --enable-sdl2 --disable-vaapi --enable-vdpau
--enable-xlib --enable-libxcb --enable-libxcb-shm --enable-libxcb-xfixes
--enable-zlib --disable-libcdio --disable-libiec61883
--disable-libdc1394 --disable-libcaca --disable-openal --enable-opengl
--disable-libv4l2 --enable-libpulse --disable-libdrm --disable-libjack
--disable-libopencore-amrwb --disable-libopencore-amrnb
--disable-libcodec2 --disable-libfdk-aac --disable-libopenjpeg
--disable-libbluray --disable-libgme --disable-libgsm --disable-mmal
--disable-libmodplug --disable-libopus --disable-libilbc
--disable-librtmp --disable-libssh --disable-libspeex --disable-libsrt
--enable-librsvg --disable-ffnvcodec --enable-libvorbis --disable-libvpx
--disable-libzvbi --disable-appkit --disable-libbs2b
--disable-chromaprint --disable-libflite --disable-frei0r
--disable-libfribidi --disable-fontconfig --disable-ladspa
--disable-libass --disable-lv2 --enable-libfreetype
--disable-librubberband --disable-libzmq --disable-libzimg
--disable-libsoxr --enable-pthreads --disable-libvo-amrwbenc
--enable-libmp3lame --disable-libkvazaar --disable-libaom
--disable-libopenh264 --disable-libsnappy --disable-libtheora
--disable-libtwolame --disable-libwavpack --disable-libwebp
--enable-libx264 --disable-libx265 --enable-libxvid --disable-armv5te
--disable-armv6 --disable-armv6t2 --disable-neon --disable-vfp
--disable-vfpv3 --disable-armv8 --disable-mipsdsp --disable-mipsdspr2
--disable-mipsfpu --disable-altivec --disable-amd3dnow
--disable-amd3dnowext --disable-aesni --disable-avx --disable-avx2
--disable-fma3 --disable-fma4 --disable-sse3 --disable-ssse3
--disable-sse4 --disable-sse42 --disable-xop --cpu=core-avx2
--disable-doc --disable-htmlpages --enable-manpages
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Input #0, mpeg, from '/mnt/cdrom/AUDIO_TS/ATS_01_3.AOB':
Duration: 26:29:22.18, start: 143.151067, bitrate: 47 kb/s
Stream #0:0[0xa1]: Audio: mlp, 96000 Hz, 5.1, s32 (24 bit)
Stream mapping:
Stream #0:0 -> #0:0 (mlp (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, wav, to '/home/fab2/a.wav':
Metadata:
ISFT : Lavf58.20.100
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 96000 Hz,
5.1, s16, 9216 kb/s
Metadata:
encoder : Lavc58.35.100 pcm_s16le
(...)
The output is 16-bit depth as indicated in the console messages. Using
SoX to corroborate:
sox --i a.wav
Input File : 'a.wav'
Channels : 6
Sample Rate : 96000
Precision : 16-bit
Duration : 00:14:14.05 = 81988800 samples ~ 64053.8 CDDA sectors
File Size : 984M
Bit Rate : 9.22M
Sample Encoding: 16-bit Signed Integer PCM
My platform is Gentoo Linux amd64.
Is this an undocumented limitation of the MLP decoder or is there
something I did wrong?
More information about the ffmpeg-user
mailing list