HandbrakeCLI Shell Skript

B

babola

Grünschnabel
Hallo zusammen und
Schöne grüße aus Süddeutschland.

Ich versuche mich gerade an einem Skript für Handbrake. Ich bin ein Anfänger , und habe mir mein Wissen mit Google und co zusammengetragen. ... Über Verbesserungsvorschläge würde ich mich sehr freuen.

Das Skript funktioniert soweit schon mal ganz gut , bis auf eine Kleinigkeit.
Wie schaffe ich es den auszuführenden Befehl richtig in die Variable $HAND zu packen. ?

edit: mittlerweile habe ich es hinbekommen. Variablen sollte man erst abrufen wenn sie auch schon gesetzt sind :D


edit2:
es gab noch Probleme wenn Leerzeichen im Dateinamen waren.
Nun schaut es ganz gut aus.

Hier das fertige Skript

Das Script schaut nach ob am Zielort ein Ordner mit gleichen Namen existiert, wenn nein wird er erstellt und Handbrake läuft an.
Wenn ja wird geprüft ob der Ordner leer ist, wenn ja überspring er die schleife, wenn nein Handbrake läuft an.

Verbesserungsvorschläge sind erwünscht


Code:
#!/bin/bash

SRC=/media/HDD3/videos/Filme
DEST=/media/HDD3/videos/Filmeneu
DEST_EXT=mkv
HANDBRAKE=HandBrakeCLI
LOG=/home/maggro/Handbrake/Filmlog.txt


for FILE in "$SRC"/*
do
    filename=$(basename "$FILE")
    extension="${filename##*.}"
    filename="${filename%.*}"
DESTA="$DEST"/"$filename"
DESTB="$DEST"/"$filename"

OPTIONS='-E copy --audio-copy-mask ac3,dts,dtshd --audio-fallback ffac3 -e x264 -q 25 -x level=4.0:ref=1:weightb=0:no-deblock=1:cabac=0:8x8dct=0:weightp=0:subme=2:mixed-refs=0:trellis=0:psy-rd=1.00,0.15:vbv-bufsize=5000:vbv-maxrate=12000:rc-lookahead=10'

echo `date`
echo -e "\033[31m$filename\033[0m"

   if [ -s "$DESTA" ]
       then

           echo "Verzeichnis ist vorhanden "
           cd "$DESTA"
           list=$(echo *)
           
               if [ "$list" = "*" ]
                   then
                   echo "Verzeichnis $filename ist leer"
                   echo "HANDBRAKE RUNNING"
                   
                   $HANDBRAKE -i "$FILE" -o "$DESTA"/"$filename".$DEST_EXT $OPTIONS 2> $LOG
                   
                   else
                   echo "Verzeichnis  $filename ist nicht leer "
                   continue

                   
               fi
   
       else
       echo "Verzeichnis $filename ist nicht vorhanden und wird erstellt"
       mkdir "$DESTB"
       echo "HANDBRAKE RUNNING"
       $HANDBRAKE -i "$FILE" -o "$DESTA"/"$filename".$DEST_EXT $OPTIONS 2> $LOG
   fi
   
   
   
done
 
Zuletzt bearbeitet:

Ähnliche Themen

NAS-Drive Mount in Bash-Script über crontab

Verschlüsseltes Backup-Script mit rsync

Shell Skript beschleunigen

[Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter

Problem mit HSPA+ Modem Huawei E353 - Installation unmöglich?

Zurück
Oben