---
name: "qmp3cut"
section: "1"
platform: "linux"
package: "quelcom"
version: "0.4.0-16"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/qmp3cut"
---

# qmp3cut(1)

extract and/or delete parts of a mp3 file

## NAME

qmp3cut - extract and/or delete parts of a mp3 file

## SYNOPSIS

**qmp3cut** \[*option*\]... *file*

## DESCRIPTION

**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)

## GENERAL OPTIONS

- **-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**

  verbose.

- **-V**, **--version**

  show version and exit.

## CUT OPTIONS

cut 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.

## FORMATS

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:

- **j**

  value is interpreted as milliseconds.

- **m**

  value is interpreted as minutes.

- **s**

  value is interpreted as seconds.

- **b**

  value is interpreted as bytes.

- **k**

  value is interpreted as kbytes (1024 bytes).

- **M**

  value is interpreted as megabytes (1024 kbytes).

in either case, the values specified will be rounded to get an integer number of frames.

## EXAMPLES

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**

## NOTES

if neither the options **--output** nor **--delete** are specified, the program will do nothing.

## BUGS

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.

## AUTHOR

dmanye@etse.urv.es\
 http://www.etse.urv.es/~dmanye/quelcom/quelcom.html

## SEE ALSO

[**qmp3info**(1)](/qmp3info/1.md), [**qmp3join**(1)](/qmp3join/1.md), [**qmp3check**(1)](/qmp3check/1.md), [**qmp3report**(1)](/qmp3report/1.md)\
 [**qwavinfo**(1)](/qwavinfo/1.md), [**qwavjoin**(1)](/qwavjoin/1.md), [**qwavcut**(1)](/qwavcut/1.md), [**qwavsilence**(1)](/qwavsilence/1.md), [**qwavfade**(1)](/qwavfade/1.md), [**qwavheaderdump**(1)](/qwavheaderdump/1.md)
