time-expanseR/split_5s.sh

73 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
##########################################################
#
# Split wav sounds into 5s wav using ffmpeg
# Samuel ORTION
##########################################################
function usage {
printf "./$(basename $0) -h - - shows help \n"
printf "./$(basename $0) -i input_dir -o output_dir - - split long wav into 5s wav \n"
}
function split {
for item in `ls $indir/*.WAV`
do
audio_dur=`sox --i -D $item`
# Convert float to int
audio_dur=${audio_dur%.*}
echo "$item ($audio_dur)"
ss=0
to=5
for ss in `seq 0 5 $(( $audio_dur - 5 ))`
do
to=$(( $ss + 5 ))
echo "Spliting $item ($ss/$audio_dur)"
ffmpeg -ss $ss -i $indir/`basename $item` -t $to -c copy $outdir/`basename $item`-$ss.wav
done
done
}
optstring=":hi:o:"
# Defaults
indir="raw"
outdir="split"
while getopts ${optstring} arg
do
case "${arg}" in
h)
printf "$( basename $0 ) usage: \n"
usage
exit 0
;;
i)
indir="${OPTARG}"
echo "indir: $indir"
;;
o)
outdir="${OPTARG}"
echo "outdir: $outdir"
;;
:)
echo "$( basename $0 ): Must supply an argument to -$OPTARG."
exit 1
;;
?)
echo "Invalid option: -${arg}."
echo
usage
exit 1
;;
esac
done
if [ ! -d $outdir ];
then
mkdir $outdir
fi
split