www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Suche MP3 to WAV decoder


Autor: I. L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

ich suche eine Software, die es mir ermöglicht MP§ oder WMA Datein in 
eine WAV Datei zu konvertieren. Dabei soll bei der WAV-Datei die 
Samplerate sowie Mono oder Stereo einstellbar sein. Ich möchte mir 
Datein erstellen, die ich später aufm AVR abspielen kann.

Leider ist das www zu voll damit, ich habe jetzt schon n paar Programme 
runtergeladen, die aber alle nicht das können.

Kann mir jemand ne einfaches Tool empfehlen?

Danke


Gruß Knut

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
probiers mal mit "lame"

Autor: Joachim K. (minifloat)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kann dir Audacity (mit lame lib für mp3 de-/encoding) sehr 
empfehlen, gibts für alle 3 großen Betriebssysteme. Geht gut, solang man 
die Stabilen Versionen benutzt.
mfg mf

Autor: Gerald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie kann ich mit lame eine mp3 datei in wav konvertieren?

folgendes funktioniert leider nicht;(

int main()
{
  int read, write;

    FILE *pcm = fopen("music_noisy.mp3", "rb");
    FILE *mp3 = fopen("music_noisy2.mp3", "wb");

    const int PCM_SIZE = 8192;
    const int MP3_SIZE = 8192;

  short int pcm_buffer[PCM_SIZE*2];
    short int pcm_buffer1[PCM_SIZE];
  short int pcm_buffer2[PCM_SIZE];
    unsigned char mp3_buffer[MP3_SIZE];

  mp3data_struct mp3data = {0};

  memset(pcm_buffer, 0, sizeof(pcm_buffer));
  memset(pcm_buffer1, 0, sizeof(pcm_buffer1));
  memset(pcm_buffer2, 0, sizeof(pcm_buffer2));
  memset(mp3_buffer, 0, sizeof(mp3_buffer));

    lame_t lame = lame_init();
  hip_t l = hip_decode_init();
    lame_set_in_samplerate(lame, 44100);
    lame_set_VBR(lame, vbr_default);
  //lame_set_mode(lame, MONO);
    lame_init_params(lame);

    do {
    read = fread(mp3_buffer, sizeof(unsigned char), MP3_SIZE, pcm);
    read = hip_decode_headers(l, mp3_buffer, MP3_SIZE, pcm_buffer1, 
pcm_buffer2, &mp3data);

    // nun haben wir die mp3 daten als wav in pcm_buffer1 und 
pcm_buffer2

    memcpy(pcm_buffer, pcm_buffer1, sizeof(pcm_buffer1));
    memcpy(&pcm_buffer[PCM_SIZE], pcm_buffer2, sizeof(pcm_buffer2));
        write = lame_encode_buffer_interleaved(lame, pcm_buffer, read, 
mp3_buffer, MP3_SIZE);
        fwrite(mp3_buffer, write, 1, mp3);
  } while (read != 0);

  hip_decode_exit(l);
    lame_close(lame);
    fclose(mp3);
    fclose(pcm);

    return 0;
}

Autor: Nicki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm doch einfach Winamp. Der kann das.

Autor: Gerald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich meinte wie kann man die mp3 datei einlesen in wav konvertieren und 
dann wieder abspeichern...

mit dem wav samples kann ich dann einen tiefpass filter anwenden...

Autor: Gerald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich will schon meinen eigenen filter anwenden...deshalb muss ich es so 
machen...

Autor: Rolf Magnus (rmagnus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Muß dein Programm die Konvertierung unbedingt selber machen? Du könntest 
auch ein kleines Skript basteln, das das über Pipes extern macht, etwa 
in der Art:
mpg123 input.mp3 --wav - | deinprogramm | lame - output.mp3
(ggf. noch mit den gewünschten Qualitätseinstellungen)


Dann kanst du die wav-Daten direkt von stdin lesen und das Ergebnis auf 
stdout wieder rausschreiben.

Autor: Gerald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich will die samples schon direkt in c++ in einen buffer einlesen und 
kein skript bauen!

Autor: Rolf Magnus (rmagnus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, und? Kannst du doch. Das Skript kümmert sich nur um den mp3-Teil. 
Die Sampledaten landen in deinem Program.

Autor: Johnny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Gerald,

hast Du den Code mal zum Laufen bekommen?

Best
J

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.