Gibt es ein Skript (Bash, Python usw.), das die Gesamtdauer aller Videodateien in einem Verzeichnis (rekursiv) ausgibt?
Zum Beispiel bei der Ausführung von Folgendem:
script mypath
es gibt x minutes/hours
.
command-line
scripts
video
Bitte helfen Sie
quelle
quelle
E: File read error
während der Ausführung in einem Verzeichnis (habe andere Dateien als Videodateien). IMHOmediainfo
ist vergleichsweise langsam alsavprobe
. Es dauert mehr als doppelt so lange wie die vonavprobe
.avprobe
da sie in der Tat viel schneller als mediainfo ist (ich habe auch den Fehler beim Lesen der ersten Version behoben)Mit dem folgenden Skript können Sie die Gesamtdauer aller Videodateien in einem Verzeichnis rekursiv ermitteln . Ich habe
avprobe
im folgenden Skript verwendet, das mit kommtlibav-tools
Installieren
libav-tools
als,Speichern Sie das Skript als
get_video_duration.sh
(sagen wir). Geben Sie ihm die Ausführungsberechtigung von einem Terminal alsSo führen Sie das Skript aus
/full/path/to/videodir
Führen Sie das Argument as aus , um die Gesamtvideodauer des Verzeichnisses zu ermittelnOder um die Gesamtvideodauer des aktuellen Verzeichnisses zu kennen, das ohne Argument als ausgeführt wird
Für die Rekursion anhängen
-R
oder-r
oder-recursive
oder--recursive
nach dem Verzeichnispfad. Zum Beispiel, um die gesamte Videodauer des Verzeichnisses/full/path/to/videodir
rekursiv zu ermitteln (durchsuchen Sie auch alle darin enthaltenen Ordner/full/path/to/videodir
).Das Skript lautet wie folgt:
Screenshot der Ausführung des Skripts
Hinweis: Da ich keine
.mkv
oder keine.avi
Datei in meinem Home-Verzeichnis habe, wurden die letzten beiden Zeilen des Screenshots mit der Dauer 0Hr 0Min 0Sec angezeigtquelle
for i in $mypath/*
for i in $mypath/{*.mp4,*.mkv,*.avi}
for i in $mypath/*
, listet es andere Dateien mit 0 Dauer auf. Die Anwendung unterscheidet sich also von SylvainPineaus Antwort, ist aber dennoch nützlich :)