2017-12-15 4 views
1

ich meine Video-Bibliothek von H.264 zu H.265 konvertieren Platz zu sparen. Alle meine Dateien befinden sich jedoch in einer Dateistruktur, die ich beibehalten möchte. Ich kodiere alle Dateien mit Adobe Media Encoder, aber es kann die Ordnerstruktur nicht beibehalten - geben Sie die H.265-Dateien nur in einen einzigen Ordner aus.Batch Suchen und Ersetzen von Dateien in Mac OS

Wie suche ich dann im Batch nach einem exakten Dateinamen (xxx.mp4) in einer Ordnerstruktur und ersetze ihn dann mit der neuen H.265-Datei (auch xxx.mp4 genannt) aus einem einzigen Ordner?

Ich habe 1000+ Videos funktioniert so nicht manuell :-)

jedem Terminal-Befehle, die helfen können?

+0

Storage ist fast heutzutage frei - ist es wirklich wert? –

+0

Hat meine Antwort Ihr Problem geklärt? Wenn dies der Fall ist, akzeptieren Sie es bitte als Antwort - indem Sie auf das Häkchen neben der Stimmenzählung klicken. Wenn nicht, sag bitte, was nicht funktioniert hat, damit ich oder jemand anderes dir weiter helfen kann. Vielen Dank. http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235 –

+0

Hey Mark. Ja sicher hat es - thx. Ich erhalte jetzt die Liste wie beschrieben. Ich muss noch die mv-Funktionalität mit ein paar Videos testen, bevor ich auf die gesamte Video-Bibliothek zugreife. – Justice69

Antwort

0

Ich bin sehr zurückhaltend zu gehen um zu machen Großhandel Änderungen an Tausende von Videos auf Ihrem Mac, so habe ich 99% davon hier fertig. Bitte machen Sie eine Sicherungskopie, bevor Sie etwas anderes tun.

Ok, Warnung über. Speichern Sie die folgende Datei in Ihrem Home-Verzeichnis als go:

#!/bin/bash 

# Change this to match the top-level of where all your videos are stored 
VIDEOLIB="$HOME/path/to/my/videos" 

shopt -s nullglob nocaseglob 

# Loop through all mp4 files in the current dorectory 
for video in *mp4; do 

    # Get this file's inode number (unique id) 
    inode=$(stat -f "%i" "$video") 

    # Now find a friend with same name but different inode number 
    friend=$(find "$VIDEOLIB" -name "$video" \! -inum $inode) 

    if [ -z "$friend" ] ; then 
     echo "ERROR: $video has no friend" 
    else 
     echo "$video is friends with:" 
     echo " $friend" 
    fi 
done 

dann auf Terminal starten, und stellen Sie das Skript über ausführbare - nur dann erforderlich, wenn:

chmod +x $HOME/go 

Jetzt Verzeichnis wechseln, wo der Adobe Media Encoder hat seine Ausgabedateien gespeichert werden, zB:

cd "path/to/Adobe Media Encoded files" 

Und das Skript ausführen mit:

$HOME/go 

Es sollte durch alle h265-kodierten Videos laufen und für jedes eine passende Datei finden. Es ist nicht wirklich etwas tun, außer Ihnen sagen, die Spiele, müssen Sie eine Zeile wie

mv "$video" "$friend" 

um 3 Zeilen von der letzten Zeile und über der Linie mit fi ... aber tun, um Ihre Backup und dann sehen, ob alles sieht zuerst gut aus.

+0

Bevor jemand mir sagt, zugeben ich, dass dies nicht die effizienteste Design in der Welt ist ('find' für jedes einzelne Video läuft), aber es sollte schnell genug leicht zu verstehen, robust und ausreichend sein. –

Verwandte Themen