Ich brauchte ein Skript, um auf meiner Kamera aufgezeichnete Videos in voller Größe erneut zu komprimieren, eine komprimierte Version zu erstellen und das Original nach der Konvertierung in einen anderen Ordner zu verschieben. Ich importiere dann die komprimierten Dateien in Lightroom und nicht die Originale. Es funktioniert gut, außer ich möchte, dass die Originaldatei nur verschoben wird, wenn die komprimierte Kopie erfolgreich erstellt wurde. Ideen zur Verbesserung dieses Skripts sind willkommen! Ich benutze Mac OS X.
#Convert everything in the subdirectories of a directory called "Unprocessed", storing the converted file in the "Processed/Converted" directory, fixing the 420p issue if the file is an AVI files, then move the original to a corresponding subdirectory of "Processed/Completed" for i in Unprocessed/*/*/*.*;
do o=$i;
echo Target is $o;
filename=`echo ${o##*/}`;
echo Filename is $filename;
tree=`echo $o | cut -d'/' -f2-3`;
echo Tree is $tree;
echo Directory to create is "Processed/Converted/$tree";
mkdir -p "Processed/Converted/$tree";
base=`echo ${filename%.*}`;
echo Base is $base;
newfile="Processed/Converted/$tree/$base.mp4";
echo Newfile is $newfile;
ffmpeg -i "$i" -map_metadata 0 -pix_fmt yuv420p "${newfile}";
echo Destination to move to is "Processed/Completed/$tree";
mkdir -p "Processed/Completed/$tree";
mv "$i" "Processed/Completed/$tree";
done;