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
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
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; }
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...
ich will schon meinen eigenen filter anwenden...deshalb muss ich es so machen...
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:
1 | 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.
ich will die samples schon direkt in c++ in einen buffer einlesen und kein skript bauen!
Ja, und? Kannst du doch. Das Skript kümmert sich nur um den mp3-Teil. Die Sampledaten landen in deinem Program.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.