Man Linux: Main Page and Category List

NAME

       mp3splt — Utility for mp3/ogg splitting without decoding

SYNOPSIS

       mp3splt [OPTIONS] FILE1 [FILE2] ... [BEGIN_TIME] [TIME2] ... [END_TIME]

       FILE: mp3 or ogg file to be split. If you  want  to  specify  STDIN  as
       input,  you can use "m-" (or "-") when input is mp3, and "o-" when ogg.
       Multiple files can be specified, all files will be split with the  same
       criterion.

       TIME FORMAT: begin_time and end_time must be in this form:

       minutes.seconds[.hundredths]

              Minutes  (required): There is no limit to minutes. (You must use
              this format also for minutes over 59)

              Seconds (required): Must be between 0 and 59.

              Hundredths  (optional): Must be between 0 and 99. Use  them  for
              higher precision.

       Multiple  split  points  can be specified. After the minimal 2, another
       indefinite number of split points can be specified.  Each  split  point
       will  be  an  end time for the previous, and a begin for the following.
       If you want to reach the end  of  file,  you  can  use  "EOF"  as  last
       splitpoint.

DESCRIPTION

       mp3splt is a free command-line utility that allows you to split mp3 and
       ogg files from  several  splitpoints,  without  need  of  decoding  and
       reencoding.   It is useful to split large mp3/ogg to make smaller files
       or to split entire albums to obtain original tracks.

       If you are splitting an album you can  get  splitpoints  and  filenames
       automatically  from  servers on internet like freedb.org, tracktype.org
       or from a local .XMCD (.CDDB) or .CUE file (see -c  option),  with  the
       possibility to adjust them automatically with silence detection (see -a
       option).

       You can also try to split files automatically  with  silence  detection
       (see -s option), or by a fixed time length (see -t option)

       Or if you have a file created either with Mp3Wrap or AlbumWrap, you can
       easily split it just with one command (see -w option).

       NOTE for MP3: usually mp3splt understands if mp3 is VBR by checking the
       presence  of  a  Xing  or  Info  header  and will consequently start in
       framemode, but if this is not present, mp3splt will start  in  standard
       mode.   This  means that splitting process will be quicker, but will be
       imprecise due to variable bitrate, you can split those VBR  files  only
       with framemode (see -f option).

       NOTE  about TAGS: by default, mp3splt will put the original tags in the
       split files. Custom tags for the split files can be  set  with  the  -g
       option.

       NOTE  about  MP3  TAGS:  in order to extract the original tags from mp3
       files, libmp3splt must be compiled with ’id3tag’ support.  By  default,
       the  output files will have the same ID3 tag version as the input file.
       However, ID3V1 output can be forced with the -1 option and  ID3V2  with
       the -2 option.

       NOTE about the OUTPUT DIRECTORY: by default, mp3splt will put the split
       files in the directory of the input file. In order to change the output
       directory, you can use one of the following options : -d or -o.  Please
       note that directories from the -o option will be  created  relative  to
       the input file directory.

