[FFmpeg-trac] #7879(undetermined:new): Header missing when decoding mp3 to wav
FFmpeg
trac at avcodec.org
Thu May 2 16:06:38 EEST 2019
#7879: Header missing when decoding mp3 to wav
--------------------------------------+----------------------------------
Reporter: hendrik | Type: defect
Status: new | Priority: normal
Component: undetermined | Version: 4.1
Keywords: mp3 Lyrics3 | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
--------------------------------------+----------------------------------
Summary of the bug:
When converting an mp3 to wav, FFmpeg stops conversion upon encountering a
missing header:
{{{
Header missing
Error while decoding stream #0:0: Invalid data found when processing input
}}}
`sox` and a custom-made decoder based on !CoreAudio '''do not''' report
any issues.
Here's the sox output:
{{{
sox -v99 test.mp3 out.wav
sox WARN sox: `out.wav' output clipped 9670914 samples; decrease volume?
sox WARN sox: `test.mp3' balancing clipped 19329677 samples; decrease
volume?
}}}
Apart from the warnings, sox does not issue any messages, nor does it
fail.
Based on the partial wav file created by FFmpeg and the debug output, I
assume the failure occurs towards the end of the file in the last packet.
Note that the file contains a Lyrics3 v2.00 block at the end
(http://id3.org/Lyrics3v2).
I'm wondering what's the cause of the failure FFmpeg reports. Obvious
options are:
1. The header is not missing
2. The header is missing, FFmpeg is strict and simply fails, while others
are lenient, recover and march on
3. Lyrics3 is simply not supported by FFmpeg
If 1., it's a bug
If 2., it might be nice to be able to ignore the error and ask FFmpeg to
be more lenient. Is this perhaps already possible?
If 3., perhaps the ability to ignore Lyrics3 blocks should be added.
Thanks for looking into this!
How to reproduce:
{{{
ffmpeg -v 9 -loglevel 99 -i test.mp3 out.wav
ffmpeg version 4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
built with Apple LLVM version 10.0.1 (clang-1001.0.46.4)
configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1.3_1 --enable-shared
--enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-
avresample --cc=clang --host-
cflags='-I/Library/Java/JavaVirtualMachines/adoptopenjdk-11.0.2.jdk/Contents/Home/include
-I/Library/Java/JavaVirtualMachines/adoptopenjdk-11.0.2.jdk/Contents/Home/include/darwin'
--host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-
libaom --enable-libbluray --enable-libmp3lame --enable-libopus --enable-
librubberband --enable-libsnappy --enable-libtesseract --enable-libtheora
--enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265
--enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype
--enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-
libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex
--enable-videotoolbox --disable-libjack --disable-indev=jack --enable-
libaom --enable-libsoxr
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
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with
argument '9'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging
level) with argument '99'.
Reading option '-i' ... matched as input url with argument 'test.mp3'.
Reading option 'out.wav' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument 9.
Successfully parsed a group of options.
Parsing a group of options: input url test.mp3.
Successfully parsed a group of options.
Opening an input file: test.mp3.
[NULL @ 0x7f8e37808800] Opening 'test.mp3' for reading
[file @ 0x7f8e37528500] Setting default whitelist 'file,crypto'
Probing mp3 score:12 size:2048
Probing mp3 score:12 size:4096
Probing mp3 score:12 size:8192
Probing mp3 score:12 size:16384
Probing mp3 score:51 size:7635
[mp3 @ 0x7f8e37808800] Format mp3 probed with size=32768 and score=51
id3v2 ver:3 flags:00 len:25123
[mp3 @ 0x7f8e37808800] pad 576 724
[mp3 @ 0x7f8e37808800] Skipping 0 bytes of junk at 26177.
[mp3 @ 0x7f8e37808800] Before avformat_find_stream_info() pos: 26177 bytes
read:32768 seeks:0 nb_streams:1
[mp3 @ 0x7f8e37808800] demuxer injecting skip 1105 / discard 0
[mp3float @ 0x7f8e37816e00] skip 1105 / discard 0 samples due to side data
[mp3float @ 0x7f8e37816e00] skip 1105/1152 samples
[mp3 @ 0x7f8e37808800] All info found
[mp3 @ 0x7f8e37808800] stream 0: start_time: 0.025 duration: 229.642
[mp3 @ 0x7f8e37808800] format: start_time: 0.025 duration: 229.642
bitrate=320 kb/s
[mp3 @ 0x7f8e37808800] After avformat_find_stream_info() pos: 79425 bytes
read:98304 seeks:0 frames:50
Input #0, mp3, from 'test.mp3':
Metadata:
title : So Much Better
artist : BEAVE
album : Black Hole House Music 04-19 WEB
genre : House
track : 7/15
TKEY : 5A
TBPM : 126
EnergyLevel : 6
TuningAlgorithm : ForestBasedKey;v=5.1.12
Tuning : 1
Similarities :
60557:75789:75604;43467:150093:62415;75789:167183:62043;51269:180744:33065;51269:89350:33065;0:121858:32693;150836:181301:32507;58700:81548:32507;44210:89907:32507;89907:150836:32507;58700:172942:32507;97709:143406:26377;36780:158638:25820;36780:189103:25
SimilaritiesAlgorithm: SimpleDiagonalPaths;v=5.1.12
Segments :
0:14675:B:UNKOWN;14675:16346:B:UNKOWN;31021:13374:C:UNKOWN;44210:7058:A-:UNKOWN;51269:38080:A:VERSE;89350:33065:A:VERSE;122415:14303:D:UNKOWN;136533:14303:B:UNKOWN;150836:29907:A:VERSE;180744:33065:A:VERSE;213809:16346:E:OUTRO;
SegmentsAlgorithm: SimpleDiagonalPaths;v=5.1.12
AnalysisDate : 2019-04-28T14:50:53
publisher : Black Hole Recordings
comment : Energy 6 - .: AFO (C) 2019 :.
date : 2019
Duration: 00:03:49.64, start: 0.025057, bitrate: 320 kb/s
Stream #0:0, 50, 1/14112000: Audio: mp3, 44100 Hz, stereo, fltp, 320
kb/s
Metadata:
encoder : Lavf
Successfully opened the file.
Parsing a group of options: output url out.wav.
Successfully parsed a group of options.
Opening an output file: out.wav.
[file @ 0x7f8e3752e1c0] Setting default whitelist 'file,crypto'
Successfully opened the file.
Stream mapping:
Stream #0:0 -> #0:0 (mp3 (mp3float) -> pcm_s16le (native))
Press [q] to stop, [?] for help
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
[mp3float @ 0x7f8e37817a00] skip 1105 / discard 0 samples due to side data
[mp3float @ 0x7f8e37817a00] skip 1105/1152 samples
detected 8 logical cores
[graph_0_in_0_0 @ 0x7f8e3752fc40] Setting 'time_base' to value '1/44100'
[graph_0_in_0_0 @ 0x7f8e3752fc40] Setting 'sample_rate' to value '44100'
[graph_0_in_0_0 @ 0x7f8e3752fc40] Setting 'sample_fmt' to value 'fltp'
[graph_0_in_0_0 @ 0x7f8e3752fc40] Setting 'channel_layout' to value '0x3'
[graph_0_in_0_0 @ 0x7f8e3752fc40] tb:1/44100 samplefmt:fltp
samplerate:44100 chlayout:0x3
[format_out_0_0 @ 0x7f8e37530340] Setting 'sample_fmts' to value 's16'
[format_out_0_0 @ 0x7f8e37530340] auto-inserting filter 'auto_resampler_0'
between the filter 'Parsed_anull_0' and the filter 'format_out_0_0'
[AVFilterGraph @ 0x7f8e37528300] query_formats: 4 queried, 6 merged, 3
already done, 0 delayed
[auto_resampler_0 @ 0x7f8e37530bc0] [SWR @ 0x112e7c000] Using fltp
internally between filters
[auto_resampler_0 @ 0x7f8e37530bc0] ch:2 chl:stereo fmt:fltp r:44100Hz ->
ch:2 chl:stereo fmt:s16 r:44100Hz
Output #0, wav, to 'out.wav':
Metadata:
INAM : So Much Better
IART : BEAVE
IPRD : Black Hole House Music 04-19 WEB
IGNR : House
IPRT : 7/15
TKEY : 5A
TBPM : 126
EnergyLevel : 6
TuningAlgorithm : ForestBasedKey;v=5.1.12
Tuning : 1
Similarities :
60557:75789:75604;43467:150093:62415;75789:167183:62043;51269:180744:33065;51269:89350:33065;0:121858:32693;150836:181301:32507;58700:81548:32507;44210:89907:32507;89907:150836:32507;58700:172942:32507;97709:143406:26377;36780:158638:25820;36780:189103:25
SimilaritiesAlgorithm: SimpleDiagonalPaths;v=5.1.12
Segments :
0:14675:B:UNKOWN;14675:16346:B:UNKOWN;31021:13374:C:UNKOWN;44210:7058:A-:UNKOWN;51269:38080:A:VERSE;89350:33065:A:VERSE;122415:14303:D:UNKOWN;136533:14303:B:UNKOWN;150836:29907:A:VERSE;180744:33065:A:VERSE;213809:16346:E:OUTRO;
SegmentsAlgorithm: SimpleDiagonalPaths;v=5.1.12
AnalysisDate : 2019-04-28T14:50:53
ILNG : English
publisher : Black Hole Recordings
ICMT : Energy 6 - .: AFO (C) 2019 :.
ICRD : 2019
ISFT : Lavf58.20.100
Stream #0:0, 0, 1/44100: Audio: pcm_s16le ([1][0][0][0] / 0x0001),
44100 Hz, stereo, s16, 1411 kb/s
Metadata:
encoder : Lavc58.35.100 pcm_s16le
[mp3 @ 0x7f8e37808800] demuxer injecting skip 0 / discard 195
[mp3float @ 0x7f8e37817a00] skip 0 / discard 195 samples due to side data
[mp3float @ 0x7f8e37817a00] discard 195/1152 samples
[mp3float @ 0x7f8e37817a00] Header missing
Error while decoding stream #0:0: Invalid data found when processing input
[out_0_0 @ 0x7f8e3752ffc0] EOF on sink link out_0_0:default.
No more output streams to write to, finishing.
size= 39555kB time=00:03:49.61 bitrate=1411.2kbits/s speed= 533x
video:0kB audio:39554kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: 0.000627%
Input file #0 (test.mp3):
Input stream #0:0 (audio): 8792 packets read (9185902 bytes); 8791
frames decoded (10125932 samples);
Total: 8792 packets (9185902 bytes) demuxed
Output file #0 (out.wav):
Output stream #0:0 (audio): 8791 frames encoded (10125932 samples); 8791
packets muxed (40503728 bytes);
Total: 8791 packets (40503728 bytes) muxed
8791 frames successfully decoded, 1 decoding errors
[AVIOContext @ 0x7f8e3752e240] Statistics: 4 seeks, 158 writeouts
[AVIOContext @ 0x7f8e37528680] Statistics: 9212079 bytes read, 0 seeks
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/7879>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list