PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Audio-Dateien nach Bitrate suchen / kaputte Dateien suchen



michiS
09.04.08, 12:35
Hallo, ich habe zwei mit einander verwandte Probleme:
Ich habe eine Musiksammlung (hauptsächlich MP3, einige Vorbis & Co dateien).
1.) Leider gibt es hier immer wieder einzelne Dateien, welche unnötig Platz verbrauchen, da sie unsinnige Bitrates verwenden. Bsp: CD-Rip-MP3 mit 500 KB/s. Wie kann ich solche Dateien ausfindig machen? Suche nach Dateigröße bringt nichts. das die Tracks zwischen 30 Sek. und 1,5 Stunden lang sein können.
2.) Leider gibt es auch immer wieder kaputte Dateien, die entweder gar nicht oder nur mit Aussetzern gespielt werden können. Ich erinnere mich dunkel einmal von einem Win-Programm gehört zu haben, welches solche Dateien findet. Gibt es auch eine Möglichkeit das unter Linux zu machen?

Ich wäre euch für Antworten dankbar...

Michi

buzz768
09.04.08, 17:00
Zu 1)
Gezielt bestimmte Eigenschaften von Multimediadateien anzeigen kann MediaInfo (http://mediainfo.sourceforge.net/), gibt es dort zum selbst kompilieren oder auch als fertiges Binary.


mediainfo --inform="Audio;%BitRate%" file.mp3

liefert die Bitrate von file.mp3 in Bits pro Sekunde. Das lässt sich dann mit find -exec kombinieren, jedoch ist MediaInfo meiner Erfahrung nach sehr langsam, wenn es für jede Datei einzeln aufgerufen wird, deshalb würde ich mit xargs mehrere Dateien in einem Rutsch an mediainfo übergeben, z.B. so


find /pfad -name "*.mp3" -fprint files.txt -print0 | xargs -0 mediainfo --inform="Audio;%BitRate%\n" > bitrates.txt

In files.txt stehen dann zeilenweise die gefundenen Dateien, in bitrates.txt die zugehörigen Bitraten. bitrates.txt hat dann noch DOS-Zeilenumbrüche, das lässt sich mit


dos2unix bitrates.txt

beheben. Mit


paste bitrates.txt files.txt > data.txt

lassen sich beide Dateien zur besseren Übersicht zeilenweise zusammenführen.

El-Biero
09.04.08, 19:01
Hallo
um die Bitraten schnell feststellen zu können genügt einfach mpg123 mal einfach ein

mpg123 -n 1 -t /Pfad/zu/Musikordner/*.mp3

n bedeutet das er nur 1 Frame liest t ist Test.
Dadurch bekommst nur Musikinfos TitelAutor ect. und die Bitrate.

Tschau El-Biero

michiS
13.04.08, 11:27
Hallo,
danke für die antworten. Ich hatte leider erst jetzt Zeit es auszuprobieren (Geburtstagsstress...).
1) zur Lösung von buzz768:
Ich habe es in einem Unterorder meiner Sammlung (~680 Dateien) ausprobiert. Als es nach ~10 Stunden immer noch nicht war habe ich es abgebrochen. Ist es wirklich so langsam, oder hin es in einer Dauerschleife o.ä.?

2) zur Lösung von El-Biero:
Wenn ich das auf eine einzelne Datei anwende, geht es. Wenn ich es jedoch mit *.mp3 auf mehrere Dateien anwende, zeigt es nur die Infos der ersten Datei an.


Michi

michiS
13.04.08, 11:51
Hallo, jetzt habe ich mir aus beiden Lösungen eine gebastelt:

find -name "*.mp3" -fprint files.txt -exec mpg123 -n 1 -t {} \; 2>&1 | grep kbit/s | awk -F, '{print $2}' > bitrates.txt
paste bitrates.txt files.txt > data.txt
sort data.txt > data_sorted.txt


Das scheint soweit zu funktionieren. Auch die Geschwindigkeit ist erträglich: 20 Sek. für 680 Dateien => Pro Minute 2.000 Dateien.
Also, danke für die Hilfe!

Jetzt bräuchte ich noch etwas um die kaputten Dateien zu finden...

Grüße,
Michi

buzz768
13.04.08, 13:44
Ich habe es in einem Unterorder meiner Sammlung (~680 Dateien) ausprobiert. Als es nach ~10 Stunden immer noch nicht war habe ich es abgebrochen. Ist es wirklich so langsam, oder hin es in einer Dauerschleife o.ä.?

Hm, hier hat es für 867 Dateien etwas mehr als 2 Minuten gebraucht.


Jetzt bräuchte ich noch etwas um die kaputten Dateien zu finden...

Vielleicht hilft mpck (http://mpck.linuxonly.nl/) dabei. Evtl. kannst du die Dateien auch mit mp3val (http://mp3val.sourceforge.net/) reparieren.

marce
13.04.08, 14:13
wird die benötigte Info auch nicht einfach durch "file" ausgeworfen?
ein
file * in einem entsprechenden Ordner mit MP3s hier zumindest gibt auch die Bitrate aus...

buzz768
13.04.08, 15:18
Leider nicht immer, bisweilen heißt es da nur


Audio file with ID3 version 23.0 tag, MP3 encoding

Auch mpg123 zeigt die Bitrate nicht immer an (bei Dateien mit variabler Bitrate, glaube ich).

El-Biero
13.04.08, 18:54
hy dann probiers mal zuerst in den ordner zu wechseln wo die mp3 sind. Bei mir kannst auch erkennen obs absplielbar ist od nicht da er ja jedes file kurz antestet. Hab am schlussmal nur mit touch ein Ztest.mp3 file erstellt das er natürlich nicht abspielen kann da es ja keines ist. Somit spuckt er auch keine bitrate bzw MPEG layer Zeile aus. Sollte also auch bei einen kapputen nicht spielbaren sein.
Auszug daraus

[0:00] Decoding of Ulli Baer - Geh no net weg.mp3 finished.
Title : Sch�nes Madl Artist: Ulli Baer
Album : Gold Year :
Comment: Track 02 Genre : Dance

Playing MPEG stream from Ulli Baer - Schoenes Madl.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz stereo

[0:00] Decoding of Ulli Baer - Schoenes Madl.mp3 finished.
Title : Rund umd Weut Artist: Zabine
Album : Transalpin Year :
Comment: Genre : Other

Playing MPEG stream from Zabine - rund umd weut.mp3 ...
Junk at the beginning 49443303
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo

[0:00] Decoding of Zabine - rund umd weut.mp3 finished.

Playing MPEG stream from Ztest.mp3 ...

[0:00] Decoding of Ztest.mp3 finished.
[elbiero@Tuxbox Mp3s]$

sollten es sehr viele Files sein kannst es auch nach Anfangsbuchstaben durchsuchen, also A*.mp3 für alle mit a dann mit B ect. B*.mp3

Tschau El-Biero