OPTIONS

       -w        Wrap Mode. Use to split file created with:

                 Mp3Wrap (http://mp3wrap.sourceforge.net): This tool joins two
                 or more mp3 files in one large  playable  file  that  usually
                 contains the string MP3WRAP in filename and a special comment
                 in ID3v2. If the file you are splitting is a Mp3Wrap file the
                 splitting  process  will be very fast and you will obtain all
                 files just with  one  command.   If  your  filename  contains
                 MP3WRAP  and  you  have  errors or you don’t want to use wrap
                 mode, just remove it from the file.

                 AlbumWrap: mp3splt is compatible also with  albumwrap  files,
                 which  usually  contain the string ALBW in filename and ID3v2
                 contains AlbumWrap.  But,  as  AlbumWrap  extractor,  mp3splt
                 doesn’t give any warranty.

       -l        List  mode (Only for Wrap mode).  Lists all tracks wrapped in
                 a Mp3Wrap or AlbumWrap archive without any  extraction.   Use
                 this  to view the content of the file or to test if file is a
                 valid wrapped file.

       -e        Error mode (mp3 only).  It is  useful  to  split  large  file
                 derivated  from  a concatenation of smaller files. It detects
                 split points from the so  called  "sync  errors"  (data  that
                 break  stream,  such  as  ID3  or  junk  data).   Examples of
                 applicable  files  are  wrapped  file  (both  AlbumWrap   and
                 Mp3Wrap)   or  file  created  by  appending  many  mp3  files
                 together.  So, when you have a  file  to  split,  you  should
                 always try to use this option.

       -t TIME   Time  mode.   This option will create an indefinite number of
                 smaller files with a fixed  time  length  specified  by  TIME
                 (which  has the same format described above). It is useful to
                 split long files into smaller  (for  example  with  the  time
                 length  of  a  CD).  Adjust option (-a) can be used to adjust
                 splitpoints with silence detection.

       -s        Silence mode, to split with silence detection. When  you  use
                 -s  option,  mp3splt attempts to detect silence points in all
                 the file (or just in some parts, see  -a  and  -c  below  for
                 this).  To  detect  silence  we need to decode files, so this
                 option can be really slow if used with big files.  It accepts
                 some  parameters  with  -p  option  (see below for a detailed
                 description): threshold level (th) which is the  sound  level
                 to  be considered silence, number of tracks (nt) which is the
                 desired number of tracks, cutpoint offset (off) which is  the
                 offset  of cutpoint in silence, minimum_length (min) which is
                 the minimum silence length in seconds,  remove  silence  (rm)
                 which  allows you to remove the silence between split tracks.
                 If you don’t specify any  parameter,  mp3splt  will  use  the
                 default values. Of course if you specify the number of tracks
                 to split, you will help mp3splt to understand  what  are  the
                 most  probable split points, anyway once you scan a file with
                 -s option, mp3splt will write a file named  "mp3splt.log"  in
                 which  it  saves all silence points found. This allows you to
                 run mp3splt with different parameters  (except  th  and  min)
                 without  decoding  the  file again. Finally, if the number of
                 silence points is not  correct,  you  have  many  chances  to
                 achieve  right result. For example if a silence point was not
                 detected because too short, you can manually split  the  long
                 track  in  the  two  smaller ones.  Or if file is an MP3 (not
                 with ogg) and there are too many silence points that can’t be
                 discarded  reducing  track  number  (because  are longer than
                 right points) you can  safely  concatenate  them  with  ’cat’
                 programs  or  similar (’copy /b file1+file2’ for dos) because
                 split files are consecutive, no data is lost and  no  ID3  is
                 written  for  this purpose.  This option is intended to split
                 small/medium size (but even large if you can wait ;)  mp3 and
                 ogg  files where tracks are separated by a reasonable silence
                 time. To try to split mixed albums or files with  consecutive
                 tracks  (such  as live performances) might be only a waste of
                 time.

                 Note about "mp3splt.log" :

                   The first line contains the name of the split file
                   The second line contains  the  threshold  and  the  minimum
                 silence length
                   The next lines contain each one three columns :
                       ‐the  first  column  is the start position of the found
                 silence (in seconds.fractions)
                       ‐the second column is the end  position  of  the  found
                 silence (in seconds.fractions)
                       ‐the  third  column  is  the  length  of the silence in
                 hundreths of seconds
                           (second_column * 100 - first_column * 100)

       -c SOURCE CDDB mode. To get  splitpoints  and  filenames  automatically
                 from  SOURCE, that is the name of a ".CUE" file (note that it
                 must  end  with  ".cue",  otherwise  it   will   be   wrongly
                 interpreted  as a cddb file) or a local .XMCD (.CDDB) file on
                 your hard disk.

                 If you want to get informations from  Internet,  SOURCE  must
                 have one of the following formats :

                     query
                     query{album}
                     query{album}(ALBUM_RESULT_NUMBER)
                     query[search=protocol://SITE:PORT,
                              get=protocol://SITE:PORT]
                     query[search...]{album}
                     query[search...]{album}(ALBUM_RESULT_NUMBER)

                 If  a  string  is  specified  between  ’{’  and ’}’, then the
                 internet search is made on this string and the user will  not
                 be  requested  to  interactively  input a search string.  The
                 number between ’(’ and ’)’ is for auto-selecting  the  result
                 number  ALBUM_RESULT_NUMBER;  thus,  the  user  will  not  be
                 requested to interactively input a result number.

                 The other parameters between ’[’ and ’]’ are used to  specify
                 the  protocols  and  the  sites.  If those parameters are not
                 specified, default values will  be  chosen,  which  are  good
                 enough  in  most cases.  Inside the square brackets, ’search’
                 defines the CDDB search protocol and site (for searching  the
                 disc  ID  from  the  album and title); ’get’ defines the CDDB
                 download protocol and site (for  downloading  the  CDDB  file
                 from  the disc ID). Valid ’search’ protocols are : ’cddb_cgi’
                 and ’cddb_protocol’.  Valid ’get’ protocols are : ’cddb_cgi’.

                 Examples :

                   query[search=cddb_cgi://tracktype.org/~cddb/cddb.cgi:80,
                         get=cddb_cgi://tracktype.org/~cddb/cddb.cgi:80]
                   query[get=cddb_protocol://freedb.org:8880]
                   query[get=cddb_cgi://freedb.org/~cddb/cddb.cgi:80]

                 Mp3splt  will  connect  to  the  server and start to find the
                 requested informations. If the right  album  is  found,  then
                 mp3splt  will  query the server to get the selected album and
                 (if no problem occurs) will write a file  named  "query.cddb"
                 from which will get splitpoints and filenames.

                 IMPORTANT  NOTE  FOR CDDB: File split with this option can be
                 not very precise due to:

                 1) Who extracts CD tracks may use  "Remove  silence"  option.
                 This means that the large file is shorter than CD Total time.
                 Never use this option.
                 2) Who burns CD may add extra pause seconds  between  tracks.
                 Never do it.
                 3)  Encoders  may  add  some  padding  frames so that file is
                 longer than CD.
                 4) There are several entries of  the  same  cd  on  CDDB.  In
                 mp3splt they appears with "\=>" symbol.  Try some of them and
                 find the best for yours; usually you  can  find  the  correct
                 splitpoints, so good luck!

                 YOU CAN USE -a OPTION TO ADJUST SPLITPOINTS!

       -a        Auto-adjust  mode.   This  option  uses  silence detection to
                 auto-adjust splitpoints. It can be used in standard mode,  or
                 with  -t  and -c option (of course if there is silence in the
                 file ;).  It accepts some  parameters  with  -p  option  (see
                 below for a detailed description): threshold level (th) which
                 is the sound level to be considered silence, cutpoint  offset
                 (off)  which  is the offset of cutpoint in silence, gap (gap)
                 which is the  gap  value  around  splitpoint  to  search  for
                 silence.   If  you  don’t specify any parameter, mp3splt will
                 use the default values.  With -a option splitting process  is
                 the  same,  but  for each splitpoint mp3splt will decode some
                 time (gap) before and some after to find silence  and  adjust
                 splitpoints.

       -p PARAMETERS
                 Parameters  for -a and -s option. When using -a and -s option
                 some users parameters can be specified in  the  argument  and
                 must be in the form:

                 <name1=value,name2=value,..>

                 You  can specify an indefinite number of them, with no spaces
                 and separated by comma. Available parameters are:

       Both -s and -a

       th=FLOAT  Threshold level (dB) to be considered silence. It is a  float
                 number between -96 and 0. Default is -48 dB, which is a value
                 found by tests and should be good in most cases.

       off=FLOAT Float number between -2 and 2 and allows you  to  adjust  the
                 offset  of  cutpoint  in  silence  time.  0  is  the begin of
                 silence, and 1 the end. Default is 0.8.  In most  cases,  you
                 will only need to use a value between 0 and 1.

                 Offset visualization :

                                                v off=0    v off=1
                  ++++   ...  ++++++++++++++++++++++----------++++++++++   ...
                 +++++
                                            ^off=-0.5          ^off=1.5
                                       ^off=-1                      ^off=2
                                  ^off=-1.5
                           ^off=-2

                 Legend : pluses are ’audio’,  minuses  ’silence’,  ’v’  down-
                 arrow,  ’^’  up-arrow  and  ’...’ a segment of the audio file
                 (silence or audio)

       Only -s

       nt=INTEGER
                 Positive integer number of tracks to be split when  using  -s
                 option. By default all tracks are split.

       min=FLOAT Positive  float  of  the  minimum  number  of  seconds  to be
                 considered a valid splitpoint. All silences shorter than  min
                 are discarded. Default is 0.

       rm        Does  not  require an additional number and it used to remove
                 silence when using -s option.

       Only -a

       gap=INTEGER
                 Positive integer for the time  to  decode  before  and  after
                 splitpoint,  increase if splitpoints are completely wrong, or
                 decrease if wrong for only few seconds. Of course the smaller
                 the  gap,  the faster the process.  Default gap is 30 seconds
                 (so for each song, total decode time is one minute).

       -f        Frame mode (mp3 only).  Process  all  frames,  seeking  split
                 positions  by  counting frames and not with bitrate guessing.
                 In this mode you have higher  precision  and  you  can  split
                 variable  bitrate  (VBR)  mp3.   (You  can also split costant
                 bitrate mp3, but it will take  more  time).  Note  also  that
                 "high" precision means that time seeking is reliable, but may
                 not coincide for example with  another  player  program  that
                 uses time seeking with bitrate guessing, so make your choice.
                 Frame mode will print extra info on split  process,  such  as
                 sync  errors.   If  you  obtain some sync errors, try also to
                 split with -e option.

       -k        Input not seekable. Consider input not seekable (default when
                 using  STDIN as input).  This allows you to split mp3 and ogg
                 streams which can be read only one time and can’t be  seeked.
                 Both framemode and standard mode are available, but framemode
                 can be really slow if used with big files,  because  to  seek
                 splitpoints  we  need to process all bytes and all frames. -k
                 option (so STDIN as input too) can’t be used together with -s
                 -a -w -e, because input must be seekable for those options.

       -O TIME   Overlap   split  files.  TIME  will  be  added  to  each  end
                 splitpoint.  Current implementation of this option makes  the
                 split slower.

       -o FORMAT Output format. FORMAT is a string that will be used as output
                 directory and/or filename. If  FORMAT  contains  the  DIRCHAR
                 character   (’\’  on  windows  and  ’/’  on  other  systems),
                 directories will be created for each DIRCHAR  if  they  don’t
                 exist   and   the   output  files  will  be  created  in  the
                 corresponding directory. If the -d option is  not  specified,
                 the  output  directory is the concatenation of the input file
                 directory and the extracted  path  from  FORMAT.  If  the  -d
                 option  is  also  specified, the output directory will be the
                 concatenation between the -d option value and  the  extracted
                 path  from the -o FORMAT (characters up to the last DIRCHAR).
                 Invalid filename characters from the tags are transformed  to
                 ’_’.

                 It  can  contain  name variables, that must begin with @ char
                 and that can be:

                 @a: artist name
                 @p: performer of each song (only with .cue)
                 @b: album title
                 @t: song title*
                 @n:  track  number  identifier*  (not  the  real  ID3   track
                 number)**
                 @N: track tag number**
                 @f: input filename (without extension)
                 @m,  @s or @h: the number of minutes, seconds or hundreths of
                 seconds of the start splitpoint**
                 @M, @S or @H: the number of minutes, seconds or hundreths  of
                 seconds of the end splitpoint**

                 (**) a digit may follow for the number of digits to output

                 When  split  files are more than one, at least one between @t
                 and @n (*) must be present to avoid ambiguous names.  You can
                 put  any  prefix,  separator,  suffix in the string, for more
                 elegance.  To make easy the use  spaces  in  output  filename
                 without  interfering  with  line  parameters, you can use the
                 char ’+’ that will be automatically replaced  with  a  space.
                 Valid examples are:

                 @n_@a_@b_@t
                 @a+-+@n+-+@t (default if using -c and -o is not specified)
                 @a/@b/@t_@n  (will  create  the  directories  ’<artist>’  and
                 ’<artist>/<album>’)
                 @f_@n+@m:@s+@M:@S

       -d NAME   Output directory.  To put all output files in  the  directory
                 named NAME. If directory does not exists, it will be created.
                 The -o option can  also  be  used  to  output  files  into  a
                 directory.

       -n        No  tags.  Does  not  write  ID3  or Vorbis comment in output
                 files. Use if you need clean files.  See also the -x  option.

       -x        No  Xing  header.  Does  not  write the Xing header in output
                 files. Use this option with -n if you wish to concatenate the
                 split files and obtain a similar file as the input file.

       -1        Force ID3v1 tags. For mp3 files, force output tags as version
                 1.

       -2        Force ID3v2 tags. For mp3 files, force output tags as version
                 2.

       -N        No  silence log file. Don’t create the ’mp3splt.log’ log file
                 when using silence detection.  This  option  cannot  be  used
                 without the ’-s’ option.

       -g TAGS   Custom tags. Set custom tags to the split files.  TAGS should
                 contain a list of square brackets pairs []. The tags  defined
                 in the first pair of square brackets will be set on the first
                 split file, those  defined  in  the  second  pair  of  square
                 brackets  will  be set on the second split file, ... Inside a
                 pair  of  square   brackets,   each   tag   is   defined   as
                 @variable=value and tags are separated by comma. If a percent
                 sign % is found before the  open  square  bracket  character,
                 then  the  pair  of square brackets following the % character
                 will define the default tags in the following files. Multiple
                 ’%’ can be defined. The variables can be :

                 @a: artist name
                 @b: album title
                 @t: audio title
                 @y: year
                 @c: comment
                 @n: track number
                 @o: set original tags
                 @N:  auto  increment  track  number : this variable has to be
                 placed inside the %[] field in order to have the track number
                 auto incremented for all the split files following it

                 Example           of          tags          format          :
                 %[@o,@N=1,@b=special_album][@a=foo,@b=bar][@t=footitle].   In
                 this  example,  the  first  split file will have the original
                 tags with album tag replaced by ’special album’;  the  second
                 split  file  will  have the tags of the first split, with the
                 artist tag replaced by ’foo’ and the album  tag  replaced  by
                 ’bar’;  the  third split file will have the tags of the first
                 split, with the title tag replaced by ’footitle’.  The  track
                 number  will  start  at  1  for the first split file and auto
                 increment to the other files.

       -m M3U    Create .m3u file. Creates a .m3u file  containing  the  split
                 files.  The  generated  .m3u  file  only  contains  the split
                 filenames  without  the  path.  If  an  output  directory  is
                 specified  with  -d  or  -o,  the  file  is  created  in this
                 directory. The path of M3U is ignored. This option cannot  be
                 used with STDOUT output.

       -q        Quiet  mode.  Stays  quiet :) i.e. do not prompt the user for
                 anything and print less messages.  When you use quiet option,
                 mp3splt  will  try  to end program without asking anything to
                 the user (useful for scripts).  In Wrap  mode  it  will  also
                 skip CRC check, use if you are in such a hurry.

       -Q        Very  quiet  mode.  Enables  the -q option and does not print
                 anything to STDOUT. This option cannot be  used  with  STDOUT
                 output.

       -D        Debug   mode.   Experimental   debug   support.  Print  extra
                 informations about what is being done. Current print  doesn’t
                 have a nice format.

       -i        Count  silence  mode. Print the number of silence splitpoints
                 found with silence detection. Use -p for arguments.

       -v        Print version. Print the version of  mp3splt  and  libmp3splt
                 and exit.

       -h        Print help. Print a short usage of mp3splt and exit.

