[FFmpeg-trac] #6500(avformat:open): Fails to playback a certain .WAV audio file

FFmpeg trac at avcodec.org
Sun Sep 6 19:05:44 EEST 2020

#6500: Fails to playback a certain .WAV audio file
             Reporter:  megpoid      |                    Owner:
                 Type:  defect       |                   Status:  open
             Priority:  important    |                Component:  avformat
              Version:  git-master   |               Resolution:
             Keywords:  h263 mp3     |               Blocked By:
  probe regression                   |
             Blocking:               |  Reproduced by developer:  1
Analyzed by developer:  0            |

Comment (by ddirect):

 This is a "BMU" file, apparently used in some games. It's basically an MP3
 with the "BMU V1.0" 8 byte string as header (and possibly a footer).
 Removing the 8 bytes header results in score 51 for the mp3 format, so the
 file is detected and decoded correctly. But with the header, the score is
 25 for mp3 and other probers are attempted. The h263 probing partially
 succeeds with a score of 25 as well. The file is then assumed as h263 and
 decoding consequently fails.
 I see 4 possible solutions to this:
 1. Improve the h263 parser so that it's more robust against sequence of
 bytes which might, by chance, result in a false positive detection.
 2. Improve the mp3 parser so that it gives higher score even in presence
 of some random data before the first mp3 frame, when the rest of the data
 really appears to contain valid mp3 frames.
 3. Improve the heuristic used to choose a format instead of another when
 probing results in the same score; for example, between mp3 and h263 I
 might want ffmpeg to choose mp3 since it's arguably a more common file
 4. Leave everything as it is (this is not a common way to encode an mp3
 anyway), but improve the output, e.g. by notifying the user that the
 probing stage resulted in multiple candidates and possibly suggesting to
 add an appropriate "-f" parameter to the command line. The current default
 output (without a more verbose logging level) doesn't give the user
 information about what is actually going on.
 I'm a developer with some spare time, let me know if working on one of
 these solutions would be helpful. I'm on the ffmpeg-devel mailing list,
 not sure if this discussion actually belongs there.

Ticket URL: <https://trac.ffmpeg.org/ticket/6500#comment:5>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker

More information about the FFmpeg-trac mailing list