Führen Sie dies unter OS X Lion aus.
Ich konvertiere mehrere hundert Heimvideos stapelweise mit der Handbrake-CLI. Ich möchte das Datum der letzten Änderung und das Erstellungsdatum auf diese Originaldatei setzen.
Ich verwende das folgende Skript:
for f in "$@"; do
base=${f%.*}
extension=${f##*.}
newfile=${base}.m4v
echo Converting \"$f\" to \"$newfile\"
/Applications/HandBrakeCLI -e x264 -b 4000 -a 1 -E faac -B 160 -R 48 -6 dpl2 -f mp4 --crop 0:0:0:0 -x level=40:ref=2:mixed-refs:bframes=3:weightb:subme=9:direct=auto:b-pyramid:me=umh:analyse=all:no-fast-pskip:filter=-2,-1 -i "$f" -o "$newfile"
done
Ich führe dieses Skript aus, indem ich Folgendes ausführe:
find . -name "*.avi" -print0 | xargs -0 hbapple.sh
Hat jemand Gedanken darüber, wie ich die letzte Änderung und die Erstellungszeit der Originaldatei auf die der $newfile einstellen kann?
Wenn ich nicht herausfinde, wie das geht, wird es mir schwer fallen zu wissen, wann diese Videos tatsächlich erstellt wurden.
Ich freue mich über jede Hilfe oder Hinweise
Das Änderungsdatum kann mit eingestellt werden
touch -m -t 201207010742 whatever.m4v
AFAIK das Erstellungs-/Geburtsdatum kann nicht geändert werden.
Um das Änderungsdatum basierend auf dem Erstellungsdatum einer anderen Datei festzulegen, können Sie Folgendes verwenden stat
:
touch -m -t $(stat -f %SB -t %Y%m%d%H%M original-file.mov) new-file-m4v
Um dies auf Ihr Skript anzuwenden, verwenden Sie etwas wie
for f in "$@"
do
olddate=$(stat -f %SB -t %Y%m%d%H%M "$f")
base=${f%.*}
extension=${f##*.}
newfile=${base}.m4v
echo Converting \"$f\" to \"$newfile\"
/Applications/HandBrakeCLI -e x264 -b 4000 -a 1 -E faac -B 160 -R 48 -6 dpl2 -f mp4 --crop 0:0:0:0 -x level=40:ref=2:mixed-refs:bframes=3:weightb:subme=9:direct=auto:b-pyramid:me=umh:analyse=all:no-fast-pskip:filter=-2,-1 -i "$f" -o "$newfile"
touch -m -t $olddate "$newfile"
done