Thema: Delphi mp3 schneiden?

Einzelnen Beitrag anzeigen

Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
878 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: mp3 schneiden?

  Alt 13. Mai 2007, 11:04
Ja, es geht. Eine mp3-Datei ist ja (abgesehen von ID3Tags) aus vielen MPEG-Frames aufgebaut. Jeder dieser MPEG-Frames besitzt einen 4 Byte großen Header, aus dem unter anderem die Bitrate, aber auch die Framelänge (in Bytes) hervorgeht. Jeder Frame hat afaik eine bestimmte Spieldauer (evtl abhängig von Bitrate/Samplerate etc, aber das weiß ich grade nicht auswendig).
Die einzelnen Frames sind (größtenteils) voneinander unabhängig, so dass man das mp3-File an den Framegrenzen (fast) verlustfrei schneiden kann. Die Einschränkungen deswegen, weil der MP3-Codec es durchaus vorsieht, dass sich Frames, in denen "viel passiert", Speicher von benachbarten Frames "ausborgen" können. Wie man da erkennt, weiß ich allerdings nicht.

Ich hatte mal ein Programm, was die einzelnen Frames einer MP3-Datei permutiert hat und wieder zurücksortieren konnte, aber da ist der Code verlorengegangen. In meinen MP3FileUtils ist aber eine MPEG-Klasse enthalten, mit deren Hilfe man mit ein bissel zusätzlicher Arbeit die Datei in seine Einzelframes aufbröseln kann. Die wichtigste Funktion dürfte "GetFrameLength" (oder so ähnlich) sein. Mit deren Hilfe kann man sich recht leicht durch die Datei hangeln und die einzelnen Frames in ein Array oder so packen. Dann nimmt man einfach soundsoviele dieser Einzelframes und schreibt diese in eine neue Datei.
  Mit Zitat antworten Zitat