2019-06-21 17:06:34 +00:00
|
|
|
#!/usr/bin/env sh
|
|
|
|
|
|
|
|
# Description: Create an mp3 ringtone out of an audio file in any format
|
|
|
|
# Needs user to provide start and end where to cut the file
|
|
|
|
# Input file audio.ext results in audio_ringtone.mp3
|
2019-10-25 02:20:54 +00:00
|
|
|
#
|
|
|
|
# Tip: To convert a complete media file, set start as 0 and
|
|
|
|
# the runtime of the file as end.
|
|
|
|
#
|
2019-06-21 17:06:34 +00:00
|
|
|
# Requires: date, ffmpeg
|
|
|
|
#
|
|
|
|
# Shell: POSIX compliant
|
|
|
|
# Author: Arun Prakash Jana
|
|
|
|
|
2019-06-27 01:38:02 +00:00
|
|
|
if [ -n "$1" ]; then
|
2019-06-21 17:06:34 +00:00
|
|
|
echo -n "start (hh:mm:ss): "
|
|
|
|
read start
|
2019-06-27 01:38:02 +00:00
|
|
|
st=$(date -d "$start" +%s) || exit 1
|
2019-06-21 17:06:34 +00:00
|
|
|
|
|
|
|
echo -n "end (hh:mm:ss): "
|
|
|
|
read end
|
2019-06-27 01:38:02 +00:00
|
|
|
et=$(date -d "$end" +%s) || exit 1
|
2019-06-21 17:06:34 +00:00
|
|
|
|
|
|
|
if [ $st -ge $et ]; then
|
|
|
|
echo "error: start >= end"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
interval=$(( $et - $st ))
|
|
|
|
|
2019-06-27 01:38:02 +00:00
|
|
|
outfile=$(basename "$1")
|
2019-06-21 17:06:34 +00:00
|
|
|
outfile="${outfile%.*}"_ringtone.mp3
|
|
|
|
|
|
|
|
ffmpeg -i "$1" -ss "$start" -t "$interval" -vn -sn -acodec libmp3lame -q:a 2 "$outfile"
|
|
|
|
fi
|