[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
I'm hitting the tail end of this conversation, but if I'm reading this right... You want to recode flac's to mp3's and ogg's?? If so this may be of use:
########################################################################
# transcode
#
# A "front-end" script for transcoding from FLAC to either
# FLAC, Ogg Vorbis, or MP3
#
########################################################################
#!/bin/bash
########################################################################
# User-Defined Variables:
# Where do you want your transcoded files to go?
TRANSCODED_DIR=/Music/ogg
# FLAC command-line options
FLAC_OPS="--best"
# Ogg Vorbis (oggenc) command-line options
VORBIS_OPS="-q 6"
# MP3 (lame) command-line options (quality only; ID3 tag options are below)
LAME_OPS="--alt-preset standard"
########################################################################
# Non-User-Defined Variables:
# This part sorts out the copying of subdirectories in the tree
TOP_WORKING_DIR=`pwd`
TOP_WORKING_DIR_LENGTH=`expr length "$TOP_WORKING_DIR"`
let "PATH_CUT_LENGTH=$TOP_WORKING_DIR_LENGTH+2"
TODAY=`date -I`
# This variable is set at the command line - flac, vorbis, mp3, or test
OUTPUT_TYPE=1ドル
########################################################################
# The transcoding functions
# Function for transcoding FLAC to FLAC (useful for increasing compression)
flac2flac ()
{
EAC_LOG=`basename "1ドル" .log`
if [ "1ドル" == "$EAC_LOG" ]
then
echo "Transcoding "1ドル" to $OUTPUT_TYPE"
CURRENT_WORKING_DIR=`pwd`
MAGIC_PATH=`echo "$CURRENT_WORKING_DIR" | cut -b "$PATH_CUT_LENGTH"-`
TOTAL_PATH="$TRANSCODED_DIR/$MAGIC_PATH"
mkdir -p "$TOTAL_PATH"
flac -d -c "1ドル" | flac "$FLAC_OPS" - -o "$TOTAL_PATH/1ドル" && metaflac --no-utf8-convert --export-vc-to=/tmp/tag.tmp "1ドル" && metaflac --import-vc-from=/tmp/tag.tmp "$TOTAL_PATH/1ドル"
else
cp "1ドル" "$TOTAL_PATH/.."
echo "" >> "$TOTAL_PATH/../1ドル"
echo "**********" >> "$TOTAL_PATH/../1ドル"
echo "$TODAY - Transcoded album to flac $FLAC_OPS" >> "$TOTAL_PATH/../1ドル"
fi
return 0
}
# Function for transcoding FLAC to Ogg Vorbis using oggenc
flac2vorbis ()
{
EAC_LOG=`basename "1ドル" .log`
if [ "1ドル" == "$EAC_LOG" ]
then
echo "Transcoding "1ドル" to $OUTPUT_TYPE"
CURRENT_WORKING_DIR=`pwd`
MAGIC_PATH=`echo "$CURRENT_WORKING_DIR" | cut -b "$PATH_CUT_LENGTH"-`
TOTAL_PATH="$TRANSCODED_DIR/$MAGIC_PATH"
mkdir -p "$TOTAL_PATH"
newname="`basename "1ドル" .flac`.ogg"
# flac -d -c "1ドル" | oggenc "$VORBIS_OPS" - -o "$TOTAL_PATH/$newname" && metaflac --no-utf8-convert --export-vc-to=/tmp/tag.tmp "1ドル" && vorbiscomment --raw -w "$TOTAL_PATH/$newname" -c /tmp/tag.tmp && rm /tmp/tag.tmp
if `test -f "$TOTAL_PATH/$newname"` ;then return 0; else \
oggenc "$VORBIS_OPS" "1ドル" -o "$TOTAL_PATH/$newname" ; fi
else
cp "1ドル" "$TOTAL_PATH/.."
echo "" >> "$TOTAL_PATH/../1ドル"
echo "**********" >> "$TOTAL_PATH/../1ドル"
echo "$TODAY - Transcoded album to Ogg Vorbis $VORBIS_OPS" >> "$TOTAL_PATH/../1ドル"
fi
return 0
}
# Function for transcoding FLAC to MP3 using the LAME encoder
flac2mp3 ()
{
EAC_LOG=`basename "1ドル" .log`
if [ "1ドル" == "$EAC_LOG" ]
then
echo "Transcoding "1ドル" to $OUTPUT_TYPE"
CURRENT_WORKING_DIR=`pwd`
MAGIC_PATH=`echo "$CURRENT_WORKING_DIR" | cut -b "$PATH_CUT_LENGTH"-`
TOTAL_PATH="$TRANSCODED_DIR/$MAGIC_PATH"
mkdir -p "$TOTAL_PATH"
newname="`basename "1ドル" .flac`.mp3"
TITLE=`metaflac --show-vc-field=TITLE "1ドル" | cut -b 7-`
ARTIST=`metaflac --show-vc-field=ARTIST "1ドル" | cut -b 8-`
ALBUM=`metaflac --show-vc-field=ALBUM "1ドル" | cut -b 7-`
TRACK=`metaflac --show-vc-field=TRACKNUMBER "1ドル" | cut -b 13-`
YEAR=`metaflac --show-vc-field=DATE "1ドル" | cut -b 6-9`
GENRE=`metaflac --show-vc-field=GENRE "1ドル" | cut -b 7-`
COMMENT=`metaflac --show-vc-field=COMMENT "1ドル" | cut -b 8`
flac -d -c "1ドル" | lame-ha $LAME_OPS --add-id3v2 --tt "$TITLE" --ta "$ARTIST" --tl "$ALBUM" --tn "$TRACK" --ty "$YEAR" --tg "$GENRE" --tc "$COMMENT" - "$TOTAL_PATH/$newname"
else
cp "1ドル" "$TOTAL_PATH/.."
echo "" >> "$TOTAL_PATH/../1ドル"
echo "**********" >> "$TOTAL_PATH/../1ドル"
echo "$TODAY - Transcoded album to LAME mp3 $LAME_OPS" >> "$TOTAL_PATH/../1ドル"
fi
return 0
}
flactest ()
{
EAC_LOG=`basename "1ドル" .log`
if [ "1ドル" == "$EAC_LOG" ]
then
echo "Testing 1ドル and silently writing log"
flac -t -s "1ドル" 2>> "$TRANSCODED_DIR/flactest.log"
fi
return 0
}
########################################################################
# Function for finding files recursively
recursive ()
{
for i in *
do
if [ -d "$i" ]
then
cd "$i"
recursive
cd ..
else
if [ "flac" == "$OUTPUT_TYPE" ]
then
flac2flac "$i"
elif [ "vorbis" == "$OUTPUT_TYPE" ]
then
flac2vorbis "$i"
elif [ "mp3" == "$OUTPUT_TYPE" ]
then
flac2mp3 "$i"
elif [ "test" == "$OUTPUT_TYPE" ]
then
flactest "$i"
else
echo "Output type not recognized - please specify \"flac\", \"vorbis\", \"mp3\", or \"test\""
fi
fi
done
}
########################################################################
# The main body of the script...all it does is call the recursive function
recursive
########################################################################
# End of script
########################################################################