Autor Beitrag
Boromir
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 45



BeitragVerfasst: Sa 25.01.03 15:02 
Hi,

gibt es eine Möglichkeit zwei Wave oder MP3 Dateien mit einander zu vergleichen?

THX
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Sa 25.01.03 16:06 
du könntest beide dateien in ihre Frames aufdröseln und die vergleichen, aber ich glaube das da nicht wirklich einfach ist !

_________________
In the beginning was the word.
And the word was content-type: text/plain.
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: Sa 25.01.03 18:03 
Och, so schwer ist das theoretisch gar nicht.
In Wave-Dateien werden die Samples als Zahlen gespeichert. Jedes Sample hat also pro Kanal eine Zahl. Die Kanäle sind laut SDK immer abwechselnd (also links, rechts, links, rechts, links, usw) gespeichert. Die Zahlen haben eine Länge von BitsPerSample Bit. Also entweder 8bit oder 16bit bei Standard-Waves. Um zwei Wave-Dateien zu vergleichen reicht es also, bei der eigentlichen Tonspur anzufdangen (bei raw-Dateien hat sich rausgestellt, daß sie gleich am Anfang der Datei ist, wie's bei Waves aussieht, habe ich selbst hier gefragt weil ich's wissen muss) und dann jeweils die Samples einzulesen. Dabei empfiehlt sich ein Buffer, denn da die Vergleiche sind realtiv schnell sind(if Zahl1 = Zahl2 ;-) ) müsstest du relativ oft vom Stream lesen, was die Sache wieder verlangsamen würde. Bei MP3s sieht's ähnlich aus. Nur musst du da vorher dekodieren. Hier sind die Samples nämlich zusammengefasst und durch psychoakustische Verfahren "rausgeschnitten" worden, um die Datei kleiner zu kriegen. Durch die Dekodierung bekommst du aber wieder die "reinen" Samples, die jedoch nicht identisch zur Urprungsdatei sind. Du kannst also MP3s mit MP3s vergleichen, Wavs mit Wavs, aber nie MP3s mit WAVs. Wie genau man die MP3-Dateien dekodieren kann, weiß ich nicht, auch dafür bin ich nämlich noch auf der Suche nach einer Lösung.
Einfacher wäre es allerdings, die Dateien binär zu vergleichen. Dann musst du dich gar nicht um das Format kümmern. Zwar gilt auch hier, daß du MP3s nicht mit WAVs vergleichen kannst, aber die Header und alles, was sonst nicht zum Ton gehört, wird mitverglichen und du musst dich nicht mehr um die Dekomprimierung der Dateien kümmern.

Übrigens ist das mit MP3-Dateien noch schwieriger: Wenn du eine WAV-Datei hast, und die zweimal ins MP3-Format umwadelst, einmal mit 128kbit/s und einmal mit 160kbit/s, dann sind diese beiden resultierenden MP3s nicht identisch. Sowohl beim binären Vergleich, als auch bei vorherigem Dekodieren. Es müssen also jeweils der gleiche Encoder (denn auch da gibt es unterschiede), die gleiche Bitrate und das gleiche Lied genommen werden.

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: So 26.01.03 11:57 
also MP3 zu Wave geht doch mit der Engine DLL von Lame oder ???

_________________
In the beginning was the word.
And the word was content-type: text/plain.
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: So 26.01.03 12:35 
jahaaa, das habe ich früher auch immer gedacht. Bis ich es jetzt brauche und ich rausgefunden habe, daß die LAME_END.DLL von Razor nur Wave -> MP3, aber nicht andersrum macht. Klar, mit LAME an sich funktioniert's, aber dann braucht man viel C-Wissen und einen entsprechenden compiler, der dir eine 2-Wege-DLL rausmacht. Wie gesagt, wie ich MP3s wieder dekodieren kann, würde ich selber gerne wissen.

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert