Soundausgabe eines Streams



  • Hallo,
    ich habe mich bei C/C++ noch nie mit der Soundausgabe beschäftigt. Deshalb würde ich mich freuen, wenn ich hier Hilfe finden würde.

    Was ich machen will:
    Ich will einen Musik-Stream, den ich von einem weiteren Device streame, empfangen und anhören.

    Was momentan mein Programm macht:
    Ich habe die live555-Bibliothek gefunden, mit dem ich über RTP die Musik streamen kann. Über live555 kann ich auch das Empfangen machen. Dort wird momentan jedes Mal wenn ein Paket ankommt eine Funktion aufgerufen. Bis jetzt gibt sie die ankommende Ausgaben nur auf der Konsole aus.
    Über VLC können RTP-Streams angehört werden, weshab ich testen konnte, dass das Versenden der Musik über live555 grundlegend funktioniert.

    Nur wie ich es nun in meiner eigenen Methode, die die Musik einfach auf der Konsole ausgibt, so umbaue, dass die einkommenden Musik-Pakete an die Soundkarte weitergeleitet werden, weiß ich noch nicht.

    Ich habe bereits gegoogelt und weiß deshalb, dass es bei C++ Betriebssystem abhängig ist. Für den ersten Schritt ist es mir egal, ob ich es mit Linux oder Mac testen kann. Eventuell will ich es später bei einem Device direkt auf C-Ebene ohne Betriebssystem machen (das aber nur weit in die Zukunft gedacht, falls ich die ganze Thematik irgend wie durchblicke und mein Vorhaben überhaupt so funktioniert wie ich es mir vorstelle).

    Ich habe schon einige Bibliotheken gefunden. Aber noch nicht das geeignete. Einige können selbst schon mit RTP-Streams umgehen. Aber ich würde es gerne im ersten Schritt selber via live555 selber entgegen nehmen. Außerdem würde ich gerne eher lowlevel bleiben.
    Die Bibliotheken bieten Methoden an, mit denen ich Musik-Dateien öffnen kann, die sie dann wiedergeben. Aber ich habe noch nichts gefunden, bei denen ich selber sukzessive Musik-Daten hinschicken kann (ähnlich std::cout << musikdaten). Ich denke die Bibliotheken können es, aber dass ich noch nicht ganz durchgestiegen bin.

    Deshalb hoffe ich, jemand kann mir hier helfen, da dieses Probleme sicher des öfteren schon bearbeitet wurde.

    Vielen Dank.



  • Such mal nach portaudio. Das ist eine recht leichtgewichtige lib. Das API ist zwar C und nicht C++, aber trotzdem einfach zu benutzen. Und multiplattformfähig isses auch.



  • Auch OpenAL ist einen Blick wert.


Anmelden zum Antworten