AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

2 Fragen zu Mp3

Ein Thema von Gast · begonnen am 25. Jul 2006 · letzter Beitrag vom 25. Jul 2006
Antwort Antwort
Gast
(Gast)

n/a Beiträge
 
#1

2 Fragen zu Mp3

  Alt 25. Jul 2006, 10:24
Hallo,

da ich leider in diesem Gebiet ein Anfänger bin, frage ich euch nun um Hilfe, nachdem ich bei der Suche nichts passendes gefunden habe.
Ich habe vor ein Programm zu schrieben welches 2 Sachen machen könnte:

1. Man sollte 4 MP3 Dateien wählen können und dann sollten diese 4 verbunden werden und zu einer gemacht werden. Nacheinander halt.
2. Man sollte evtl. noch eine Hintergrund MP3 wählen können, welche dann im Hintergrund von der anderen MP3 Datei mitspielt.

Ich hoffe, dass man soetwas mit Delphi umsetzen kann und freue mich schon jetzt auf eure Hilfe.

Geändert von Daniel (27. Mai 2021 um 18:39 Uhr) Grund: //Name auf Wunsch des Autors entfernt.
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#2

Re: 2 Fragen zu Mp3

  Alt 25. Jul 2006, 10:25
Such mal im Forum nach "Bass" / BassPlayer da gibts ne komponente für MP3
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi
Online

Registriert seit: 17. Jul 2005
847 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: 2 Fragen zu Mp3

  Alt 25. Jul 2006, 11:00
Wenn die 4 Einzel-Mp3s nur Musik enthalten, eine konstante Bitrate haben, und keine weiteren Informationen (auch keine ID3-Tags!), dann kann man sie einfach ineinanderkopieren. Also einen großen Filestream, und die vier Dateien nacheinander da rüberkopieren.

Sind doch ID3-Tags (oder andere Tags oder Header vorhanden), wirds etwas komplizierter. Die sicherste Möglichkeit wäre dann, die einzelnen MPEG-Frames in den vier Dateien in eine neue zu kopieren.

Ich hatte mal ein Programm, was in einer MP3-Datei die Frames auseinanderfriemelt, aber da ist der Code verlorengegangen. Ich weiß nur noch, dass ein wichtiger Bestandteil die Funktion GetFrameLength aus meinen MP3FileUtils war, mit der man aus dem Frame-Header die Länge eines Frames ermitteln kann, um dann entsprechend viele Bytes zu kopieren.

Wenn die MP3s auch noch variable Bitrate haben, wirds noch ein bißchen komplizierter, da diese noch einen Xing-Header haben, den ich zwar lesen und teilweise auswerten kann, aber mich noch nicht damit beschäftigt habe, einen neuen zu schreiben. Zwar ist dieser nur optional, aber VBR-Dateien ohne diesen Header mag ich persönlich gar nicht (bzw. meine Unit mag die nicht)

Hintergrundmusik mit reinzukopieren dürfte direkt nicht möglich sein - da hilft nur ein dekodieren, zusammenfügen der beiden Dateien wie in einem Wave-Editor und anschließendes neues kodieren.

Mit der bass.dll kann man das nur so lösen, dass man als Ergebnis eine Wave-Datei erhält, die man dann z.B. mit Lame wieder kodieren könnte. Direkte Manipulation von mp3-Dateien (auch das zusammenkopieren) ist damit nicht möglich.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: 2 Fragen zu Mp3

  Alt 25. Jul 2006, 14:57
Zitat von Gausi:
Wenn die 4 Einzel-Mp3s nur Musik enthalten, eine konstante Bitrate haben, und keine weiteren Informationen (auch keine ID3-Tags!), dann kann man sie einfach ineinanderkopieren. Also einen großen Filestream, und die vier Dateien nacheinander da rüberkopieren.
Wieso die Bedingung mit der konstanten BitRate? bei VBR würde nur jeder Frame eine andere BitRate haben, das wäre doch egal für diesen Fall!

Zitat von Gausi:
Ich hatte mal ein Programm, was in einer MP3-Datei die Frames auseinanderfriemelt, aber da ist der Code verlorengegangen. Ich weiß nur noch, dass ein wichtiger Bestandteil die Funktion GetFrameLength aus meinen MP3FileUtils war, mit der man aus dem Frame-Header die Länge eines Frames ermitteln kann, um dann entsprechend viele Bytes zu kopieren.
Ich habe noch ein Programm rumliegen, welches dei Frames sucht und dann von Frame zu Frame die Datei durchgeht. War nur ein Test, funktioniert grundsätzlich und kann noch optimiert werden. Könnte ich auf Wunsch zur Verfügung stellen.
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi
Online

Registriert seit: 17. Jul 2005
847 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: 2 Fragen zu Mp3

  Alt 25. Jul 2006, 15:42
In der Regel ist der erste MPEG-Frame in einem VBR-MP3-File ein sogenannter Xing-Header, der zwar vom Header her mit einem MPEG-Frame kompatibel ist, aber keine Audio-Informationen enthält, sondern u.A. die Anzahl der Frames in der Datei (daraus eine schnelle Längenberechnung möglich) und ein Sprungstellenarray.
Wenn man das einfach mitkopiert, und davon mehrere in einer Datei hat, kommt es zum einen zu möglicherweise falschen Längenangaben bei einigen Playern (die nur den XING-Header auswerten, und nicht die ganze Datei), und zum anderen zu kleinen Knacksern bei der Wiedergabe, da zwischendurch ungültige Audio-Frames stecken.
  Mit Zitat antworten Zitat
Gast
(Gast)

n/a Beiträge
 
#6

Re: 2 Fragen zu Mp3

  Alt 25. Jul 2006, 16:18
Ersteinmal Danke für die Antworten, doch ich muss zugeben, dass es einfach eine Nummer zu hoch für mich ist und ich das ganze deswegen wohl am besten aufgebe :/ trotzdem vielen Dank.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz