Skip to content

Homeverzeichnis aufräumen

Linux

mal wieder eine Gedächtnisstütze für mich die vielleicht auch anderen hilft:
Folgender Befehl findet alle Dateien und Verzeichnisse im Homeverzeichnis (nur dort, nicht rekursiv in Unterverzeichnissen) auf die ein Jahr lang nicht mehr zugegriffen wurde und verschiebt sie in das Verzeichnis tmp/oldfiles/ im Homeverzeichnis (vorher mit mkdir -p ~/tmp/oldfiles anlegen):

find ~ -maxdepth 1 -atime +365 -exec mv {} ~/tmp/oldfiles \;

Auf Dateien die man ein Jahr lang nicht angefasst hat kann man wohl verzichten, zur Sicherheit verschiebe ich sie aber erstmal nur. In Unterverzeichnissen lasse ich nicht generell suchen da gerade im Dokumenten-Verzeichnis auch Dateien liegen (können) die so lange nicht geöffnet wurden aber trotzdem nicht gelöscht werden sollen.
Man kann zwar auch gezielt nur unbedenkliche Verzeichnisse angeben, aber das ist zum einen nicht universell, zum anderen kann sich der Inhalt auch mal ändern nach dem Erstellen der Liste und so auch Dateien erwischen die langfristig auf der Platte bleiben sollen und trotzdem noch nicht ihren Weg ins Backup gefunden haben eek

Auf diesen Befehl lassen sich auch noch weitere Suchen aufbauen, der Zeitraum lässt sich variieren (hier 365 Tage), mit ctime statt atime sucht man nach dem Erstell- statt der Zugriffszeit. mtime sucht nach der Zeit der letzten Änderung, das sind dann aber wohl schon so spezielle Suchen dass ein genauerer Blick in die man-page von find lohnt.

mit ffmpeg Videos für und von Handys (und Digitalkameras) wandeln

Linux

Unheimlich praktisch, aber mehr als Notiz für mich selbst:
Mit diesem Aufruf wandelt man via ffmpeg1 einen Film (Datei, nich DVD) ins 3GP Format für Handys um. Ist nur eine Zeile, der Shebang dient der Bequemlichkeit, so lässt sich der Aufruf bequem als Skript2 speichern.

#!/bin/bash
ffmpeg -i “$1” -f 3gp -vcodec h263 -qmin 5 -qmax 8 -b 120 -r 18 -acodec libamr_nb -ar 8000 -ab 12.2k -ac 1 -s 176×144 “$2.3gp”
gespeichert als 3gp-encoder.sh ruft man es auf mit 3gp-encoder.sh <Quellvideo> <Handyversion> also z.B. 3gp-encoder.sh Mallorcaurlaub.avi Malle. Die Endung .3GP wird automatisch angehängt damit man sie nicht vergisst.
Die Auflösung ist hier 176×144 Pixel, das ist die passende Auflösung von vielen Sony Ericsson (und vermutlich anderen) Handys (176×200, also volle Breite), sieht aber auch auf meinem P1i auf 320×240 gezoomt gut aus. Solange die Qualität in Ordnung ist empfehle ich eine niedrige Auflösung um Platz zu sparen. Die Filme die hiermit erzeugt werden brauchen etwa 1,2MB pro Minute.
Weiter mögliche Auflösungen sind 128×96, 176×144, 352×288, 704×576, und 1408×1152, wobei die letzten beiden praktisch wohl kaum für Telefone nötig sind.
Spielen kann man vor allem noch mit den Bitraten -(a)b und den Bilderns pro Sekunde (-r), hier 18, aber natürlich sind auch alle weiteren Parameter variabel, die manpage zu ffmpeg verrät mehr.
Diese Einstellungen sind nach meiner Erfahrung passend für die meissten Filme, Ausnahmen erledigt man eher mit einem individuell angepassten Aufruf statt es im Script selbt zu ändern.

Vermutlich gibt es ffmpeg auch für MacOS X und evtl. auch als cygwin-Version für Windows, dann geht das auch dort


Nachtrag: aufgrund Sams Nachfrage hier noch der Weg in die andere Richtung, aus einem mit dem Handy aufgenommenen Video ein auf dem PC gebräuchlicheres Format machen:
Dies ist mit ffmpeg auch recht einfach, nach dem Schema ffmpeg -i handyvideo.3gp -f <format> -vcdodec <video-codec> -acodec <audio-codec>. Ggf. sind noch weitere Parameter für die jeweiligen Codecs nötig, ich habe testweise ein Video meines P1i mit folgendem Aufruf gewandelt:
ffmpeg -i DSC00140.3GP -f avi -vcodec mpeg4 -r 24 -acodec mp2 -ar 22050 test.avi
Ausgabeformat (Container) avi, Videocodec mpeg4 und Audiocodec mp2 (mp3 unterstützt mein ffmpeg nur beim decodieren).
Da die Framerate beim ersten Versuch 1000 und das resultierende Video nur 2 Sekunden lang war habe ich die Framerate mit ‘-r 24’ auf 24 festgelegt. Da der Ton im Handyvideo mit 8kBit aufgenommen war was mp2 nicht unterstützt habe ich ihn mit ‘-ar 22050’ auf 22kBit wandeln lassen. Diese Einstellungen werden aber von Handy zu Handy variieren. Als Videocodec hätte ich auch einfach ‘copy’ angeben können da mein Handy schon in mpeg4 aufzeichnet.
Eine Übersicht der vom installierten ffmpeg unterstützten Formate bekommt man mit ffmpeg -formats. Die Buchstaben in der ersten Spalte zeigen die Möglichkeiten: D für decodieren, E für encodieren, A ist ein Audiocodec, V ein Videocodec.
Man kann so z.B. auch die Filme der Digitalkamera (meist MJPEG als Videocodec) in etwas sinnvolleres wandeln

(Titel des Artikels dem erweiterten Inhalt angepasst)

____

1 ffmpeg braucht dafür Support für die Codec amr und h263 (plus dem Eingangformat), unter Gentoo werden diese mit USE=“amr h263” aktiviert

2 die Bezeichnung “Skript” ist ein wenig übertrieben für nur eine Zeile aber mir fällt grad nicht apssenderes/genaueres ein.