[FFmpeg-trac] #8947(undetermined:new): Converting mp3 with cover art into mp4 with cover art as video fails

FFmpeg trac at avcodec.org
Mon Oct 26 14:01:47 EET 2020


#8947: Converting mp3 with cover art into mp4 with cover art as video fails
-------------------------------------+-------------------------------------
             Reporter:  naktinis     |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:

 I'm trying to convert an mp3 (mp3 + mjpeg) into mp4 (aac + h264).

 {{{
 ffmpeg -i in.mp3 out.mp4
 }}}
 Fails with "Could not find tag for codec h264 in stream #0, codec not
 currently supported in container". I tried various parameters like setting
 frame rate, using stream_loop, but nothing helps and looks like the
 problem is at a different level. Also, tried multiple different input
 files and the same thing happens every time.

 {{{
 ffmpeg -i in.mp3 cover.jpg
 ffmpeg -i in.mp3 -i cover.jpg -map 0:a:0 -map 1:0 out.mp4
 }}}
 Extracting the cover and muxing from two separate files works fine.

 {{{
 ffmpeg -i in.mp3 out.webm
 }}}
 Converting to webm instead of mp4 works fine as well (sure, you need to
 set the framerate to see the cover, but with mp4 you always get an error,
 and nothing I tried helps).

 Built with the lastest branch: 343c3149ab.
 Input file attached.


 How to reproduce:
 {{{
 % ./ffmpeg -i bunny_with_cover.mp3 out.mp4
 ffmpeg version N-99744-g343c3149ab Copyright (c) 2000-2020 the FFmpeg
 developers
   built with Apple clang version 12.0.0 (clang-1200.0.32.2)
   configuration: --prefix=/usr/local --enable-gpl --enable-nonfree
 --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-
 libmp3lame --enable-libvorbis --enable-libvpx --enable-libx264 --enable-
 libx265 --enable-libopus --enable-libxvid --samples=fate-suite
   libavutil      56. 60.100 / 56. 60.100
   libavcodec     58.112.100 / 58.112.100
   libavformat    58. 63.100 / 58. 63.100
   libavdevice    58. 11.102 / 58. 11.102
   libavfilter     7. 88.100 /  7. 88.100
   libswscale      5.  8.100 /  5.  8.100
   libswresample   3.  8.100 /  3.  8.100
   libpostproc    55.  8.100 / 55.  8.100
 Input #0, mp3, from '/Users/naktinis/data/audio/bunny_with_cover.mp3':
   Metadata:
     major_brand     : mp42
     minor_version   : 0
     compatible_brands: isommp42
     encoder         : Lavf58.45.100
   Duration: 00:00:10.03, start: 0.025056, bitrate: 156 kb/s
     Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 128 kb/s
     Metadata:
       encoder         : Lavc58.91
     Stream #0:1: Video: mjpeg (Baseline), yuvj420p(pc,
 bt470bg/unknown/unknown), 640x360 [SAR 1:1 DAR 16:9], 90k tbr, 90k tbn,
 90k tbc (attached pic)
     Metadata:
       comment         : Other
 Stream mapping:
   Stream #0:1 -> #0:0 (mjpeg (native) -> h264 (libx264))
   Stream #0:0 -> #0:1 (mp3 (mp3float) -> aac (native))
 Press [q] to stop, [?] for help
 [mp4 @ 0x7f816101b400] Frame rate very high for a muxer not efficiently
 supporting it.
 Please consider specifying a lower framerate, a different muxer or -vsync
 2
 [libx264 @ 0x7f8161017e00] using SAR=1/1
 [libx264 @ 0x7f8161017e00] MB rate (82800000) > level limit (16711680)
 [libx264 @ 0x7f8161017e00] using cpu capabilities: MMX2 SSE2Fast SSSE3
 SSE4.2 AVX FMA3 BMI2 AVX2
 [libx264 @ 0x7f8161017e00] profile High, level 6.2, 4:2:0, 8-bit
 [libx264 @ 0x7f8161017e00] 264 - core 160 r3011M cde9a93 - H.264/MPEG-4
 AVC codec - Copyleft 2003-2020 - http://www.videolan.org/x264.html -
 options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7
 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1
 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=11
 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0
 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1
 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25
 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0
 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
 [mp4 @ 0x7f816101b400] Could not find tag for codec h264 in stream #0,
 codec not currently supported in container
 Could not write header for output file #0 (incorrect codec parameters ?):
 Invalid argument
 Error initializing output stream 0:1 --
 [aac @ 0x7f8161808e00] Qavg: nan
 Conversion failed!
 }}}

 {{{
 ./ffmpeg -v 9 -loglevel 99 -i bunny_with_cover.mp3
 ffmpeg version N-99744-g343c3149ab Copyright (c) 2000-2020 the FFmpeg
 developers
   built with Apple clang version 12.0.0 (clang-1200.0.32.2)
   configuration: --prefix=/usr/local --enable-gpl --enable-nonfree
 --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-
 libmp3lame --enable-libvorbis --enable-libvpx --enable-libx264 --enable-
 libx265 --enable-libopus --enable-libxvid --samples=fate-suite
   libavutil      56. 60.100 / 56. 60.100
   libavcodec     58.112.100 / 58.112.100
   libavformat    58. 63.100 / 58. 63.100
   libavdevice    58. 11.102 / 58. 11.102
   libavfilter     7. 88.100 /  7. 88.100
   libswscale      5.  8.100 /  5.  8.100
   libswresample   3.  8.100 /  3.  8.100
   libpostproc    55.  8.100 / 55.  8.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
 '/Users/naktinis/data/audio/bunny_with_cover.mp3'.
 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
 /Users/naktinis/data/audio/bunny_with_cover.mp3.
 Successfully parsed a group of options.
 Opening an input file: /Users/naktinis/data/audio/bunny_with_cover.mp3.
 [NULL @ 0x7ffcc3808200] Opening
 '/Users/naktinis/data/audio/bunny_with_cover.mp3' for reading
 [file @ 0x7ffcc3605340] Setting default whitelist 'file,crypto,data'
 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:12 size:32768
 Probing mp3 score:51 size:29600
 [mp3 @ 0x7ffcc3808200] Format mp3 probed with size=65536 and score=51
 id3v2 ver:3 flags:00 len:35926
 [mp3 @ 0x7ffcc3808200] pad 576 792
 [mp3 @ 0x7ffcc3808200] Skipping 0 bytes of junk at 36353.
 [mp3 @ 0x7ffcc3808200] Before avformat_find_stream_info() pos: 36353 bytes
 read:65536 seeks:0 nb_streams:2
 [mjpeg @ 0x7ffcc400d000] marker=d8 avail_size_in_buf=35772
 [mjpeg @ 0x7ffcc400d000] marker parser used 0 bytes (0 bits)
 [mjpeg @ 0x7ffcc400d000] marker=e0 avail_size_in_buf=35770
 [mjpeg @ 0x7ffcc400d000] marker parser used 16 bytes (128 bits)
 [mjpeg @ 0x7ffcc400d000] marker=fe avail_size_in_buf=35752
 [mjpeg @ 0x7ffcc400d000] marker parser used 16 bytes (128 bits)
 [mjpeg @ 0x7ffcc400d000] marker=db avail_size_in_buf=35734
 [mjpeg @ 0x7ffcc400d000] index=0
 [mjpeg @ 0x7ffcc400d000] qscale[0]: 6
 [mjpeg @ 0x7ffcc400d000] marker parser used 67 bytes (536 bits)
 [mjpeg @ 0x7ffcc400d000] marker=c4 avail_size_in_buf=35665
 [mjpeg @ 0x7ffcc400d000] marker parser used 0 bytes (0 bits)
 [mjpeg @ 0x7ffcc400d000] marker=c0 avail_size_in_buf=35489
 [mjpeg @ 0x7ffcc400d000] Changing bps from 0 to 8
 [mjpeg @ 0x7ffcc400d000] sof0: picture: 640x360
 [mjpeg @ 0x7ffcc400d000] component 0 2:2 id: 0 quant:0
 [mjpeg @ 0x7ffcc400d000] component 1 1:1 id: 1 quant:0
 [mjpeg @ 0x7ffcc400d000] component 2 1:1 id: 2 quant:0
 [mjpeg @ 0x7ffcc400d000] pix fmt id 22111100
 [mjpeg @ 0x7ffcc400d000] Format yuvj420p chosen by get_format().
 [mjpeg @ 0x7ffcc400d000] marker parser used 17 bytes (136 bits)
 [mjpeg @ 0x7ffcc400d000] escaping removed 125 bytes
 [mjpeg @ 0x7ffcc400d000] marker=da avail_size_in_buf=35470
 [mjpeg @ 0x7ffcc400d000] marker parser used 35345 bytes (282760 bits)
 [mjpeg @ 0x7ffcc400d000] marker=d9 avail_size_in_buf=0
 [mjpeg @ 0x7ffcc400d000] decode frame unused 0 bytes
 [mp3 @ 0x7ffcc3808200] demuxer injecting skip 1105 / discard 0
 [mp3float @ 0x7ffcc4008200] skip 1105 / discard 0 samples due to side data
 [mp3float @ 0x7ffcc4008200] skip 1105/1152 samples
 [mp3 @ 0x7ffcc3808200] All info found
 [mp3 @ 0x7ffcc3808200] stream 0: start_time: 0.0250567 duration: 10.031
 [mp3 @ 0x7ffcc3808200] stream 1: start_time: 0.0250556 duration: 10.031
 [mp3 @ 0x7ffcc3808200] format: start_time: 0.025056 duration: 10.031
 (estimate from stream) bitrate=156 kb/s
 [mp3 @ 0x7ffcc3808200] After avformat_find_stream_info() pos: 57857 bytes
 read:65536 seeks:0 frames:51
 Input #0, mp3, from '/Users/naktinis/data/audio/bunny_with_cover.mp3':
   Metadata:
     major_brand     : mp42
     minor_version   : 0
     compatible_brands: isommp42
     encoder         : Lavf58.45.100
   Duration: 00:00:10.03, start: 0.025056, bitrate: 156 kb/s
     Stream #0:0, 50, 1/14112000: Audio: mp3, 44100 Hz, stereo, fltp, 128
 kb/s
     Metadata:
       encoder         : Lavc58.91
     Stream #0:1, 1, 1/90000: Video: mjpeg (Baseline), 1 reference frame,
 yuvj420p(pc, bt470bg/unknown/unknown, center), 640x360 [SAR 1:1 DAR 16:9],
 0/1, 90k tbr, 90k tbn, 90k tbc (attached pic)
     Metadata:
       comment         : Other
 Successfully opened the file.
 At least one output file must be specified
 [AVIOContext @ 0x7ffcc3605500] Statistics: 65536 bytes read, 0 seeks
 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/8947>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list