EXAMPLES

       mp3splt album.mp3 54.32.19 67.32 -o out
       mp3splt album.ogg 54.32.19 67.32 -o out

       This is the standard use of mp3splt for constant bitrate mp3 or for any
       ogg.  You specify a begin time (which in  this  case  uses  hundredths,
       54.32.19), an end time and an output file.

       mp3splt -f -d newdir album.mp3 album2.mp3 145.59  234.2

       This  is  frame  mode for variable bitrate mp3 and multiple files.  You
       can see that time format uses min.sec even  if  minutes  are  over  60.
       Output  files  in  this case will be: album_145m_59s_0h__234m_2s_0h.mp3
       and album2_145m_59s_0h__234m_2s_0h.mp3 because user didn’t  specify  it
       and they will be in the directory named newdir.

       mp3splt  -nf album.mp3  0.12  21.34.7  25.3  30.40  38.58

       This  is the use of -n option and multiple splitpoints. Four files will
       be created and will not contain ID3 informations.

       mp3splt  -w  album_MP3WRAP.mp3

       This is Wrap mode. You can use this when mp3 is  a  file  wrapped  with
       Mp3Wrap  or AlbumWrap.  You can specify an output directory with the -d
       option.

       mp3splt  -lq  album.mp3

       This is List mode. You can use this when you want to list all tracks of
       a  wrapped  file  without  extracting  them.   With  quiet option (-q),
       program will not calculate CRC!

       mp3splt -s f.mp3 or mp3splt -s -p th=-50,nt=10 f.mp3

       This is silence  option.  Mp3splt  will  try  to  automatically  detect
       splitpoints with silence detection and in the first case will split all
       tracks found with default parameters, while in the second 10 tracks (or
       less  if too much) with the most probable silence points at a threshold
       of -50 dB.

       mp3splt  -c  file.cddb  album.mp3

       This is CDDB mode with a local file. Filenames and splitpoints will  be
       taken from file.cddb.

       mp3splt  -c  query  album.mp3

       This  is  CDDB  mode  with  internet query. Will ask you the keyword to
       search and you will select the wanted cd.

       mp3splt  -a -c  file.cddb album.mp3

       This  is  CDDB  mode  with  auto-adjust  option  (default  parameters).
       Splitpoints  will  be  adjusted with silence detection in a range of 30
       seconds before and after cddb splitpoints.

       mp3splt  -a -p gap=15,th=-23,rm -c  file.cddb album.mp3

       This is CDDB mode with auto-adjust option. Splitpoints will be adjusted
       with  silence  detection in a range of 15 seconds before and after cddb
       splitpoints, with a threshold of -23 dB, and silence will be removed.

       mp3splt  -c  query  album.mp3 -n -o @n_@t

       This is CDDB mode with internet query with Frame mode, NoID3 and Output
       format.  Output filenames will be named like: 01_Title.mp3

       mp3splt  -t  10.00  album.mp3

       This  is -t option. It will split album.mp3 in many files of 10 minutes
       each.

BUGS

       Report any bugs you find to Authors (see below). Advices, info requests
       and contributions are welcome.

SEE ALSO

       mp3wrap(1)

AUTHORS

       Matteo Trotta <mtrotta@users.sourceforge.net>
       Alexandru Ionut Munteanu <io_fx@yahoo.fr>

DISTRIBUTION

       Visit http://mp3splt.sourceforge.net for latest release.

       mp3splt-project is

       (C) 2002-2005 by Matteo Trotta
       (C) 2005-2009 by Alexandru Ionut Munteanu

       Permission  is  granted to copy, distribute and/or modify this document
       under the terms of the GNU General Public License.  This can  be  found
       as COPYING in mp3splt packages.