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.
MP3SPLT(1)