Thank you both for your replies.
I'm seeing the suggestion from pabibe as being analogous to what Keith is suggesting.
I am not sure how to incorporate the suggestion from pabibe, so I stuck with modifying flactoalac as Keith suggested. Hopefully this output can provide both of you with useful information.
Code:
file: /home/storage/music/lossless/phish/2016-07-15 George, WA (FLAC)/ph160715d1_10_Party_Time.flac
song: ph160715d1_10_Party_Time.flac
dir: /home/storage/music/lossless/phish/2016-07-15 George, WA (FLAC)
varyingdir: phish/2016-07-15 George, WA (FLAC)
outputfile: /home/storage/music/compressed/phish/2016-07-15 George, WA (FLAC)/ph160715d1_10_Party_Time.m4a
file: flac
song: flac
dir: .
varyingdir:
outputfile: /home/storage/music/compressed//m4a
file: /home/storage/music/lossless/phish/2016-06-22 St. Paul, MN (FLAC)/ph160622d1_08_Round_Room.flac
song: ph160622d1_08_Round_Room.flac
dir: /home/storage/music/lossless/phish/2016-06-22 St. Paul, MN (FLAC)
varyingdir: phish/2016-06-22 St. Paul, MN (FLAC)
outputfile: /home/storage/music/compressed/phish/2016-06-22 St. Paul, MN (FLAC)/ph160622d1_08_Round_Room.m4a
file: A (FLAC)/ph160629d2_01_Crosseyed_And_Painless.flac
song: ph160629d2_01_Crosseyed_And_Painless.flac
dir: A (FLAC)
varyingdir:
outputfile: /home/storage/music/compressed//ph160629d2_01_Crosseyed_And_Painless.m4a
file: /home/storage/music/lossless/phish/2016-06-29 Philadelphia, PA (FLAC)/ph160629d2_08_Backwards_Down_The_Number_Line.flac
song: ph160629d2_08_Backwards_Down_The_Number_Line.flac
dir: /home/storage/music/lossless/phish/2016-06-29 Philadelphia, PA (FLAC)
varyingdir: phish/2016-06-29 Philadelphia, PA (FLAC)
outputfile: /home/storage/music/compressed/phish/2016-06-29 Philadelphia, PA (FLAC)/ph160629d2_08_Backwards_Down_The_Number_Line.m4a
file: Hartford, CT [FLAC]/ph160709d2_03_Sand.flac
song: ph160709d2_03_Sand.flac
dir: Hartford, CT [FLAC]
varyingdir:
outputfile: /home/storage/music/compressed//ph160709d2_03_Sand.m4a
file: /home/storage/music/lossless/phish/2016-07-09 Xfinity Theatre, Hartford, CT [FLAC]/ph160709d1_07_Let_Me_Lie.flac
song: ph160709d1_07_Let_Me_Lie.flac
dir: /home/storage/music/lossless/phish/2016-07-09 Xfinity Theatre, Hartford, CT [FLAC]
varyingdir: phish/2016-07-09 Xfinity Theatre, Hartford, CT [FLAC]
outputfile: /home/storage/music/compressed/phish/2016-07-09 Xfinity Theatre, Hartford, CT [FLAC]/ph160709d1_07_Let_Me_Lie.m4a
file: Bill Graham Civic Auditorium, San Fransisco, CA [FLAC]/ph160718d2_04_My_Sweet_One.flac
song: ph160718d2_04_My_Sweet_One.flac
dir: Bill Graham Civic Auditorium, San Fransisco, CA [FLAC]
varyingdir: San Fransisco, CA [FLAC]
outputfile: /home/storage/music/compressed/ San Fransisco, CA [FLAC]/ph160718d2_04_My_Sweet_One.m4a
file: /home/storage/music/lossless/phish/2016-07-18 Bill Graham Civic Auditorium, San Fransisco, CA [FLAC]/ph160718d1_02_Halleys_Comet.flac
song: ph160718d1_02_Halleys_Comet.flac
dir: /home/storage/music/lossless/phish/2016-07-18 Bill Graham Civic Auditorium, San Fransisco, CA [FLAC]
varyingdir: phish/2016-07-18 Bill Graham Civic Auditorium, San Fransisco, CA [FLAC]
outputfile: /home/storage/music/compressed/phish/2016-07-18 Bill Graham Civic Auditorium, San Fransisco, CA [FLAC]/ph160718d1_02_Halleys_Comet.m4a
Once the script got to that last file, it hanged and left me with the following:
Code:
Enter command: <target>|all <time>|-1 <command>[ <argument>]
^Z
[3]+ Stopped ./flactoalac
I pressed "Break" to get back to the command prompt.
So you can verify I modified the script properly:
Code:
darryl@helios:~$ cat flactoalac
#!/bin/bash
inputdir="/home/storage/music/lossless/"
outputdir="/home/storage/music/compressed/"
while IFS= read -r -d $'\0' file ; do
song=`basename "$file"`
dir=`dirname "$file"`
varyingdir=${dir:${#inputdir}}
songnotype=${song:0:${#song}-4}
outputfile="${outputdir}${varyingdir}/${songnotype}m4a"
echo "file: $file" >> ~/flactoalac.log
echo "song: $song" >> ~/flactoalac.log
echo "dir: $dir" >> ~/flactoalac.log
echo "varyingdir: $varyingdir" >> ~/flactoalac.log
echo "outputfile: $outputfile" >> ~/flactoalac.log
# check if output file already exists
if [ ! -e "$outputfile" ]
then
# check if output directory exists
if [ ! -e "$outputdir$varyingdir" ]
then
mkdir -p "$outputdir$varyingdir"
fi
ffmpeg -i "$file" -acodec alac "$outputfile"
fi
done < <(find "$inputdir" -type f -name '*.flac' -print0)
darryl@helios:~$
Thank you both, very much, for your time and suggestions.
Bookmarks