SYNOPSISqmp3cut [option]... file
qmp3cut allows to extract and/or delete a fragment of a mp3 file. some parameters must be supplied in order to define the start/size/end cut points and what to do then: either the fragment must be copied to another file or erased from the file (or both)
- -d, --delete
- deletes the fragment from the file. if option --output is used, deletion action is always done after fragment extraction.
- -h, --help
- show a brief help and exit.
- -o <outfile>, --output=<outfile>
- outfile is the file where the frames contained in the specified fragment will be copied.
- -v, --verbose
- -V, --version
show version and exit.
CUT OPTIONScut options are used to specify at which frame the fragment begins (options -b or -B), ends (options -e and -E), or which size it has (option -s). at least, one cut option must be specified. neither the options -b and -B, and the options -e and -E can be used together; also, a begin, end and size option can be used at the same time.
by default, the fragment begins at the first frame and ends at the last frame; there's no default value for size.
all the values are treated as a frame number unless a format specifier is used. see the FORMATS section below for information. values must be positive integer.
- -b <begin>[<format>], --set-begin-from-eof=<begin>[<format>]
- begin specifies the first frame of the file that belongs to the cut counting from the end of the file.
- -B <begin>[<format>], --set-begin=<begin>[<format>]
- begin specifies the first frame of the file that belongs to the cut counting from the beginning of the file.
- -e <end>[<format>], --set-end-from-eof=<end>[<format>]
- end specifies the last frame of the file that belongs to the cut counting from the end of the file.
- -E <end>[<format>], --set-end=<end>[<format>]
- end specifies the last frame of the file that belongs to the cut counting from the beginning of the file.
- -s <size>[<format>], --set-size=<size>[<format>]
- size specifies the number of frames contained in the cut.
- -S <begin>-<end>, --slice <begin>-<end>
slice specifies the starting and ending points of the cut as a timeslice, which is to say, two time specifications ([[h:]m:]s[.ms]) joined by a hyphen.
cut options can have also an optional modifier. if this modifier is not used, then the value provided with the corresponding cut option will be interpreted as a number of frames. since most of the times will be difficult to specify a cut in terms of frames, the following modifiers are provided:
- value is interpreted as milliseconds.
- value is interpreted as minutes.
- value is interpreted as seconds.
- value is interpreted as bytes.
- value is interpreted as kbytes (1024 bytes).
- value is interpreted as megabytes (1024 kbytes).
in either case, the values specified will be rounded to get an integer number of frames.
here are some examples:
- to get the last ten seconds of a file:
- qmp3cut -b 10s -o outfile.mp3 infile.mp3
- two ways of getting the first minute of a file:
qmp3cut -E 1m -o outfile.mp3 infile.mp3
qmp3cut -s 1m -o outfile.mp3 infile.mp3
- three ways of getting the second quarter of a file:
qmp3cut -S 15:0-30:0 -o outfile.mp3 infile.mp3
qmp3cut -B 15m -E 30m -o outfile.mp3 infile.mp3
qmp3cut -s 15m -E 30m -o outfile.mp3 infile.mp3
qmp3cut -B 15m -s 15m -o outfile.mp3 infile.mp3
if neither the options --output nor --delete are specified, the program will do nothing.
usually, the mpg123 player (and any other app mp3-read capable) report messages in the way like "cannot rewind by XXX bytes" where XXX is a negative value on streams extracted with qmp3cut. this is due to frame dependency (frame decoding depends sometimes of neighbourhood frames when bit reservoir technique is used at encoding time) and possibly will be corrected in a (near?) future.
there's no support for variable bit rate (vbr) files.
tests have been done only with mpeg version 1 layer iii streams, though it may (or not) work with other versions/layers.