Opened 7 years ago

Closed 7 years ago

#6288 closed defect (duplicate)

Wrong bitrate information on produced .mp3 when using "-acodec copy" on low bitrate input

Reported by: kohlhaas Owned by:
Priority: normal Component: undetermined
Version: unspecified Keywords: mp3
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

What i try to do: I am trying to get the audio stream from a .flv and save it as .mp3 with "-acodec copy". The input file's audio stream is mp3 with bitrate less than 56kB/s.

Problem: When inspecting the output file with VLC media player, it shows a bitrate of 56 kB/s. For a input file with audio stream bitrate of 16kB/s, the output file showed a bitrate of 32kB/s.
The actual file size fits the lower bitrate of the input stream.
I did not get this problem when the input stream had a bitrate of 56kB/s or more.

Consequence: When using the file in a HTML <audio>-Tag, some browsers (Safari, maybe others too) estimate a shorter duration than the file actually has.

Command line:

ffmpeg -i input.flv -acodec copy output.mp3

I tried this with several .flv files, also some from the web (​http://www.mediacollege.com/adobe/flash/video/tutorial/example-flv.html) and also with a .mp3 file.

verbose -report output:

ffmpeg started on 2017-04-03 at 13:43:55
Report written to "ffmpeg-20170403-134355.log"
Command line:
ffmpeg -v 9 -loglevel 99 -i 20051210-w50s.flv -acodec copy output.mp3 -report
ffmpeg version N-84348-gdb7a05d Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 6.3.0 (GCC)
  configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --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-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-zlib
  libavutil      55. 50.100 / 55. 50.100
  libavcodec     57. 83.101 / 57. 83.101
  libavformat    57. 66.105 / 57. 66.105
  libavdevice    57.  3.100 / 57.  3.100
  libavfilter     6. 78.100 /  6. 78.100
  libswscale      4.  3.101 /  4.  3.101
  libswresample   2.  4.100 /  2.  4.100
  libpostproc    54.  2.100 / 54.  2.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 '20051210-w50s.flv'.
Reading option '-acodec' ... matched as option 'acodec' (force audio codec ('copy' to copy stream)) with argument 'copy'.
Reading option 'output.mp3' ... matched as output url.
Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument 9.
Applying option loglevel (set logging level) with argument 99.
Applying option report (generate a report) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input url 20051210-w50s.flv.
Successfully parsed a group of options.
Opening an input file: 20051210-w50s.flv.
[file @ 00000000004eac40] Setting default whitelist 'file,crypto'
[flv @ 00000000003285a0] Format flv probed with size=2048 and score=100
[flv @ 00000000003285a0] Before avformat_find_stream_info() pos: 13 bytes read:32768 seeks:0 nb_streams:0
[flv @ 00000000003285a0] All info found
[flv @ 00000000003285a0] After avformat_find_stream_info() pos: 55624 bytes read:65536 seeks:0 frames:103
Input #0, flv, from '20051210-w50s.flv':
  Metadata:
    audiodelay      : 0
    canSeekToEnd    : 1
    creationdate    : Fri Feb 03 11:52:46 2006
                    : 
  Duration: 00:00:16.92, start: 0.000000, bitrate: 316 kb/s
    Stream #0:0, 62, 1/1000: Audio: mp3, 22050 Hz, stereo, s16p, 40 kb/s
    Stream #0:1, 41, 1/1000: Video: vp6f, 1 reference frame, yuv420p, 360x288 (368x288), 0/1, 266 kb/s, 25 fps, 25 tbr, 1k tbn
Successfully opened the file.
Parsing a group of options: output url output.mp3.
Applying option acodec (force audio codec ('copy' to copy stream)) with argument copy.
Successfully parsed a group of options.
Opening an output file: output.mp3.
[file @ 0000000000546f20] Setting default whitelist 'file,crypto'
Successfully opened the file.
Output #0, mp3, to 'output.mp3':
  Metadata:
    audiodelay      : 0
    canSeekToEnd    : 1
    creationdate    : Fri Feb 03 11:52:46 2006
                    : 
    TSSE            : Lavf57.66.105
    Stream #0:0, 0, 1/1000: Audio: mp3, 22050 Hz, stereo, s16p, 40 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
size=      60kB time=00:00:12.14 bitrate=  40.3kbits/s speed=24.2x    
No more output streams to write to, finishing.
size=      83kB time=00:00:16.92 bitrate=  40.2kbits/s speed=24.8x    
video:0kB audio:83kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.385763%
Input file #0 (20051210-w50s.flv):
  Input stream #0:0 (audio): 649 packets read (84767 bytes); 
  Input stream #0:1 (video): 41 packets read (45536 bytes); 
  Total: 690 packets (130303 bytes) demuxed
Output file #0 (output.mp3):
  Output stream #0:0 (audio): 649 packets muxed (84767 bytes); 
  Total: 649 packets (84767 bytes) muxed
0 frames successfully decoded, 0 decoding errors
[AVIOContext @ 000000000053ffe0] Statistics: 1 seeks, 651 writeouts
[AVIOContext @ 00000000004f2e00] Statistics: 649512 bytes read, 2 seeks

Change History (1)

comment:1 by Carl Eugen Hoyos, 7 years ago

Keywords: bitrate removed
Resolution: duplicate
Status: newclosed

I suggest to test this ticket again once the other is fixed.

Note: See TracTickets for help on using tickets.