#10696: 44.1 16-bit monkey's audio .ape file decodes with blasts of noise
-------------------------------------+-------------------------------------
Reporter: | Owner: (none)
therentabrain |
Type: defect | Status: new
Priority: normal | Component:
| undetermined
Version: unspecified | Resolution:
Keywords: monkey's | Blocked By:
audio .ape |
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Description changed by therentabrain:
Old description:
> Summary of the bug:
> Occasional .ape files created by Monkey's Audio 3.88 in Extra High mode
> are mangled when read by ffmpeg, as containing sections of white noise
> and/or silence. Out of about 60 files in my tests, it happened 3 times.
>
> Files created by Monkey's Audio 3.99 did not seem to have this problem in
> my experience. Still, the problem files test with no errors and can be
> successfully played in Winamp or decompressed by either version of MA
> without a problem. Only ffmpeg fails and only under this specific
> situation.
>
> How to reproduce:
> {{{
> I:\>ffmpeg -i themagicwannago.ape themagicwannago.wav
> ffmpeg version 2023-11-22-git-0008e1c5d5-full_build-www.gyan.dev
> Copyright (c) 2000-2023 the FFmpeg developers
> built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
> configuration: --enable-gpl --enable-version3 --enable-static --pkg-
> config=pkgconf --disable-w32threads --disable-autodetect --enable-
> fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp
> --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-
> librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth
> --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24
> --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-
> libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-
> libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-
> libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-
> libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-
> libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun
> --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf
> --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec
> --enable-nvenc --enable-dxva2 --enable-d3d11va --enable-libvpl --enable-
> libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-
> libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-
> libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-
> libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2
> --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-
> libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-
> libbs2b --enable-libflite --enable-libmysofa --enable-librubberband
> --enable-libsoxr --enable-chromaprint
> libavutil 58. 32.100 / 58. 32.100
> libavcodec 60. 34.100 / 60. 34.100
> libavformat 60. 17.100 / 60. 17.100
> libavdevice 60. 4.100 / 60. 4.100
> libavfilter 9. 13.100 / 9. 13.100
> libswscale 7. 6.100 / 7. 6.100
> libswresample 4. 13.100 / 4. 13.100
> libpostproc 57. 4.100 / 57. 4.100
> Input #0, ape, from 'themagicwannago.ape':
> Duration: 00:00:01.87, start: 0.000000, bitrate: 370 kb/s
> Stream #0:0: Audio: ape (APE / 0x20455041), 44100 Hz, stereo, s16p
> Stream mapping:
> Stream #0:0 -> #0:0 (ape (native) -> pcm_s16le (native))
> Press [q] to stop, [?] for help
> Output #0, wav, to 'themagicwannago.wav':
> Metadata:
> ISFT : Lavf60.17.100
> Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz,
> stereo, s16, 1411 kb/s
> Metadata:
> encoder : Lavc60.34.100 pcm_s16le
> [out#0/wav @ 0000017fc96c8880] video:0kB audio:322kB subtitle:0kB other
> streams:0kB global headers:0kB muxing overhead: 0.023639%
> size= 322kB time=00:00:01.67 bitrate=1579.3kbits/s speed= 101x
> }}}
>
> File info from Monkey's Audio 3.88:
>
> {{{
> Format Info
> Version: 3.8
> Mode: Extra High
> Format Flags: 6
> Tag: None
> Audio Info
> Sample Rate: 44100
> Channels: 2
> Bits Per Sample: 16
> Peak Level: 22186
> Length / Size Info
> Length: 0:01
> File Size: 0.00 MB
> Compression: 26.22%
> }}}
>
> Monkey's Audio 3.99 reports no errors with it either, and both versions
> of MA have no problems decoding it correctly. Then, the resulting WAV
> can then be turned into FLAC etc by ffmpeg just fine.
>
> ''I did notice that using MediaInfo v0.7.80, the number of tracks is
> hugely incorrect on these files. The attached test file here shows as
> 2,500 tracks in MediaInfo, when it should say two. In my limited
> experience, MediaInfo is capable of seeing the correct number of tracks
> in my other ape files. That said, most of these v2.88 Extra High ape
> files that show a huge number of tracks in MediaInfo still converted
> perfectly back to 2ch WAV using ffmpeg.
> ''
New description:
Summary of the bug:
Occasional .ape files created by Monkey's Audio 3.88 in Extra High mode
are mangled when read by ffmpeg, as containing sections of white noise
and/or silence. Out of about 60 files in my tests, it happened 3 times.
Files created by Monkey's Audio 3.99 did not seem to have this problem in
my experience. Still, the problem files test with no errors and can be
successfully played in Winamp or decompressed by either version of MA
without a problem. Only ffmpeg fails and only under this specific
situation.
How to reproduce:
{{{
I:\>ffmpeg -i themagicwannago.ape themagicwannago.wav
ffmpeg version 2023-11-22-git-0008e1c5d5-full_build-www.gyan.dev Copyright
(c) 2000-2023 the FFmpeg developers
built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
configuration: --enable-gpl --enable-version3 --enable-static --pkg-
config=pkgconf --disable-w32threads --disable-autodetect --enable-
fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp
--enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-
librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth
--enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24
--enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-
libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-
libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-
libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-
libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-
libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun
--enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf
--enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec
--enable-nvenc --enable-dxva2 --enable-d3d11va --enable-libvpl --enable-
libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-
libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-
libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora
--enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-
libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus
--enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b
--enable-libflite --enable-libmysofa --enable-librubberband --enable-
libsoxr --enable-chromaprint
libavutil 58. 32.100 / 58. 32.100
libavcodec 60. 34.100 / 60. 34.100
libavformat 60. 17.100 / 60. 17.100
libavdevice 60. 4.100 / 60. 4.100
libavfilter 9. 13.100 / 9. 13.100
libswscale 7. 6.100 / 7. 6.100
libswresample 4. 13.100 / 4. 13.100
libpostproc 57. 4.100 / 57. 4.100
Input #0, ape, from 'themagicwannago.ape':
Duration: 00:00:01.87, start: 0.000000, bitrate: 370 kb/s
Stream #0:0: Audio: ape (APE / 0x20455041), 44100 Hz, stereo, s16p
Stream mapping:
Stream #0:0 -> #0:0 (ape (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, wav, to 'themagicwannago.wav':
Metadata:
ISFT : Lavf60.17.100
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo,
s16, 1411 kb/s
Metadata:
encoder : Lavc60.34.100 pcm_s16le
[out#0/wav @ 0000017fc96c8880] video:0kB audio:322kB subtitle:0kB other
streams:0kB global headers:0kB muxing overhead: 0.023639%
size= 322kB time=00:00:01.67 bitrate=1579.3kbits/s speed= 101x
}}}
File info from Monkey's Audio 3.88:
{{{
Format Info
Version: 3.8
Mode: Extra High
Format Flags: 6
Tag: None
Audio Info
Sample Rate: 44100
Channels: 2
Bits Per Sample: 16
Peak Level: 22186
Length / Size Info
Length: 0:01
File Size: 0.00 MB
Compression: 26.22%
}}}
Monkey's Audio 3.99 reports no errors with it either, and both versions of
MA have no problems decoding it correctly. Then, the resulting WAV can
then be turned into FLAC etc by ffmpeg just fine.
''I did notice that using MediaInfo (0.7.80), the number of tracks is
hugely incorrect on these files. The attached test file here shows as
2,500 tracks in MediaInfo, when it should say two. In my limited
experience, MediaInfo is capable of seeing the correct number of tracks in
my other ape files. That said, most of these v2.88 Extra High ape files
that show a huge number of tracks in MediaInfo still converted perfectly
back to 2ch WAV using ffmpeg.
''
I want to add, even if this was a bug in a 20 year old version of Monkey's
Audio that has been fixed in newer versions, the risk here is using ffmpeg
to convert precious old .ape files (in my case to .flacs), **not receiving
any errors at all**, deleting the old files, and discovering at some point
in the future that many of your dearly valued old archives are gone.
Thanks!
--
--
Ticket URL: <https://trac.ffmpeg.org/ticket/10696#comment:1>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
_______________________________________________
FFmpeg-trac mailing list
FFmpeg-trac@avcodec.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-trac
To unsubscribe, visit link above, or email
ffmpeg-trac-requ...@ffmpeg.org with subject "unsubscribe".