首页 > 解决方案 > FFMPEG [mp3float @ 0x7fd42f813200] 缺少标头

问题描述

我对一些 mp3 文件有疑问。使用 FFMPEG 对文件进行转码时,出现以下错误:

[mp3float @ 0x7fd42f813200] Header missing
Error while decoding stream #0:0: Invalid data found when processing input

这是文件本身的问题吗?它是如何产生的?还是FFMPEG的问题?

这里完整的解码消息:

ffmpeg version git-2020-07-28-dfd12ee Copyright (c) 2000-2020 the FFmpeg developers
  built with Apple clang version 11.0.0 (clang-1100.0.33.16)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD-dfd12ee_2 --enable-shared --cc=clang --host-cflags= --host-ldflags= --enable-gpl --enable-libaom --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-demuxer=dash --disable-libjack --disable-indev=jack --enable-opencl --enable-videotoolbox --disable-htmlpages --enable-libfdk-aac --enable-nonfree
  libavutil      56. 57.100 / 56. 57.100
  libavcodec     58. 97.102 / 58. 97.102
  libavformat    58. 49.100 / 58. 49.100
  libavdevice    58. 11.101 / 58. 11.101
  libavfilter     7. 87.100 /  7. 87.100
  libswscale      5.  8.100 /  5.  8.100
  libswresample   3.  8.100 /  3.  8.100
  libpostproc    55.  8.100 / 55.  8.100
[mp3 @ 0x7fd42f808200] Estimating duration from bitrate, this may be inaccurate
Input #0, mp3, from 'Ice Mc - Think About The Way.mp3':
  Metadata:
    title           : Think About The Way
    TBPM            : 133
    artist          : Ice MC
    date            : 1994
    track           : 4/15
    disc            : 0
    album_artist    : ICE MC
  Duration: 00:04:16.39, start: 0.000000, bitrate: 323 kb/s
    Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 320 kb/s
    Stream #0:1: Video: mjpeg (Baseline), yuvj420p(pc, bt470bg/unknown/unknown), 600x592 [SAR 72:72 DAR 75:74], 90k tbr, 90k tbn, 90k tbc (attached pic)
    Metadata:
      comment         : Other
Stream mapping:
  Stream #0:1 -> #0:0 (mjpeg (native) -> wrapped_avframe (native))
  Stream #0:0 -> #0:1 (mp3 (mp3float) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, null, to 'pipe:':
  Metadata:
    title           : Think About The Way
    TBPM            : 133
    artist          : Ice MC
    date            : 1994
    track           : 4/15
    disc            : 0
    album_artist    : ICE MC
    encoder         : Lavf58.49.100
    Stream #0:0: Video: wrapped_avframe, yuvj420p(progressive), 600x592 [SAR 72:72 DAR 75:74], q=2-31, 200 kb/s, 90k fps, 90k tbn, 90k tbc (attached pic)
    Metadata:
      comment         : Other
      encoder         : Lavc58.97.102 wrapped_avframe
    Stream #0:1: Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s
    Metadata:
      encoder         : Lavc58.97.102 pcm_s16le
[mp3float @ 0x7fd42f813200] Header missing
Error while decoding stream #0:0: Invalid data found when processing input
frame=    1 fps=0.0 q=-0.0 Lsize=N/A time=00:04:16.60 bitrate=N/A speed= 725x    
video:1kB audio:44204kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

还值得注意的是,此 mp3 将封面嵌入为视频流。还有这个奇怪的交叉映射。不知道这是否正常?

标签: ffmpeg

解决方案


你确定你只使用你需要的流吗?如果不是,您可以通过打印所有数据包的流数来检查它,由av_read_frame. 要选择特定流,您应该丢弃其他流。检查此线程以了解如何:如何更改 libavformat 中的流索引


推荐阅读