Convert mp3 to audio CD
Polytropon
freebsd at edvax.de
Wed Mar 21 08:43:05 UTC 2012
On Tue, 20 Mar 2012 23:10:16 -0400, Steve Bertrand wrote:
> I know this is a backwards request, as I haven't had to go from mp3 to
> audio CD format in at least 10 years, but I do now.
>
> What is available to do so?
This script, ugly as hell, but works. :-)
You need to install madplay or mpg123, as well as sox.
If you also want to convert Ogg/Vorbis files, you need
ogg123 (vorbis-tools). And of course you need a cd
burning program such as cdrdao or cdrecord. See the
examples for calling them at the end of the script.
#!/bin/sh
echo "=== MP3 + OGG/Vorbis -> Audio CD Converter ==================================="
echo -n "MP3 decoders found:"
DECODER=0
which mpg123 > /dev/null 2>&1
if [ $? -eq 0 ]; then
DECODER=2
echo -n " mpg123"
fi
which madplay > /dev/null 2>&1
if [ $? -eq 0 ]; then
DECODER=1
echo -n " madplay"
fi
if [ $DECODER -eq 0 ]; then
echo "none, aborting."
exit 1
fi
echo -n ", using "
if [ $DECODER -eq 1 ]; then
echo "madplay."
else
echo -n "mpg123"
which madplay > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo " and sox."
else
echo ", but sox is not available, exiting."
exit 1
fi
fi
echo -n "OGG/Vorbis decoders found:"
which ogg123 > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo " ogg123."
else
echo "none, aborting."
exit 1
fi
TOCFILE="audiocd.toc"
echo "CD_DA" > $TOCFILE
FILELIST=`ls *.[mo][pg][3g]`
if [ "$FILELIST" = "" ]; then
echo "No files (*.mp3 and/or *.ogg) found, aborting."
exit 1
fi
for FILE in *.[mo][pg][3g]; do
echo -n "$FILE -> "
echo $FILE | grep " " > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo "filename contains spaces, cannot proceed."
exit 1
fi
TYPE=""
echo $FILE | grep ".mp3" > /dev/null 2>&1
if [ $? -eq 0 ]; then
TYPE="mp3"
fi
echo $FILE | grep ".ogg" > /dev/null 2>&1
if [ $? -eq 0 ]; then
TYPE="ogg"
fi
if [ "$TYPE" = "ogg" ]; then
ogg123 -q -d raw -f $FILE.raw $FILE
sox -r 44100 -c 2 -w -s $FILE.raw $FILE.cdr
rm $FILE.raw
elif [ "$TYPE" = "mp3" ]; then
case $DECODER in
1)
madplay -q -o cdda:$FILE.cdr $FILE
;;
2)
mpg123 -sq $FILE > $FILE.raw
sox -r 44100 -c 2 -w -s $FILE.raw $FILE.cdr
rm $FILE.raw
;;
esac
elif [ "$TYPE" = "" ]; then
echo "file type unknown, aborting."
exit 1
fi
echo $FILE.cdr
echo TRACK AUDIO COPY AUDIOFILE \"$FILE.cdr\" 0 >> $TOCFILE
done
echo "Your recording command could be:"
echo " # cdrecord -eject -v -dao -audio *.cdr"
echo " # cdrdao write --eject audiocd.toc"
echo "After finished, don't forget to delete converter garbage:"
echo " # rm *.cdr audiocd.toc"
echo "=============================================================================="
exit 0
--
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...
More information about the freebsd-questions
mailing list