123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421 |
- .\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
- .\"
- .\" Standard preamble:
- .\" ========================================================================
- .de Sp \" Vertical space (when we can't use .PP)
- .if t .sp .5v
- .if n .sp
- ..
- .de Vb \" Begin verbatim text
- .ft CW
- .nf
- .ne \\$1
- ..
- .de Ve \" End verbatim text
- .ft R
- .fi
- ..
- .\" Set up some character translations and predefined strings. \*(-- will
- .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
- .\" double quote, and \*(R" will give a right double quote. \*(C+ will
- .\" give a nicer C++. Capital omega is used to do unbreakable dashes and
- .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
- .\" nothing in troff, for use with C<>.
- .tr \(*W-
- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
- .ie n \{\
- . ds -- \(*W-
- . ds PI pi
- . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
- . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
- . ds L" ""
- . ds R" ""
- . ds C` ""
- . ds C' ""
- 'br\}
- .el\{\
- . ds -- \|\(em\|
- . ds PI \(*p
- . ds L" ``
- . ds R" ''
- . ds C`
- . ds C'
- 'br\}
- .\"
- .\" Escape single quotes in literal strings from groff's Unicode transform.
- .ie \n(.g .ds Aq \(aq
- .el .ds Aq '
- .\"
- .\" If the F register is turned on, we'll generate index entries on stderr for
- .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
- .\" entries marked with X<> in POD. Of course, you'll have to process the
- .\" output yourself in some meaningful fashion.
- .\"
- .\" Avoid warning from groff about undefined register 'F'.
- .de IX
- ..
- .nr rF 0
- .if \n(.g .if rF .nr rF 1
- .if (\n(rF:(\n(.g==0)) \{
- . if \nF \{
- . de IX
- . tm Index:\\$1\t\\n%\t"\\$2"
- ..
- . if !\nF==2 \{
- . nr % 0
- . nr F 2
- . \}
- . \}
- .\}
- .rr rF
- .\"
- .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
- .\" Fear. Run. Save yourself. No user-serviceable parts.
- . \" fudge factors for nroff and troff
- .if n \{\
- . ds #H 0
- . ds #V .8m
- . ds #F .3m
- . ds #[ \f1
- . ds #] \fP
- .\}
- .if t \{\
- . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
- . ds #V .6m
- . ds #F 0
- . ds #[ \&
- . ds #] \&
- .\}
- . \" simple accents for nroff and troff
- .if n \{\
- . ds ' \&
- . ds ` \&
- . ds ^ \&
- . ds , \&
- . ds ~ ~
- . ds /
- .\}
- .if t \{\
- . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
- . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
- . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
- . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
- . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
- . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
- .\}
- . \" troff and (daisy-wheel) nroff accents
- .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
- .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
- .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
- .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
- .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
- .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
- .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
- .ds ae a\h'-(\w'a'u*4/10)'e
- .ds Ae A\h'-(\w'A'u*4/10)'E
- . \" corrections for vroff
- .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
- .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
- . \" for low resolution devices (crt and lpr)
- .if \n(.H>23 .if \n(.V>19 \
- \{\
- . ds : e
- . ds 8 ss
- . ds o a
- . ds d- d\h'-1'\(ga
- . ds D- D\h'-1'\(hy
- . ds th \o'bp'
- . ds Th \o'LP'
- . ds ae ae
- . ds Ae AE
- .\}
- .rm #[ #] #H #V #F C
- .\" ========================================================================
- .\"
- .IX Title "MP3VAL 1"
- .TH MP3VAL 1 "2014-09-22" "0.1.8" "SlackBuilds.org"
- .\" For nroff, turn off justification. Always turn off hyphenation; it makes
- .\" way too many mistakes in technical documents.
- .if n .ad l
- .nh
- .SH "MP3val 0.1.8: Documentation"
- .IX Header "MP3val 0.1.8: Documentation"
- .IP "1. Introduction" 4
- .IX Item "1. Introduction"
- .PD 0
- .IP "2. Why to use it?" 4
- .IX Item "2. Why to use it?"
- .IP "3. How to use it?" 4
- .IX Item "3. How to use it?"
- .IP "4. Interpreting the output" 4
- .IX Item "4. Interpreting the output"
- .IP "5. Licensing and copyright" 4
- .IX Item "5. Licensing and copyright"
- .PD
- .SS "1. Introduction."
- .IX Subsection "1. Introduction."
- MP3val is a small, high-speed tool for \s-1MPEG\s0 audio files validation and
- (optionally) fixing problems. It was primarily designed for
- verification of \s-1MPEG 1\s0 Layer \s-1III \s0(\s-1MP3\s0) files, but supports also other
- \&\s-1MPEG\s0 versions and layers. It can be useful for finding corrupted files
- (e.g. incompletely downloaded).
- .PP
- MP3val supports:
- .IP "\(bu" 4
- \&\s-1MPEG\-1, 2, 2.5\s0; Layers I, \s-1II, III\s0
- .IP "\(bu" 4
- ID3v1 tags (must be at the very end of the file)
- .IP "\(bu" 4
- ID3v2 tags (must be at the very beginning of the file)
- .IP "\(bu" 4
- APEv2 tags
- .PP
- This program can be compiled both for Windows and major Unix systems.
- .PP
- This program is free software; you can redistribute it and/or modify it
- under the terms of the \s-1GNU\s0 General Public License as published by the
- Free Software Foundation; either version 2 of the License, or (at your
- option) any later version.
- .PP
- The latest version of MP3val (including sources) can be downloaded from
- the official home page.
- .SS "2. Why to use it?"
- .IX Subsection "2. Why to use it?"
- \&\s-1MPEG\s0 is a streamable format, that is, it is optimized for quick and
- easy recovery from errors. \s-1MP3\s0 decoders are very tolerant to
- inconsistencies in the input file. Most players even don't report to
- user about stream errors. So, as a rule, user doesn't know whether his
- files are valid or broken. But using broken files can eventually lead
- to problems during playback on certain software/hardware.
- .PP
- MP3val can assure you that your files are consistent in the terms of
- \&\s-1MPEG\s0 frames, that is, it ensures that the file can be easily split into
- the frames and doesn't contain garbage. It checks also some other
- issues, such as track length stored in the \s-1VBR\s0 header. Checking by
- MP3val isn't a full test for compliance with existing formal and
- informal standards. MP3val neither decodes audio data nor checks for
- data validity in the frame.
- .PP
- MP3val can also fix most of the problems. Be careful: although MP3val
- can repair even files with \s-1MPEG\s0 stream errors, it is recommended that
- you find a \*(L"good\*(R" copy of this file, because a \*(L"click\*(R" sound usually
- can't be removed, the repaired file will only look like good.
- .SS "3. How to use it?"
- .IX Subsection "3. How to use it?"
- MP3val is a console program. Command-line syntax:
- .PP
- .Vb 1
- \& mp3val <files to validate> <options>
- .Ve
- .PP
- \&\fI<files to validate>\fR \- \s-1MPEG\s0 audio file(s) name(s). Can
- contain wildcards.
- .PP
- \&\fIOptions\fR:
- .PP
- \&\fBOption\fR
- .PP
- \&\fBDescription\fR
- .PP
- \&\-l\fI<log file>\fR
- .PP
- Log file name. If this argument is missing, all the information will be
- written to stdout.
- .PP
- \&\-f
- .PP
- Try to fix errors.
- .PP
- \&\-si
- .PP
- Suppress \s-1INFO\s0 messages.
- .PP
- \&\-nb
- .PP
- Delete .bak files that were created during file rebuilding. Use this
- option together with \-f.
- .PP
- \&\-t
- .PP
- Keep file timestamps. Use this option together with \-f.
- .PP
- \&\-p
- .PP
- Pipe mode (receive input file names from stdin). Intended for
- interaction with frontends. \fI<files to validate>\fR is ignored
- in this case.
- .PP
- \&\-v
- .PP
- Print version and exit
- .PP
- Example:
- .PP
- .Vb 1
- \& mp3val my_song.mp3 \-lout.log \-f
- .Ve
- .PP
- MP3val will give information about the file with the name specified.
- Any errors or inconsistencies will result in a \*(L"\s-1WARNING\*(R"\s0 message. This
- doesn't necessarily mean that the file is corrupted. See the next
- section for details. If the file doesn't look like a \s-1MPEG\s0 audio file,
- an \fI\*(L"\s-1ERROR:\s0 invalid file format\*(R"\fR message will be generated.
- .SS "4. Interpreting the output."
- .IX Subsection "4. Interpreting the output."
- \&\fB\s-1WARNING\s0 message\fR
- .PP
- \&\fBFixable?\fR
- .PP
- \&\fBComments\fR
- .PP
- \&\fIToo few \s-1MPEG\s0 frames (it's unlikely that this is a \s-1MPEG\s0 audio file)\fR
- .PP
- \&\-
- .PP
- Probably this is not a \s-1MPEG\s0 audio file, but MP3val has detected a
- couple of \s-1MPEG\s0 frames in it. Most likely this is a false positive.
- .PP
- \&\fIGarbage at the beginning of the file\fR
- .PP
- +
- .PP
- There are some unknown data at the beginning of the file (before the
- first \s-1MPEG\s0 frame). It can be an unsupported tag with metadata, but in
- most cases it is only garbage. \*(L"Fixing\*(R" means here a removal of these
- data.
- .PP
- \&\fIGarbage at the end of the file\fR
- .PP
- +
- .PP
- Like previous.
- .PP
- \&\fI\s-1MPEG\s0 stream error, resynchronized successfully\fR
- .PP
- +
- .PP
- Normally, each \s-1MPEG\s0 frame must be followed by a next \s-1MPEG\s0 frame (or a
- metadata block), otherwise this message is generated. \s-1MPEG\s0 stream
- errors can be caused by garbage in the middle of the file (e.g. the
- file was split into several parts, the tags were appended, and then
- these parts were improperly merged) or by a data loss during transfer
- or storage. Note that \*(L"fixing\*(R" this error will remove garbage, but in
- most cases \*(L"fixed\*(R" file will not sound better, that's why it is
- strongly recommended to find a \*(L"good\*(R" copy of the file.
- .PP
- \&\fIThis is a \s-1RIFF\s0 file, not \s-1MPEG\s0 stream\fR
- .PP
- +
- .PP
- A common way for storing a \s-1MPEG\s0 audio file is simply to write \s-1MPEG\s0
- frames one-by-one. \s-1MP1/MP2/MP3\s0 files are organized so. \s-1MPEG\s0 audio data
- can also be encapsulated in the \s-1RIFF\s0 container (better known as \s-1WAV\s0
- file). The \s-1RIFF\s0 container shouldn't be used unless the file has \*(L"\s-1WAV\*(R"\s0
- extension.
- .PP
- \&\fIIt seems that file is truncated or there is garbage at the end of the
- file\fR
- .PP
- +
- .PP
- This message is generated when the length of the last frame (according
- to its header) is greater than the amount of data from its beginning to
- the end of the file. As a rule, it means that the file was truncated,
- however, there can be garbage at its end. \*(L"Fixing\*(R" means here a removal
- of the last frame.
- .PP
- \&\fIWrong number of \s-1MPEG\s0 frames specified in Xing header\fR
- .PP
- +
- .PP
- \&\s-1MPEG\s0 audio files don't have any special header, each frame has its own
- header instead. However, it can cause problems when \*(L"seeking\*(R" in
- variable bitrate files, because a decoder can't determine the exact
- place in the file corresponding to the selected time. That's why a \*(L"\s-1VBR\s0
- header\*(R" is sometimes included in the first \s-1MPEG\s0 frame. This message is
- generated if this header contains false information about the total
- number of \s-1MPEG\s0 frames.
- .PP
- \&\fIWrong number of \s-1MPEG\s0 data bytes specified in Xing header\fR
- .PP
- +
- .PP
- This message is generated when the Xing header contains false
- information about the total size of \s-1MPEG\s0 data in the file. See the
- previous message.
- .PP
- \&\fIWrong number of \s-1MPEG\s0 frames specified in \s-1VBRI\s0 header\fR
- .PP
- +
- .PP
- Like with Xing header. \s-1VBRI\s0 is the other way to store \s-1VBR\s0 information
- in the first \s-1MPEG\s0 frame, but it seems to be used much more rarely.
- .PP
- \&\fIWrong number of \s-1MPEG\s0 data bytes specified in \s-1VBRI\s0 header\fR
- .PP
- +
- .PP
- Like with Xing header. \s-1VBRI\s0 is the other way to store \s-1VBR\s0 information
- in the first \s-1MPEG\s0 frame, but it seems to be used much more rarely.
- .PP
- \&\fI\s-1VBR\s0 detected, but no \s-1VBR\s0 header is present. Seeking may not work
- properly\fR
- .PP
- \&\-
- .PP
- Files encoded with \s-1VBR\s0 should have a \s-1VBR\s0 header (either Xing or \s-1VBRI\s0),
- otherwise seeking can be broken. This will be fixable in the future
- versions.
- .PP
- \&\fIWrong \s-1CRC\s0 in ... frames\fR
- .PP
- +
- .PP
- Some frames in the file are protected by \s-1CRC,\s0 but the checksum is
- wrong. It means that either the file was encoded or processed by broken
- software, or it was broken during storage or transmission. MP3val
- reports a number of frames with incorrect \s-1CRC,\s0 which can be used as a
- hint (if this number equals or is about the total number of frames,
- then it's likely due to a bad encoder). Note that only a minority of
- files is protected by \s-1CRC.\s0
- .PP
- \&\fINon-layer-III frame encountered\fR
- .PP
- \&\-
- .PP
- MP3val was primarily designed for \s-1MP3\s0 files. That's why it warns about
- \&\s-1MPEG\s0 frames with layers other than \s-1III.\s0 If it is an \s-1MP2\s0 or \s-1MP1\s0 file,
- this warning should be ignored. If you want to fix this issue, you
- should reencode the file.
- .PP
- \&\fIDifferent \s-1MPEG\s0 versions or layers in one file\fR
- .PP
- \&\-
- .PP
- Mixing different \s-1MPEG\s0 versions and/or layers in one file is not very
- good. As in the previous case, this issue can be fixed only by
- reencoding.
- .PP
- \&\fISeveral APEv2 tags in one file\fR
- .PP
- +
- .PP
- Normally there would be only one APEv2 tag in the file.
- .PP
- \&\fINo supported tags in the file\fR
- .PP
- \&\-
- .PP
- This is only a warning. It's a good practice to store metadata in tags.
- .SS "5. Licensing and copyright"
- .IX Subsection "5. Licensing and copyright"
- Copyright (c) 2005\-2009 by Alexey Kuznetsov (ring0) and Eugen Tikhonov
- (jetsys).
- .PP
- This program is free software; you can redistribute it and/or modify it
- under the terms of the \s-1GNU\s0 General Public License as published by the
- Free Software Foundation; either version 2 of the License, or (at your
- option) any later version.
- .PP
- Contacts: mp3val at ring0 dot pp dot ru
|