mp3val.1 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421
  1. .\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
  2. .\"
  3. .\" Standard preamble:
  4. .\" ========================================================================
  5. .de Sp \" Vertical space (when we can't use .PP)
  6. .if t .sp .5v
  7. .if n .sp
  8. ..
  9. .de Vb \" Begin verbatim text
  10. .ft CW
  11. .nf
  12. .ne \\$1
  13. ..
  14. .de Ve \" End verbatim text
  15. .ft R
  16. .fi
  17. ..
  18. .\" Set up some character translations and predefined strings. \*(-- will
  19. .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
  20. .\" double quote, and \*(R" will give a right double quote. \*(C+ will
  21. .\" give a nicer C++. Capital omega is used to do unbreakable dashes and
  22. .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
  23. .\" nothing in troff, for use with C<>.
  24. .tr \(*W-
  25. .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
  26. .ie n \{\
  27. . ds -- \(*W-
  28. . ds PI pi
  29. . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
  30. . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
  31. . ds L" ""
  32. . ds R" ""
  33. . ds C` ""
  34. . ds C' ""
  35. 'br\}
  36. .el\{\
  37. . ds -- \|\(em\|
  38. . ds PI \(*p
  39. . ds L" ``
  40. . ds R" ''
  41. . ds C`
  42. . ds C'
  43. 'br\}
  44. .\"
  45. .\" Escape single quotes in literal strings from groff's Unicode transform.
  46. .ie \n(.g .ds Aq \(aq
  47. .el .ds Aq '
  48. .\"
  49. .\" If the F register is turned on, we'll generate index entries on stderr for
  50. .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
  51. .\" entries marked with X<> in POD. Of course, you'll have to process the
  52. .\" output yourself in some meaningful fashion.
  53. .\"
  54. .\" Avoid warning from groff about undefined register 'F'.
  55. .de IX
  56. ..
  57. .nr rF 0
  58. .if \n(.g .if rF .nr rF 1
  59. .if (\n(rF:(\n(.g==0)) \{
  60. . if \nF \{
  61. . de IX
  62. . tm Index:\\$1\t\\n%\t"\\$2"
  63. ..
  64. . if !\nF==2 \{
  65. . nr % 0
  66. . nr F 2
  67. . \}
  68. . \}
  69. .\}
  70. .rr rF
  71. .\"
  72. .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  73. .\" Fear. Run. Save yourself. No user-serviceable parts.
  74. . \" fudge factors for nroff and troff
  75. .if n \{\
  76. . ds #H 0
  77. . ds #V .8m
  78. . ds #F .3m
  79. . ds #[ \f1
  80. . ds #] \fP
  81. .\}
  82. .if t \{\
  83. . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
  84. . ds #V .6m
  85. . ds #F 0
  86. . ds #[ \&
  87. . ds #] \&
  88. .\}
  89. . \" simple accents for nroff and troff
  90. .if n \{\
  91. . ds ' \&
  92. . ds ` \&
  93. . ds ^ \&
  94. . ds , \&
  95. . ds ~ ~
  96. . ds /
  97. .\}
  98. .if t \{\
  99. . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
  100. . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
  101. . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
  102. . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
  103. . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
  104. . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
  105. .\}
  106. . \" troff and (daisy-wheel) nroff accents
  107. .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
  108. .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
  109. .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
  110. .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
  111. .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
  112. .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
  113. .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
  114. .ds ae a\h'-(\w'a'u*4/10)'e
  115. .ds Ae A\h'-(\w'A'u*4/10)'E
  116. . \" corrections for vroff
  117. .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
  118. .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
  119. . \" for low resolution devices (crt and lpr)
  120. .if \n(.H>23 .if \n(.V>19 \
  121. \{\
  122. . ds : e
  123. . ds 8 ss
  124. . ds o a
  125. . ds d- d\h'-1'\(ga
  126. . ds D- D\h'-1'\(hy
  127. . ds th \o'bp'
  128. . ds Th \o'LP'
  129. . ds ae ae
  130. . ds Ae AE
  131. .\}
  132. .rm #[ #] #H #V #F C
  133. .\" ========================================================================
  134. .\"
  135. .IX Title "MP3VAL 1"
  136. .TH MP3VAL 1 "2014-09-22" "0.1.8" "SlackBuilds.org"
  137. .\" For nroff, turn off justification. Always turn off hyphenation; it makes
  138. .\" way too many mistakes in technical documents.
  139. .if n .ad l
  140. .nh
  141. .SH "MP3val 0.1.8: Documentation"
  142. .IX Header "MP3val 0.1.8: Documentation"
  143. .IP "1. Introduction" 4
  144. .IX Item "1. Introduction"
  145. .PD 0
  146. .IP "2. Why to use it?" 4
  147. .IX Item "2. Why to use it?"
  148. .IP "3. How to use it?" 4
  149. .IX Item "3. How to use it?"
  150. .IP "4. Interpreting the output" 4
  151. .IX Item "4. Interpreting the output"
  152. .IP "5. Licensing and copyright" 4
  153. .IX Item "5. Licensing and copyright"
  154. .PD
  155. .SS "1. Introduction."
  156. .IX Subsection "1. Introduction."
  157. MP3val is a small, high-speed tool for \s-1MPEG\s0 audio files validation and
  158. (optionally) fixing problems. It was primarily designed for
  159. verification of \s-1MPEG 1\s0 Layer \s-1III \s0(\s-1MP3\s0) files, but supports also other
  160. \&\s-1MPEG\s0 versions and layers. It can be useful for finding corrupted files
  161. (e.g. incompletely downloaded).
  162. .PP
  163. MP3val supports:
  164. .IP "\(bu" 4
  165. \&\s-1MPEG\-1, 2, 2.5\s0; Layers I, \s-1II, III\s0
  166. .IP "\(bu" 4
  167. ID3v1 tags (must be at the very end of the file)
  168. .IP "\(bu" 4
  169. ID3v2 tags (must be at the very beginning of the file)
  170. .IP "\(bu" 4
  171. APEv2 tags
  172. .PP
  173. This program can be compiled both for Windows and major Unix systems.
  174. .PP
  175. This program is free software; you can redistribute it and/or modify it
  176. under the terms of the \s-1GNU\s0 General Public License as published by the
  177. Free Software Foundation; either version 2 of the License, or (at your
  178. option) any later version.
  179. .PP
  180. The latest version of MP3val (including sources) can be downloaded from
  181. the official home page.
  182. .SS "2. Why to use it?"
  183. .IX Subsection "2. Why to use it?"
  184. \&\s-1MPEG\s0 is a streamable format, that is, it is optimized for quick and
  185. easy recovery from errors. \s-1MP3\s0 decoders are very tolerant to
  186. inconsistencies in the input file. Most players even don't report to
  187. user about stream errors. So, as a rule, user doesn't know whether his
  188. files are valid or broken. But using broken files can eventually lead
  189. to problems during playback on certain software/hardware.
  190. .PP
  191. MP3val can assure you that your files are consistent in the terms of
  192. \&\s-1MPEG\s0 frames, that is, it ensures that the file can be easily split into
  193. the frames and doesn't contain garbage. It checks also some other
  194. issues, such as track length stored in the \s-1VBR\s0 header. Checking by
  195. MP3val isn't a full test for compliance with existing formal and
  196. informal standards. MP3val neither decodes audio data nor checks for
  197. data validity in the frame.
  198. .PP
  199. MP3val can also fix most of the problems. Be careful: although MP3val
  200. can repair even files with \s-1MPEG\s0 stream errors, it is recommended that
  201. you find a \*(L"good\*(R" copy of this file, because a \*(L"click\*(R" sound usually
  202. can't be removed, the repaired file will only look like good.
  203. .SS "3. How to use it?"
  204. .IX Subsection "3. How to use it?"
  205. MP3val is a console program. Command-line syntax:
  206. .PP
  207. .Vb 1
  208. \& mp3val <files to validate> <options>
  209. .Ve
  210. .PP
  211. \&\fI<files to validate>\fR \- \s-1MPEG\s0 audio file(s) name(s). Can
  212. contain wildcards.
  213. .PP
  214. \&\fIOptions\fR:
  215. .PP
  216. \&\fBOption\fR
  217. .PP
  218. \&\fBDescription\fR
  219. .PP
  220. \&\-l\fI<log file>\fR
  221. .PP
  222. Log file name. If this argument is missing, all the information will be
  223. written to stdout.
  224. .PP
  225. \&\-f
  226. .PP
  227. Try to fix errors.
  228. .PP
  229. \&\-si
  230. .PP
  231. Suppress \s-1INFO\s0 messages.
  232. .PP
  233. \&\-nb
  234. .PP
  235. Delete .bak files that were created during file rebuilding. Use this
  236. option together with \-f.
  237. .PP
  238. \&\-t
  239. .PP
  240. Keep file timestamps. Use this option together with \-f.
  241. .PP
  242. \&\-p
  243. .PP
  244. Pipe mode (receive input file names from stdin). Intended for
  245. interaction with frontends. \fI<files to validate>\fR is ignored
  246. in this case.
  247. .PP
  248. \&\-v
  249. .PP
  250. Print version and exit
  251. .PP
  252. Example:
  253. .PP
  254. .Vb 1
  255. \& mp3val my_song.mp3 \-lout.log \-f
  256. .Ve
  257. .PP
  258. MP3val will give information about the file with the name specified.
  259. Any errors or inconsistencies will result in a \*(L"\s-1WARNING\*(R"\s0 message. This
  260. doesn't necessarily mean that the file is corrupted. See the next
  261. section for details. If the file doesn't look like a \s-1MPEG\s0 audio file,
  262. an \fI\*(L"\s-1ERROR:\s0 invalid file format\*(R"\fR message will be generated.
  263. .SS "4. Interpreting the output."
  264. .IX Subsection "4. Interpreting the output."
  265. \&\fB\s-1WARNING\s0 message\fR
  266. .PP
  267. \&\fBFixable?\fR
  268. .PP
  269. \&\fBComments\fR
  270. .PP
  271. \&\fIToo few \s-1MPEG\s0 frames (it's unlikely that this is a \s-1MPEG\s0 audio file)\fR
  272. .PP
  273. \&\-
  274. .PP
  275. Probably this is not a \s-1MPEG\s0 audio file, but MP3val has detected a
  276. couple of \s-1MPEG\s0 frames in it. Most likely this is a false positive.
  277. .PP
  278. \&\fIGarbage at the beginning of the file\fR
  279. .PP
  280. +
  281. .PP
  282. There are some unknown data at the beginning of the file (before the
  283. first \s-1MPEG\s0 frame). It can be an unsupported tag with metadata, but in
  284. most cases it is only garbage. \*(L"Fixing\*(R" means here a removal of these
  285. data.
  286. .PP
  287. \&\fIGarbage at the end of the file\fR
  288. .PP
  289. +
  290. .PP
  291. Like previous.
  292. .PP
  293. \&\fI\s-1MPEG\s0 stream error, resynchronized successfully\fR
  294. .PP
  295. +
  296. .PP
  297. Normally, each \s-1MPEG\s0 frame must be followed by a next \s-1MPEG\s0 frame (or a
  298. metadata block), otherwise this message is generated. \s-1MPEG\s0 stream
  299. errors can be caused by garbage in the middle of the file (e.g. the
  300. file was split into several parts, the tags were appended, and then
  301. these parts were improperly merged) or by a data loss during transfer
  302. or storage. Note that \*(L"fixing\*(R" this error will remove garbage, but in
  303. most cases \*(L"fixed\*(R" file will not sound better, that's why it is
  304. strongly recommended to find a \*(L"good\*(R" copy of the file.
  305. .PP
  306. \&\fIThis is a \s-1RIFF\s0 file, not \s-1MPEG\s0 stream\fR
  307. .PP
  308. +
  309. .PP
  310. A common way for storing a \s-1MPEG\s0 audio file is simply to write \s-1MPEG\s0
  311. frames one-by-one. \s-1MP1/MP2/MP3\s0 files are organized so. \s-1MPEG\s0 audio data
  312. can also be encapsulated in the \s-1RIFF\s0 container (better known as \s-1WAV\s0
  313. file). The \s-1RIFF\s0 container shouldn't be used unless the file has \*(L"\s-1WAV\*(R"\s0
  314. extension.
  315. .PP
  316. \&\fIIt seems that file is truncated or there is garbage at the end of the
  317. file\fR
  318. .PP
  319. +
  320. .PP
  321. This message is generated when the length of the last frame (according
  322. to its header) is greater than the amount of data from its beginning to
  323. the end of the file. As a rule, it means that the file was truncated,
  324. however, there can be garbage at its end. \*(L"Fixing\*(R" means here a removal
  325. of the last frame.
  326. .PP
  327. \&\fIWrong number of \s-1MPEG\s0 frames specified in Xing header\fR
  328. .PP
  329. +
  330. .PP
  331. \&\s-1MPEG\s0 audio files don't have any special header, each frame has its own
  332. header instead. However, it can cause problems when \*(L"seeking\*(R" in
  333. variable bitrate files, because a decoder can't determine the exact
  334. place in the file corresponding to the selected time. That's why a \*(L"\s-1VBR\s0
  335. header\*(R" is sometimes included in the first \s-1MPEG\s0 frame. This message is
  336. generated if this header contains false information about the total
  337. number of \s-1MPEG\s0 frames.
  338. .PP
  339. \&\fIWrong number of \s-1MPEG\s0 data bytes specified in Xing header\fR
  340. .PP
  341. +
  342. .PP
  343. This message is generated when the Xing header contains false
  344. information about the total size of \s-1MPEG\s0 data in the file. See the
  345. previous message.
  346. .PP
  347. \&\fIWrong number of \s-1MPEG\s0 frames specified in \s-1VBRI\s0 header\fR
  348. .PP
  349. +
  350. .PP
  351. Like with Xing header. \s-1VBRI\s0 is the other way to store \s-1VBR\s0 information
  352. in the first \s-1MPEG\s0 frame, but it seems to be used much more rarely.
  353. .PP
  354. \&\fIWrong number of \s-1MPEG\s0 data bytes specified in \s-1VBRI\s0 header\fR
  355. .PP
  356. +
  357. .PP
  358. Like with Xing header. \s-1VBRI\s0 is the other way to store \s-1VBR\s0 information
  359. in the first \s-1MPEG\s0 frame, but it seems to be used much more rarely.
  360. .PP
  361. \&\fI\s-1VBR\s0 detected, but no \s-1VBR\s0 header is present. Seeking may not work
  362. properly\fR
  363. .PP
  364. \&\-
  365. .PP
  366. Files encoded with \s-1VBR\s0 should have a \s-1VBR\s0 header (either Xing or \s-1VBRI\s0),
  367. otherwise seeking can be broken. This will be fixable in the future
  368. versions.
  369. .PP
  370. \&\fIWrong \s-1CRC\s0 in ... frames\fR
  371. .PP
  372. +
  373. .PP
  374. Some frames in the file are protected by \s-1CRC,\s0 but the checksum is
  375. wrong. It means that either the file was encoded or processed by broken
  376. software, or it was broken during storage or transmission. MP3val
  377. reports a number of frames with incorrect \s-1CRC,\s0 which can be used as a
  378. hint (if this number equals or is about the total number of frames,
  379. then it's likely due to a bad encoder). Note that only a minority of
  380. files is protected by \s-1CRC.\s0
  381. .PP
  382. \&\fINon-layer-III frame encountered\fR
  383. .PP
  384. \&\-
  385. .PP
  386. MP3val was primarily designed for \s-1MP3\s0 files. That's why it warns about
  387. \&\s-1MPEG\s0 frames with layers other than \s-1III.\s0 If it is an \s-1MP2\s0 or \s-1MP1\s0 file,
  388. this warning should be ignored. If you want to fix this issue, you
  389. should reencode the file.
  390. .PP
  391. \&\fIDifferent \s-1MPEG\s0 versions or layers in one file\fR
  392. .PP
  393. \&\-
  394. .PP
  395. Mixing different \s-1MPEG\s0 versions and/or layers in one file is not very
  396. good. As in the previous case, this issue can be fixed only by
  397. reencoding.
  398. .PP
  399. \&\fISeveral APEv2 tags in one file\fR
  400. .PP
  401. +
  402. .PP
  403. Normally there would be only one APEv2 tag in the file.
  404. .PP
  405. \&\fINo supported tags in the file\fR
  406. .PP
  407. \&\-
  408. .PP
  409. This is only a warning. It's a good practice to store metadata in tags.
  410. .SS "5. Licensing and copyright"
  411. .IX Subsection "5. Licensing and copyright"
  412. Copyright (c) 2005\-2009 by Alexey Kuznetsov (ring0) and Eugen Tikhonov
  413. (jetsys).
  414. .PP
  415. This program is free software; you can redistribute it and/or modify it
  416. under the terms of the \s-1GNU\s0 General Public License as published by the
  417. Free Software Foundation; either version 2 of the License, or (at your
  418. option) any later version.
  419. .PP
  420. Contacts: mp3val at ring0 dot pp dot ru