Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Split mp3 file to TIME sec each using SoX

Tags:

linux

mp3

sox

I need to split mp3 file into slices TIME sec each. I've tried mp3splt, but it doesn't work for me if output is less than 1 minute. Is it possible do do with:

sox file_in.mp3 file_out.mp3 trim START LENGTH

When I don't know mp3 file LENGTH

like image 720
Łukasz D. Tulikowski Avatar asked Nov 08 '15 19:11

Łukasz D. Tulikowski


2 Answers

You can run SoX like this:

sox file_in.mp3 file_out.mp3 trim 0 15 : newfile : restart

It will create a series of files with a 15-second chunk of the audio each. (Obviously, you may specify a value other than 15.) There is no need to know the total length.

Note that SoX, unlike mp3splt, will decode and reencode the audio (see generation loss). You should make sure to use at least SoX 14.4.0 because previous versions had a bug where audio got lost between chunks.

like image 94
chirlu Avatar answered Sep 20 '22 01:09

chirlu


There are two use case trim in sox:

sox file_in.mp3 file_out.mp3 trim START LENGTH

and

sox file_in.mp3 file_out.mp3 trim START =END

In last example you need to know the END position instead of LENGTH

like image 32
Dima Melnik Avatar answered Sep 19 '22 01:09

Dima Melnik