felix: Shell Skript schreiben

Hallo, ich habe ein Problem:

ich habe auf einer Linuxkiste ein Verzeichnisbaum mit mehreren mpg Videos in verschiedenen Unterordnern. In den Ordnern liegen auch noch andere Dateien.

Ich wollte mir jetzt ein Script schreiben, dass folgendes macht:

  • Alle Verzeichnisse auf MPG Videos durchsuchen. (unterhalb eines Startverzeichnisses)
  • Jedes Video mittels ffmpeg -i File.mpg -r 22 File_c.mpg umwandelt und umbenennt
  • das Originalvideo löschen, wenn das _c Video erstellt wurde.

Da ich aber nicht so firm bin im Script schreiben, hat jemand eine Idee, wie ich das anstellen kann?

Danke schon einmal im Voraus.

  1. Moin!

    Ich wollte mir jetzt ein Script schreiben, dass folgendes macht:

    • Alle Verzeichnisse auf MPG Videos durchsuchen. (unterhalb eines Startverzeichnisses)
    ~> find $STARTVERZEICHNIS -name "*.mpg" -exec DEIN_SKRIPT.bash {} \; # Achte auf die Leerzeichen!
    
    • Jedes Video mittels ffmpeg -i File.mpg -r 22 File_c.mpg umwandelt und umbenennt

    Ab damit nach DEIN_SKRIPT.bash

    #!/bin/bash
    ## file: DEIN_SKRIPT.bash
    oldFile=$1;
    newFile=`echo "$oldFile" | sed "s/\.mpg$/_c.mpg/"`; # Auf die Backticks aufpassen!
    ffmpeg -i "$oldFile" -r 22 "$newFile" 2>> /tmp/ffmpeg.log;
    # if [ $? eq 0 ]; then
    #   rm -f "$oldFile";
    # else 
    #   echo "Beim Umwandeln von $oldFile trat ein Fehler auf. Gespeichert in /tmp/ffmpeg.log
    #   echo " (Datei war $oldFile)\n" >>/tmp/ffmpeg.log
    #fi
    
    • das Originalvideo löschen, wenn das _c Video erstellt wurde.

    Oh Nein! Ich habe das im Skript auskommentiert weil ich das niemals machen würde, bevor ich genau weiß, dass das Video auch umgewandelt wurde. (auch wenn ffmpeg den Status 0 zurückgab ist für mich erst mal nicht so sicher, dass das Video auch angesehen werden kann.)

    Da ich aber nicht so firm bin im Script schreiben, hat jemand eine Idee, wie ich das anstellen kann?

    Obiges ist nur eine Idee. Es wird andere Änsätze geben und ich konnte das nicht testen.

    Jörg Reinholz

    1. Hallo,

      herzlichen dank; ich werde es nachher mal testen;

      bin gerade unterwegs

      LG

      Moin!

      Ich wollte mir jetzt ein Script schreiben, dass folgendes macht:

      • Alle Verzeichnisse auf MPG Videos durchsuchen. (unterhalb eines Startverzeichnisses)
      ~> find $STARTVERZEICHNIS -name "*.mpg" -exec DEIN_SKRIPT.bash {} \; # Achte auf die Leerzeichen!
      
      • Jedes Video mittels ffmpeg -i File.mpg -r 22 File_c.mpg umwandelt und umbenennt

      Ab damit nach DEIN_SKRIPT.bash

      #!/bin/bash
      ## file: DEIN_SKRIPT.bash
      oldFile=$1;
      newFile=`echo "$oldFile" | sed "s/\.mpg$/_c.mpg/"`; # Auf die Backticks aufpassen!
      ffmpeg -i "$oldFile" -r 22 "$newFile" 2>> /tmp/ffmpeg.log;
      # if [ $? eq 0 ]; then
      #   rm -f "$oldFile";
      # else 
      #   echo "Beim Umwandeln von $oldFile trat ein Fehler auf. Gespeichert in /tmp/ffmpeg.log
      #   echo " (Datei war $oldFile)\n" >>/tmp/ffmpeg.log
      #fi
      
      • das Originalvideo löschen, wenn das _c Video erstellt wurde.

      Oh Nein! Ich habe das im Skript auskommentiert weil ich das niemals machen würde, bevor ich genau weiß, dass das Video auch umgewandelt wurde. (auch wenn ffmpeg den Status 0 zurückgab ist für mich erst mal nicht so sicher, dass das Video auch angesehen werden kann.)

      Da ich aber nicht so firm bin im Script schreiben, hat jemand eine Idee, wie ich das anstellen kann?

      Obiges ist nur eine Idee. Es wird andere Änsätze geben und ich konnte das nicht testen.

      Jörg Reinholz

      1. Moin!

        Hallo,

        herzlichen dank; ich werde es nachher mal testen;

        bin gerade unterwegs

        Fein. Da kann noch zwei Zeichen nachreichen:

        #!/bin/bash
        ## file: DEIN_SKRIPT.bash
        oldFile=$1;
        newFile=`echo "$oldFile" | sed "s/\.mpg$/_c.mpg/"`; # Auf die Backticks aufpassen!
        ffmpeg -i "$oldFile" -r 22 "$newFile" 2>> /tmp/ffmpeg.log;
        # if [ $? -eq 0 ]; then
        #   rm -f "$oldFile";
        # else 
        #   echo "Beim Umwandeln von $oldFile trat ein Fehler auf. Gespeichert in /tmp/ffmpeg.log";
        #   echo " (Datei war $oldFile)\n" >> /tmp/ffmpeg.log
        # fi
        

        Jörg Reinholz