SYNOPSIS
albentohandy [-3] [-c] [-f] [-h] [-i <inputfile>] [-m <destfolder>] [-r]
- [-w <workdir>]
+ [-o] [-w <workdir>]
OPTIONS
-3 convert to mp3
-i <file> input Datei default=albumlist
-m <dest> kopiert das Arbeitsverzeichnis
in das angegeben Zielverzeichnis
+ -o convert to opus
-r löscht das Arbeitsverzeichnis
wenn -m angegeben ist
-w <workdir> das Arbeitsverzeichnis angegeben
| parallel --will-cite --ungroup --eta --progress FlacToMp3 {}
}
+FlacToOpus()
+{
+ local readonly INPUTFILE="$1"
+ local readonly OUTPUTFILE="${INPUTFILE[@]/%flac/opus}"
+ local readonly COVERFILE="${INPUTFILE%/*}/cover.jpg"
+
+ opusenc --picture "3|image/jpeg|||$COVERFILE" --quiet \
+ --bitrate 192 "$INPUTFILE" "$OUTPUTFILE"
+}
+
+ConvertFlacToOpus()
+{
+ local readonly WORKDIR="$1"
+
+ export -f FlacToOpus
+ find $WORKDIR -name *.flac \
+ | sort \
+ | parallel --will-cite --ungroup --eta --progress FlacToOpus {}
+}
+
PictureToFlac()
{
local readonly WORKDIR="$1"
local exists=true
local programm=""
local readonly PROGRAMMS=("vorbiscomment" "flac" "oggenc" "parallel" \
- "lame" "eyeD3" "metaflac")
+ "lame" "eyeD3" "metaflac" "opusenc")
for programm in $PROGRAMMS; do
if [ ! -f /usr/bin/$programm ]; then
phase=3
flac=false
mp3=false
+ opus=false
cover=false
removework=false
cptodest=false
ReadArguments()
{
- while getopts "3cfhi:m:rw:" optname; do
+ while getopts "3cfhi:m:orw:" optname; do
case "$optname" in
"3")
- mp3=true;
- flac=false;
+ mp3=true
+ flac=false
+ opus=false
;;
"c")
- cover=true;
+ cover=true
;;
"f")
- mp3=false;
- flac=true;
+ mp3=false
+ flac=true
+ opus=false
;;
"h")
Usage
dest="$OPTARG"
((phase++))
;;
+ "o")
+ opus=true
+ mp3=false
+ flac=false
+ ;;
"r")
removework=true
;;
printf "\nPhase %02d of %02d: flac -> flac with cover\n" \
$((curphase++)) $phase
PictureToFlac "$WORK"
+ elif [ $opus == true ]; then
+ printf "\nPhase %02d of %02d: flac -> opus\n" \
+ $((curphase++)) $phase
+ ConvertFlacToOpus "$WORK"
else
printf "\nPhase %02d of %02d: flac -> ogg\n" \
$((curphase++)) $phase