Hallo alle miteinander,
seit ich mich vor einigen Monaten mal etwas näher mit ffmpeg befasst habe, hab ich dieses Tool schätzen und lieben gelernt, auch wenn es aufgrund der Vielzahl an Möglichkeiten nicht ganz einfach zu handhaben ist.
Nun wollte ich eine größere Zahl von Videodateien (einige 100) abgrasen, zunächst mal nur um Metadaten auszulesen. Dafür bietet sich das GNU-Tool find an, das für mich auch noch ein bisschen ... naja, sagen wir, ich hab's wegen der Fülle an Möglichkeiten auch noch nicht so ganz im Griff.
Um mit find eine größere Zahl von Dateien zu finden und zu bearbeiten, kann ich -type f, ein Dateinamen-Suchmuster (z.B. *.mp4) und die Option -exec verwenden.
Aber alle Hilfeseiten und Tutorials zu find, die ich bisher gefunden habe (Beispiel, Beispiel, Beispiel), ergänzen ihre Beispiele zu -exec still und heimlich mit einem Semikolon am Zeilenende, oder sogar mit der Sequenz \;, ohne zu erklären, wozu das gut ist oder was es bewirkt.
Kann da einer von den shell-Profis mal Licht ins Dunkel bringen? Ist das ein besonderes Schmankerl von find oder ein allgemeiner shell-Kniff, den ich noch nicht kenne?
Oh, und noch eine Frage zu ffmpeg. Rufe ich das Tool auf ...
ffmpeg -hide_banner -i video.mp4
... dann bekomme ich in knapper Form den technischen Steckbrief der Videodatei angezeigt (Spieldauer, enthaltene Streams, verwendete Codecs, Bitrate etc). Leider gibt ffmpeg diese Daten nicht an stdout aus, sondern an stderr. Das kann ich zwar mit 2> in eine Datei umleiten, aber nicht an ein anderes Programm pipen, um die Ausgabe zu parsen. Oder doch? Wenn ja, wie?
So long,
Martin
Computer müssen weiblich sein: Eigensinnig, schwer zu durchschauen, immer für Überraschungen gut - aber man möchte sie nicht missen.