]> gitweb.hhaalo.de Git - albentohandy.git/commitdiff
add: convert flac to opus option
authorBastian Dehn <hhaalo@arcor.de>
Wed, 23 Dec 2020 19:51:26 +0000 (20:51 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Wed, 23 Dec 2020 19:51:26 +0000 (20:51 +0100)
albentohandy

index 62c49ec012f372b1521ef38d0ca626e385e0ed1c..a3ec20d7578066e9ff484a9b4a0b9b2cc7ca04b9 100755 (executable)
@@ -9,7 +9,7 @@ NAME
 
 SYNOPSIS
     albentohandy [-3] [-c] [-f] [-h] [-i <inputfile>] [-m <destfolder>] [-r]
-                 [-w <workdir>]
+                 [-o] [-w <workdir>]
 
 OPTIONS
     -3                      convert to mp3
@@ -19,6 +19,7 @@ OPTIONS
     -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
@@ -116,6 +117,26 @@ ConvertFlacToMp3()
                | 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"
@@ -274,7 +295,7 @@ ExistsBasicProgramms()
        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
@@ -295,6 +316,7 @@ SetDefaultVariables()
        phase=3
        flac=false
        mp3=false
+       opus=false
        cover=false
        removework=false
        cptodest=false
@@ -302,18 +324,20 @@ SetDefaultVariables()
 
 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
@@ -327,6 +351,11 @@ ReadArguments()
                        dest="$OPTARG"
                        ((phase++))
                        ;;
+               "o")
+                       opus=true
+                       mp3=false
+                       flac=false
+                       ;;
                "r")
                        removework=true
                        ;;
@@ -370,6 +399,10 @@ ConvertProcess()
                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