Announcement

Collapse
No announcement yet.

MP3-Interna

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • MP3-Interna

    Hallo,

    ich wage mich gerade an das Thema MP3. Mittlerweile bin ich soweit, dass ich die ID3Tags auslesen kann. Da ich aber zusaetzlich auch dem User die Moeglichkeit bieten moechte, MP3-Dateien zu einer zu kombinieren, bin ich nun am Informationen zusammentragen. Leider hilft mir Googlen nicht weiter.

    Wenn ich zwei Dateien zusammenfasse, bleibt als angezeigte Spieldauer im Windows-Explorer immer die Dauer des ersten Songs stehen. Winamp zeigt die Titellaenge richtig an. Handelt es sich um VBR-codierte MP3s, versagen Winamp und der Explorer.
    Was muss ich setzen, um die Songdauer anzupassen oder wird die Dauer des Titels aufgrund der Bitrate und der Anzahl der Frames berechnet (dann muss ich vermutlich die Datei von eventuellem Datenmuell befreien)?

    Wenn sich niemand damit auskennt, waere ich auch mit einem Hinweis auf eine Website zufrieden....

    Vielen Dank schonmal im Voraus.
    Andre

  • #2
    Wie willst du denn die MP3 Dateien "Kombinieren"? Ein einfaches hinten anhängen der Datei an eine andere darf man natürlich nicht machen

    Comment


    • #3
      meine Hoffnung war/ist, dass ich die ID3-Header/Footer rausschmeisse und dann den Rest aneinanderhaenge...

      Comment


      • #4
        Soweit ich weiss Funktioniert das nicht, aber ich habe auch nur grundwissen

        Comment


        • #5
          hmm, mal abwarten, was noch kommt...
          Prinzipiell funktioniert es ja schon, soll heissen, die Files sind abspielbar. Waere nur irgendwie nett, wenn die Daten auch stimmen wuerden

          Comment


          • #6
            Hallo und guten Morgen,

            ich versuche mal, zusammenzufassen, wie ich den Aufbau einer MP3-Datei verstehe:

            [ID3v2Header]
            [XING-Header]
            Frames mit Musik, jder Frame mit MPEG-Header
            [ID3v2Footer]
            [ID3v1Tag](letzte 128Byte)

            (keine Ahnung, was der XING-Header soll und ob der immer da ist)

            Wenn dem so sein sollte, muesste ich doch eigentlich die Header und Footer abschneiden und zusammenketten koennen, oder?
            Gilt das fuer constante Bitraten(cbr) und variable Bitraten (vbr)?

            Der Footer, wenn der es ist, ist leider offensichtlich oft vermurkst. Jedenfalls stehen in den mp3-Dateien oft am Ende bei lame-encodierten Dateien eine mehrfache Nennung von 'Lame3.92'. Oder handelt es sich hier um andere Daten, die der Auswertung beduerfen?

            Auf den Webseiten von LAME bin ich auch nicht fuendig geworden.

            Vielen Dank nochmal...
            Andr

            Comment


            • #7
              Nach langwieriger Recherche bin ich mir nun sicher, dass ich auf dem richtigen Weg bin. Die Idee, die Tags einfach abzuschneiden und die MPEGFrames aneinanderzuhaengen ist offensichtlich der richtige Weg. Bleibt noch eine Frage, die ich nicht klaeren kann:

              Da ich bisher nichts mit byteweisem Schreiben in eine Datei zu tun hatte, bin ich nun etwas unbeholfen, wie ich die Anzahl der Frames aktualisiere. Mir ist die Stelle bekannt und ich ich finde dort natuerlich auch hin:

              fmZiel.Seek(fPosMPEG+44,soFromBeginning);
              fmZiel.Write(buffer,4);

              Aber wie formatiere ich den Buffer? Der Inhalt des Buffers sollte ein DWORD Big-Endian sein (4Byte). Der mir vorliegende Wert ist ein longint. Dieser soll also an dieser Stelle plaziert werden.

              <B>Den buffer als word deklariert und den Longint einfach reinschreiben</B> scheint nicht zu funktionieren, oder die Anzahl der von mir ermittelten Frames stimmt nicht.

              Und wieder einmal vielen Dank im Voraus,
              Andre
              &#10

              Comment


              • #8
                Hallo Andre,
                konntest Du damals das Problem lösen? Hast Du vielleicht sogar einen Code, den Du mir geben könntest, um mp3s zu kombinieren? Das wäre super.
                Gruß Markus

                Comment

                Working...
                X