Music Player Daemon MP3 VBR Troubleshooting
From Music Player Daemon Community Wiki
Contents |
[edit] Background information
MP3s optionally contain a VBR header, which contains information such as the number of MPEG frames, the average bitrate, and whether or not the file is variable-bitrate. (Note that even constant-bitrate MP3s may contain VBR headers.) Without a VBR header, there's no way to tell the VBR/CBR-status [maybe?], average bitrate, or playing time without exhaustively scanning through the entire file. Therefore, when MPD finds a VBR header, it depends on this header to be correct to avoid such a lengthy scan of the file.
Beginning with version 0.12.0, MPD is more strict with Xing VBR headers. Files with incorrect (broken) VBR headers which correctly played in prior versions of MPD may now begin to play, but get cut off at some point before the end of the file. If you are experiencing this problem, the tools described below will help you identify and correct this problem.
[edit] Correcting MP3 files
[edit] MP3val
MP3val is a portable C++ program to validate MP3 files. It performs many consistency checks, including Xing headers. It also respects ID3v2 tags. The homepage has links to Windows binaries and source code. It is packaged in Debian under the name mp3val.
To use MP3val to check for this problem, run:
$ mp3val FILE ...
To correct broken MP3 files, saving backups to *.bak, run:
$ mp3val -f FILE ...
[edit] vbrfix
vbrfix is a Visual Basic program that has been ported to C++. The homepage has links to Windows binaries for the VB and C++ versions, Mac OS X PowerPC binaries for the C++ version, and source code for the C++ version. (Note: good luck building the source under Linux.)
To correct broken MP3 files, run:
$ vbrfixc FILE
[edit] Update MPD database
After correcting the files, update the MPD database.
[edit] Followup
Still having issues? Please come see us in #mpd on irc.freenode.org. Make sure you followed the steps throughly or face scrutiny.
