hallo!
ich weis, ich habe schonmal eine frage gestellt, die etwas hiermit zu tun hatte, doch haben mir die daraufgefolgten antworten nicht wirklich bei meinem jetzigen problem weitergeholfen.
mein ziel ist folgendes:
1. aufnahme von sprache ueber ein mikrofon
2. senden der daten zu einem server
3. server mischt daten mit denen anderer gespraechsteilnehmer
4. server verteilt gemischte tonspuhren an alle anderen clients
5. alle clients spielen unterbrechungsfrei den stream vom server ab
meine probleme sind nun:
- punkt 1 und 2, da ich nicht weis, wie ich einen ununterbrochenen stream der aufgenommenen daten zum server senden kann.
- punkt 3, weil ich nicht weis, wie ich mehrere tonspuhren mischen kann.
- punkt 5, da ich nicht weis, wie ich einen solchen stream unterbrechungsfrei spielen kann.
- ausserdem: welchen codec sollte ich verwenden? oder sollte ich in wave aufnehmen und dann die daten irgendwie komprimieren?
mir fehlt hier im moment einfach der anfang...
traumhaft waere natuerlich eine plattformunabhaengige loesung, aber da das mit sehr großer wahrscheinlichkeit sowieso nicht gehen wird, ist es auch okay, wenn es nur unter windows laeuft.
es waere sehr schoen, wenn ihr mir hinweise und codeschnipsel geben koenntet!
vielen dank schonmal im vorraus!
lg
roschi
Sprachaufnahme, -uebertragung und -ausgabe
@roschi: Für's "unterbrechungsfreie" Senden der Daten zum und vom Server würde ich UDP verwenden. Wenn da Pakete nicht ankommen, oder aus der Reihe tanzen, kann man die einfach verwerfen.
Muss unbedingt auf dem Server gemischt werden? Das würde bei komprimiertem Audio ja bedeuten, das dort alles dekomprimiert, gemischt und neu komprimiert werden muss. Dauert dort extra Zeit und die Qualität sinkt bei erneutem komprimieren. Es ist eventuell günstiger einfach die komprimierten Daten von allen an die Clients zu verteilen und die dort dekomprimieren und mischen zu lassen. Das Mischen kann dann eventuell sogar in Hardware geschehen, wenn die Soundkarte beim Empfänger das unterstützt.
Passendes, freies Komprimierungsformat für Sprache wäre beispielsweise `speex`.
Letztlich die Frage: Musst Du das wirklich selber implementieren? Kannst Du nicht einfach einen Asterisk aufsetzen, oder Teamspeak verwenden!?
Muss unbedingt auf dem Server gemischt werden? Das würde bei komprimiertem Audio ja bedeuten, das dort alles dekomprimiert, gemischt und neu komprimiert werden muss. Dauert dort extra Zeit und die Qualität sinkt bei erneutem komprimieren. Es ist eventuell günstiger einfach die komprimierten Daten von allen an die Clients zu verteilen und die dort dekomprimieren und mischen zu lassen. Das Mischen kann dann eventuell sogar in Hardware geschehen, wenn die Soundkarte beim Empfänger das unterstützt.
Passendes, freies Komprimierungsformat für Sprache wäre beispielsweise `speex`.
Letztlich die Frage: Musst Du das wirklich selber implementieren? Kannst Du nicht einfach einen Asterisk aufsetzen, oder Teamspeak verwenden!?
- roschi
- User
- Beiträge: 225
- Registriert: Samstag 29. März 2008, 18:58
- Wohnort: Thueringen, Deutschland
- Kontaktdaten:
ja, das werde ich machen... aber dann brauch ich ja noch einen extra verbindung, zum steuern?!BlackJack hat geschrieben:@roschi: Für's "unterbrechungsfreie" Senden der Daten zum und vom Server würde ich UDP verwenden. Wenn da Pakete nicht ankommen, oder aus der Reihe tanzen, kann man die einfach verwerfen.
der server sollte schon mischen, damit die clients (haben nur geringe bandbreite) nicht soviel traffic haben. der server hat aber eine bessere anbindung ans netz.BlackJack hat geschrieben:Muss unbedingt auf dem Server gemischt werden? Das würde bei komprimiertem Audio ja bedeuten, das dort alles dekomprimiert, gemischt und neu komprimiert werden muss. Dauert dort extra Zeit und die Qualität sinkt bei erneutem komprimieren. Es ist eventuell günstiger einfach die komprimierten Daten von allen an die Clients zu verteilen und die dort dekomprimieren und mischen zu lassen. Das Mischen kann dann eventuell sogar in Hardware geschehen, wenn die Soundkarte beim Empfänger das unterstützt.
ja, das habe ich mir auch schon angeschaut. aber die letzte kompilierte version ist fuer python 2.2, und das wollte ich eigendlich nicht nutzen.BlackJack hat geschrieben:Passendes, freies Komprimierungsformat für Sprache wäre beispielsweise `speex`.
Teamspeak ist nicht frei, und darauf kommt es mir an. Asterix... sieht auf den ersten blick interessant aus, aber nach dem wikipedia-artikel scheint es mir so, als waere ein telefon noetig? ich will keine telefonanlage bauen, sondern einfach nur eine sprachkonferenz machen, mit eniem zentralen server, auf den sich dann 3 bis 4 leute verbinden und miteinander reden.BlackJack hat geschrieben:Letztlich die Frage: Musst Du das wirklich selber implementieren? Kannst Du nicht einfach einen Asterisk aufsetzen, oder Teamspeak verwenden!?
vielen dank schonmal!
lg
roschi
[size=117]Fuer Alle, die in Python einsteigen wollen, kann ich das Buch [url=http://abop-german.berlios.de/]A Byte of Python[/url] nur waermstens empfehlen![/size]
Für Asterisk ist kein Telefon nötig. Es gibt Telefone, die das SIP-Protokoll beherrschen, und die kann man mit Asterisk verwenden, aber ansonsten gibt's auch Software-"Telefone" wie zum Beispiel Ekiga oder QuteCom.
Als Teamspeak-Ersatz taugt vielleicht auch das freie Mumble-Projekt!?
Als Teamspeak-Ersatz taugt vielleicht auch das freie Mumble-Projekt!?
- roschi
- User
- Beiträge: 225
- Registriert: Samstag 29. März 2008, 18:58
- Wohnort: Thueringen, Deutschland
- Kontaktdaten:
hallo BlackJack!
ich werde mir wahrscheinlich mal asterisk anschauen, denn da gibts ja auch windows-portierungen.
lg
roschi
ah okay, also setzt der einfach nur einen SIP-server auf.BlackJack hat geschrieben:Für Asterisk ist kein Telefon nötig. Es gibt Telefone, die das SIP-Protokoll beherrschen, und die kann man mit Asterisk verwenden, aber ansonsten gibt's auch Software-"Telefone" wie zum Beispiel Ekiga oder QuteCom.
mumble habe ich schon getestet. es ist aber leider mit QT4 gemacht, und da die meisten der gespraechsteilnehmer screenreader nutzen, und ich keinen screenreader kenne, der mit QT4-anwendungen zurecht kommt, kann ich das auch vergessen. ansonsten hat mir mumble recht gut gefallen. nur eine seltsame sache ist dabei passiert: ich habe das mit 2 gespraechsteilnehmern getestet. der andere konnte mich hoeren, aber ich den anderen nicht, obwohl bei ihm sein eigenes sendesymbol geleuchtet hat... aber wie gesagt: ansonsten ist mumble ganz gut.BlackJack hat geschrieben:Als Teamspeak-Ersatz taugt vielleicht auch das freie Mumble-Projekt!?
ich werde mir wahrscheinlich mal asterisk anschauen, denn da gibts ja auch windows-portierungen.
lg
roschi
[size=117]Fuer Alle, die in Python einsteigen wollen, kann ich das Buch [url=http://abop-german.berlios.de/]A Byte of Python[/url] nur waermstens empfehlen![/size]
- roschi
- User
- Beiträge: 225
- Registriert: Samstag 29. März 2008, 18:58
- Wohnort: Thueringen, Deutschland
- Kontaktdaten:
oh je!
asterisk ist mir einfach zu kompliziert.
ich glaube, ich werde wohl doch irgendwas nehmen muessen, das nicht frei ist... obwohl ich das eigendlich gar nicht will, aber was solls.
trotzdem vielen dank!
lg
roschi
asterisk ist mir einfach zu kompliziert.
ich glaube, ich werde wohl doch irgendwas nehmen muessen, das nicht frei ist... obwohl ich das eigendlich gar nicht will, aber was solls.
trotzdem vielen dank!
lg
roschi
[size=117]Fuer Alle, die in Python einsteigen wollen, kann ich das Buch [url=http://abop-german.berlios.de/]A Byte of Python[/url] nur waermstens empfehlen![/size]
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Du kannst ja einen CLI oder GTK+ Client für Mumble machen. Das ist vermutlich einfacher als es selbst zu implementieren, da man quasi nur beim Qt-Client die GUI austauscht.
Btw: Qt (das Produkt von Qt Software) != QT (QuickTime)
Btw: Qt (das Produkt von Qt Software) != QT (QuickTime)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- roschi
- User
- Beiträge: 225
- Registriert: Samstag 29. März 2008, 18:58
- Wohnort: Thueringen, Deutschland
- Kontaktdaten:
hallo!
lg
roschi
edit: peinlicher zitat-fehler gefixt
na ich weis ja nicht. mumble hat ein recht kompliziertes rechte- und kanalsystem. ich moechte ja auch nicht mehrere kanaele in meinem projekt haben, oder besser "ich brauche es nicht." - sondern einfach nur eine einzige konferenz... mag sein, dass ich mich irre, aber ich denke, einen mumble-client zu implementieren, ist nicht so einfach.Leonidas hat geschrieben:Du kannst ja einen CLI oder GTK+ Client für Mumble machen. Das ist vermutlich einfacher als es selbst zu implementieren, da man quasi nur beim Qt-Client die GUI austauscht.
Leonidas hat geschrieben:Btw: Qt (das Produkt von Qt Software) != QT (QuickTime)
lg
roschi
edit: peinlicher zitat-fehler gefixt
Zuletzt geändert von roschi am Dienstag 10. März 2009, 21:07, insgesamt 1-mal geändert.
[size=117]Fuer Alle, die in Python einsteigen wollen, kann ich das Buch [url=http://abop-german.berlios.de/]A Byte of Python[/url] nur waermstens empfehlen![/size]
- roschi
- User
- Beiträge: 225
- Registriert: Samstag 29. März 2008, 18:58
- Wohnort: Thueringen, Deutschland
- Kontaktdaten:
aber mumble ist nicht in python gehackt.
lg
roschi
lg
roschi
[size=117]Fuer Alle, die in Python einsteigen wollen, kann ich das Buch [url=http://abop-german.berlios.de/]A Byte of Python[/url] nur waermstens empfehlen![/size]
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Was nicht unbedingt ein Hinderungsgrund sein muss. Ich weiß nicht was so deine Fähigkeiten sind.roschi hat geschrieben:aber mumble ist nicht in python gehackt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- roschi
- User
- Beiträge: 225
- Registriert: Samstag 29. März 2008, 18:58
- Wohnort: Thueringen, Deutschland
- Kontaktdaten:
Python, und ein ganz klein wenig C-grundlagen.Leonidas hat geschrieben:Was nicht unbedingt ein Hinderungsgrund sein muss. Ich weiß nicht was so deine Fähigkeiten sind.roschi hat geschrieben:aber mumble ist nicht in python gehackt.
[size=117]Fuer Alle, die in Python einsteigen wollen, kann ich das Buch [url=http://abop-german.berlios.de/]A Byte of Python[/url] nur waermstens empfehlen![/size]