#7465 closed defect (invalid)
MP3 24-bit (fmt:s32p) is displayed in the log, but the transcoded file is not
Reported by: | Samuel | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | undetermined |
Version: | git-master | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Summary of the bug:
Transcoding FLAC 24-bit stream to MP3 display a weird logging message for the output:
"Stream #0:0, 0, 1/48000: Audio: mp3 (libmp3lame), 48000 Hz, stereo, s32p (24 bit), 320 kb/s"
But the output file is not, as expected by the standard AFAIK.
How to reproduce:
ffmpeg started on 2018-10-01 at 14:53:26 Report written to "ffmpeg-20181001-145326.log" Command line: ffmpeg.exe -report -y -i "F:\\_DEVELOPPEMENT_TOOLS\\!MEDIA_TEST_FILES\\AUDIO\\FLAC\\DOUBLE\\surround88-24b-6ch.flac" -vn -dn -f mp3 -b:a 320000 NUL ffmpeg version N-91977-ge33b28cc79 Copyright (c) 2000-2018 the FFmpeg developers built with gcc 8.2.0 (GCC) configuration: --enable-gpl --enable-version3 --enable-avisynth --enable-fontconfig --enable-gnutls --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libilbc --enable-libkvazaar --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libxml2 --enable-libzimg --enable-opengl --enable-pthreads --disable-w32threads --disable-dxva2 --disable-debug --pkg-config-flags=--static --extra-ldflags=-static --extra-cflags='-mtune=generic -mfpmath=sse -msse' --cpu=i686 --optflags='-O2 -finline-fun libavutil 56. 19.101 / 56. 19.101 libavcodec 58. 30.100 / 58. 30.100 libavformat 58. 18.101 / 58. 18.101 libavdevice 58. 4.103 / 58. 4.103 libavfilter 7. 32.100 / 7. 32.100 libswscale 5. 2.100 / 5. 2.100 libswresample 3. 2.100 / 3. 2.100 libpostproc 55. 2.100 / 55. 2.100 Splitting the commandline. Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'. Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'. Reading option '-i' ... matched as input url with argument 'F:\_DEVELOPPEMENT_TOOLS\!MEDIA_TEST_FILES\AUDIO\FLAC\DOUBLE\surround88-24b-6ch.flac'. Reading option '-vn' ... matched as option 'vn' (disable video) with argument '1'. Reading option '-dn' ... matched as option 'dn' (disable data) with argument '1'. Reading option '-f' ... matched as option 'f' (force format) with argument 'mp3'. Reading option '-b:a' ... matched as option 'b' (video bitrate (please use -b:v)) with argument '320000'. Reading option 'NUL' ... matched as output url. Finished splitting the commandline. Parsing a group of options: global . Applying option report (generate a report) with argument 1. Applying option y (overwrite output files) with argument 1. Successfully parsed a group of options. Parsing a group of options: input url F:\_DEVELOPPEMENT_TOOLS\!MEDIA_TEST_FILES\AUDIO\FLAC\DOUBLE\surround88-24b-6ch.flac. Successfully parsed a group of options. Opening an input file: F:\_DEVELOPPEMENT_TOOLS\!MEDIA_TEST_FILES\AUDIO\FLAC\DOUBLE\surround88-24b-6ch.flac. [NULL @ 08021580] Opening 'F:\_DEVELOPPEMENT_TOOLS\!MEDIA_TEST_FILES\AUDIO\FLAC\DOUBLE\surround88-24b-6ch.flac' for reading [file @ 080221c0] Setting default whitelist 'file,crypto' [flac @ 08021580] Format flac probed with size=2048 and score=100 [flac @ 08021580] Before avformat_find_stream_info() pos: 8438 bytes read:32768 seeks:0 nb_streams:1 [flac @ 08021580] All info found [flac @ 08021580] After avformat_find_stream_info() pos: 10486 bytes read:32768 seeks:0 frames:1 Input #0, flac, from 'F:\_DEVELOPPEMENT_TOOLS\!MEDIA_TEST_FILES\AUDIO\FLAC\DOUBLE\surround88-24b-6ch.flac': Duration: 00:00:56.34, start: 0.000000, bitrate: 999 kb/s Stream #0:0, 1, 1/88200: Audio: flac, 88200 Hz, 5.1, s32 (24 bit) Successfully opened the file. Parsing a group of options: output url NUL. Applying option vn (disable video) with argument 1. Applying option dn (disable data) with argument 1. Applying option f (force format) with argument mp3. Applying option b:a (video bitrate (please use -b:v)) with argument 320000. Successfully parsed a group of options. Opening an output file: NUL. [file @ 08068a80] Setting default whitelist 'file,crypto' Successfully opened the file. detected 1 logical cores Stream mapping: Stream #0:0 -> #0:0 (flac (native) -> mp3 (libmp3lame)) Press [q] to stop, [?] for help cur_dts is invalid (this is harmless if it occurs once at the start per stream) [graph_0_in_0_0 @ 08067280] Setting 'time_base' to value '1/88200' [graph_0_in_0_0 @ 08067280] Setting 'sample_rate' to value '88200' [graph_0_in_0_0 @ 08067280] Setting 'sample_fmt' to value 's32' [graph_0_in_0_0 @ 08067280] Setting 'channel_layout' to value '0x3f' [graph_0_in_0_0 @ 08067280] tb:1/88200 samplefmt:s32 samplerate:88200 chlayout:0x3f [format_out_0_0 @ 08067f80] Setting 'sample_fmts' to value 's32p|fltp|s16p' [format_out_0_0 @ 08067f80] Setting 'sample_rates' to value '44100|48000|32000|22050|24000|16000|11025|12000|8000' [format_out_0_0 @ 08067f80] Setting 'channel_layouts' to value '0x4|0x3' [format_out_0_0 @ 08067f80] auto-inserting filter 'auto_resampler_0' between the filter 'Parsed_anull_0' and the filter 'format_out_0_0' [AVFilterGraph @ 08067080] query_formats: 4 queried, 6 merged, 3 already done, 0 delayed [auto_resampler_0 @ 080c4b80] picking s32p out of 3 ref:s32 [auto_resampler_0 @ 080c4b80] [SWR @ 080c5000] Using fltp internally between filters [auto_resampler_0 @ 080c4b80] [SWR @ 080c5000] Matrix coefficients: [auto_resampler_0 @ 080c4b80] [SWR @ 080c5000] FL: FL:0.414214 FR:0.000000 FC:0.292893 LFE:0.000000 BL:0.292893 BR:0.000000 [auto_resampler_0 @ 080c4b80] [SWR @ 080c5000] FR: FL:0.000000 FR:0.414214 FC:0.292893 LFE:0.000000 BL:0.000000 BR:0.292893 [auto_resampler_0 @ 080c4b80] ch:6 chl:5.1 fmt:s32 r:88200Hz -> ch:2 chl:stereo fmt:s32p r:48000Hz Output #0, mp3, to 'NUL': Metadata: TSSE : Lavf58.18.101 Stream #0:0, 0, 1/48000: Audio: mp3 (libmp3lame), 48000 Hz, stereo, s32p (24 bit), 320 kb/s Metadata: encoder : Lavc58.30.100 libmp3lame cur_dts is invalid (this is harmless if it occurs once at the start per stream) size= 91kB time=2.28 bitrate= 326.8kbits/s speed=4.53x size= 182kB time=4.61 bitrate= 323.3kbits/s speed=4.57x size= 256kB time=6.79 bitrate= 308.7kbits/s speed=4.49x size= 256kB time=8.98 bitrate= 233.6kbits/s speed=4.44x size= 256kB time=11.33 bitrate= 185.1kbits/s speed=4.49x size= 512kB time=13.61 bitrate= 308.2kbits/s speed= 4.5x size= 512kB time=15.98 bitrate= 262.4kbits/s speed=4.53x size= 512kB time=18.17 bitrate= 230.8kbits/s speed=4.51x size= 768kB time=20.59 bitrate= 305.5kbits/s speed=4.54x size= 768kB time=22.44 bitrate= 280.4kbits/s speed=4.45x size= 768kB time=23.78 bitrate= 264.5kbits/s speed=4.28x size= 768kB time=25.42 bitrate= 247.5kbits/s speed=4.19x size= 1024kB time=26.81 bitrate= 312.9kbits/s speed=4.08x size= 1024kB time=28.49 bitrate= 294.5kbits/s speed=4.01x size= 1024kB time=30.62 bitrate= 273.9kbits/s speed=4.03x size= 1024kB time=32.02 bitrate= 262.0kbits/s speed=3.95x size= 1280kB time=33.86 bitrate= 309.6kbits/s speed=3.93x size= 1280kB time=36.19 bitrate= 289.7kbits/s speed=3.97x size= 1280kB time=38.59 bitrate= 271.7kbits/s speed=4.01x size= 1536kB time=40.73 bitrate= 308.9kbits/s speed=4.02x [NULL @ 08033000] dropping low score -59 frame header from offset 35 to 6415 size= 1536kB time=42.91 bitrate= 293.2kbits/s speed=4.04x size= 1536kB time=44.18 bitrate= 284.8kbits/s speed=3.97x size= 1792kB time=46.13 bitrate= 318.2kbits/s speed=3.96x size= 1792kB time=48.48 bitrate= 302.8kbits/s speed=3.99x size= 1792kB time=50.50 bitrate= 290.7kbits/s speed=3.99x size= 2048kB time=52.44 bitrate= 319.9kbits/s speed=3.99x size= 2048kB time=54.53 bitrate= 307.7kbits/s speed=3.99x [out_0_0 @ 08067580] EOF on sink link out_0_0:default. No more output streams to write to, finishing. [libmp3lame @ 08024980] Trying to remove 436 more samples than there are in the queue size= 2203kB time=56.35 bitrate= 320.3kbits/s speed= 4x video:0kB audio:2202kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.044567% Input file #0 (F:\_DEVELOPPEMENT_TOOLS\!MEDIA_TEST_FILES\AUDIO\FLAC\DOUBLE\surround88-24b-6ch.flac): Input stream #0:0 (audio): 1214 packets read (7032652 bytes); 1214 frames decoded (4969531 samples); Total: 1214 packets (7032652 bytes) demuxed Output file #0 (NUL): Output stream #0:0 (audio): 2348 frames encoded (2704507 samples); 2349 packets muxed (2255040 bytes); Total: 2349 packets (2255040 bytes) muxed 1214 frames successfully decoded, 0 decoding errors [AVIOContext @ 0804e740] Statistics: 1 seeks, 10 writeouts [AVIOContext @ 0802a500] Statistics: 7041090 bytes read, 0 seeks
Change History (8)
comment:1 by , 6 years ago
comment:2 by , 6 years ago
I think that MP3 could only be 16-bit.
FFmpeg real output is different of what was said in the log when transcoding.
The output file analyszed by FFmpeg is the following:
ffmpeg started on 2018-10-01 at 15:19:31
Report written to "ffmpeg-20181001-151931.log"
Command line:
ffmpeg -report -i MP3Test.mp3
ffmpeg version N-91977-ge33b28cc79 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 8.2.0 (GCC)
configuration: --enable-gpl --enable-version3 --enable-avisynth --enable-fontconfig --enable-gnutls --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libilbc --enable-libkvazaar --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libxml2 --enable-libzimg --enable-opengl --enable-pthreads --disable-w32threads --disable-dxva2 --disable-debug --pkg-config-flags=--static --extra-ldflags=-static --extra-cflags='-mtune=generic -mfpmath=sse -msse' --cpu=i686 --optflags='-O2 -finline-fun libavutil 56. 19.101 / 56. 19.101
libavcodec 58. 30.100 / 58. 30.100
libavformat 58. 18.101 / 58. 18.101
libavdevice 58. 4.103 / 58. 4.103
libavfilter 7. 32.100 / 7. 32.100
libswscale 5. 2.100 / 5. 2.100
libswresample 3. 2.100 / 3. 2.100
libpostproc 55. 2.100 / 55. 2.100
Splitting the commandline.
Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'.
Reading option '-i' ... matched as input url with argument 'MP3Test.mp3'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option report (generate a report) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input url MP3Test.mp3.
Successfully parsed a group of options.
Opening an input file: MP3Test.mp3.
[NULL @ 08021080] Opening 'MP3Test.mp3' for reading
[file @ 08021c00] Setting default whitelist 'file,crypto'
[mp3 @ 08021080] Format mp3 probed with size=8192 and score=51
id3v2 ver:4 flags:00 len:35
[mp3 @ 08021080] pad 576 965
[mp3 @ 08021080] Skipping 0 bytes of junk at 1005.
[mp3 @ 08021080] Before avformat_find_stream_info() pos: 1005 bytes read:32768 seeks:0 nb_streams:1
[mp3 @ 08021080] demuxer injecting skip 1105 / discard 0
[mp3float @ 08035f80] skip 1105 / discard 0 samples due to side data
[mp3float @ 08035f80] skip 1105/1152 samples
[mp3 @ 08021080] All info found
[mp3 @ 08021080] After avformat_find_stream_info() pos: 49133 bytes read:65536 seeks:0 frames:50
Input #0, mp3, from 'MP3Test.mp3':
Metadata:
encoder : Lavf58.18.101
Duration: 00:00:56.38, start: 0.023021, bitrate: 320 kb/s
Stream #0:0, 50, 1/14112000: Audio: mp3, 48000 Hz, stereo, fltp, 320 kb/s
Metadata:
encoder : Lavc58.30
Successfully opened the file.
At least one output file must be specified
[AVIOContext @ 08029e80] Statistics: 65536 bytes read, 0 seeks
comment:4 by , 6 years ago
FFmpeg seem incoherent to me, but if i'm wrong feel free to close that issue.
Thanks.
comment:5 by , 6 years ago
MP3 “is” neither 16 nor 32 bits because MP3 does not store samples, it stores rounded Fourier coefficients.
The output of FFmpeg tells you that libmp3lame will accept 32 bits samples and encode them to MP3, and later that the decoder will produce floating point samples. This is not a really useful information for a lossy codec.
comment:7 by , 6 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
comment:8 by , 6 years ago
Component: | avformat → undetermined |
---|---|
Keywords: | MP3 24-bit removed |
Priority: | minor → normal |
Type: | enhancement → defect |
Can you clarify what it means? What do you find incorrect in the output file, and with what tool do you experience an issue?