Gesamtlänge von MP3-Dateien in einem Ordner exportieren?

7699
Anastasia

Ich habe viele Ordner mit MP3-Dateien, und ich hätte gerne eine Liste der Gesamtdauer aller MP3-Dateien in jedem Ordner. Das wäre die ideale Lösung, aber einige Möglichkeiten, einen Verzeichnisausdruck zu erstellen, der die individuelle MP3-Dauer anfügt, wären auch gut. Jede Hilfe wäre sehr dankbar. Ich verwende Windows 7 Home Premium, habe aber Zugriff auf eine Reihe anderer Windows / Mac OS.

Bearbeiten - Ich habe tatsächlich eine Lösung gefunden, die die Exportfunktion im Freeware-Programm Tagscanner verwendet.

2
Ich habe eine WPF-Anwendung, die ich geschrieben habe, die (unter anderem) dies tun wird, aber ich habe sie noch nirgendwo hochgeladen - immer noch wirklich nur für den internen Gebrauch. Wenn sich jedoch nichts anderes ergibt, könnte ich Ihnen eine Kopie geben lassen. ChrisF vor 13 Jahren 0

4 Antworten auf die Frage

5
slhck

Wenn Sie mit Mac OS oder einem Unix-System arbeiten, können Sie ffmpeg installieren und den folgenden Befehl verwenden, um die Dauer einer einzelnen Datei zu extrahieren:

ffmpeg -i filename.mp3 2>&1 | egrep "Duration" | cut -d ' ' -f 4 | sed s/,// 

Das würde zum Beispiel "00: 08: 17.4" zurückgeben.

Sie können dies natürlich in einem Shell-Skript verwenden, so dass beispielsweise alle MP3-Dateien in einem Ordner und deren Dauer auf der rechten Seite aufgeführt werden.

#!/bin/bash # call me with mp3length.sh directory # e.g. ./mp3length .  # or ./mp3length my-mp3-collection  for file in $1/*.mp3 do echo -ne $file "\t" ffmpeg -i "$file" 2>&1 | egrep "Duration"| cut -d ' ' -f 4 | sed s/,// done 
4
albfan

Sie können es leicht mit oneliner bekommen:

$ for file in *.mp3; do mp3info -p "%S\n" "$file"; done | paste -sd+ | sed 's+\(.*\)+(\1)/60+' | bc 

Erklären:

  • mp3info : erhält individuelle mp3-Länge in Sekunden
  • Einfügen : Spaltenergebnis mit +als Trennzeichen zusammenführen
  • sed : addiere ()Summe und dividiere durch 60 (Minuten
  • bc : arithmetische Operation ausführen
2
spinodal

Sie können der Dateiliste in Windows Explorer eine Spalte hinzufügen. Fügen Sie dem Ordner die Eigenschaftslänge "Länge" hinzu. Wählen Sie dann alle MP3-Dateien im Ordner aus. Die Gesamtlänge wird im unteren Zusammenfassungsbereich von win.exp angezeigt.

(Nicht die gesamte Lösung für Ihre Frage, aber Sie sagten: "Jede Hilfe wäre dankbar: D)

Danke, das mache ich im Moment so ziemlich. Das Problem ist, dass sich diese Dateien auf vielen Festplatten befinden. Daher möchte ich diese Informationen zur Verwendung in Tabellenkalkulationen und dergleichen exportieren können, ohne dass dies alles manuell erfolgen muss. Anastasia vor 13 Jahren 0
1
Rahul Purush

Ein bisschen spät am Tag (Jahrzehnt!), Aber ich wollte genau das gleiche tun. Dank Windows Powershell ist hier ein kleines Skript, das ich heute geschrieben habe.

$path = '~\MS Subbulakshmi\1. Toronto 1977\' $shell = New-Object -COMObject Shell.Application $folder = $path $shellfolder = $shell.Namespace($folder) $total_duration = [timespan] 0 foreach($file in Get-ChildItem $folder) { $shellfile = $shellfolder.ParseName($file.Name) $total_duration = $total_duration + [timespan]$shellfolder.GetDetailsOf($shellfile, 27); } Write-Host "Total Duration of $folder is $total_duration" 

Die Ausgabe wäre ungefähr so

Gesamtdauer von ~ \ MS Subbulakshmi \ 1. Toronto 1977 ist 01:52:28