komprimierte audiostreams mischen

Status
Nicht offen für weitere Antworten.
T

tuxedo

Gast
Hallo,

kennt jemand ne Quelle im Internet wo man was zum mischen (überlagern) von komprimierten Audiostreams nachlesen kann? Möchte sowas gerne mit Java realisieren.

Kenn mich mit der Materie (noch) nicht so gut aus. Aber ich könnte mir vorstellen dass das Misch-Verfahren stark von der Kompressionsart (Codec) abhängt und ob es sich um ein Verlustfreies oder Verlustbehaftetes Verfahren handelt.

Winamp kann mit dem Shoutcast-Plugin ja ähnliches. Da kann man MP3s ins Netz streamen und mit dem Mikrofon am Rechner dazwischenquatschen und quasi "ins Lied hinein moderieren". Zumindest ein Teil (die MP3) ist hier schon komprimiert.

Kann mir auch nicht wirklich vorstellen dass intern die MP3 wieder dekodiert, mit dem unkodierrten Mikrofonsignal gemischt, und dann neu als MP3 kompromiert und wieder gestreamed wird.

Teamspeak muss swas auch drin haben. Und da wäre es sicher "stressig" alle eingehenden Streams serverseitig zu dekodieren, mischen und neu zu kodieren.

Habe schon mit google gesucht. Lande aber immer wieder bei irgendwelchen Patenten die nicht näher beschrieben sind (nur das Abstrakt).

Gruß
Alex
 
G

Guest

Gast
Naja, sobald du eine PCM hast, ist das ganze ja verhältnismäßig einfach.
Du kannst mittels der Java Sound API die jeweiligen Audio-Streams (z.B. MP3 Datei, Mikrofon) dann einfach ineinanderlegen.
PCM sollte dir ja bekannst sein. Dann kannst du z.B. für den Zeitraum der Aufname die MP3 Datei um einen Faktor leiser schalten (Amplitute * x {x|x>1}) und dann den Mirkofonstream einfach dazuaddieren.

Grüße!

Sebastian
 
T

tuxedo

Gast
PCM ist dann aber schon "unkomprimiert" bzw. schon dekomprimiert.

Beispiel:

Vom Mic bekomme ich einen PCM-Audiostream. Den kann ich ja mit diversen Codecs (Speex, diverse VoIP-Codecs,...) komprimieren und übers Netz schicken. Wenn ich jetzt eine Konferenzschaltung haben möchte muss ich ja diese Ströme zusammenmischen.

Kann ich diese komprimierten Ströme im komprimierten Zustand mischen oder muss ich erst alle dekodieren, mischen und dann erneut kodieren?

- Alex
 
T

tuxedo

Gast
Ich nehme mal an dass hier nicht so viele Audio-Freaks unterwegs sind?
 
R

Roar

Gast
geht vermutlich nicht die zu mixen wenn die komprimiert sind.
du musst ja auch keine komprimierten streams mischen, ich nehme an das winamp plugin spielt auch gleichzeitig ab was er streamt also muss er sowieso dekodieren und bei videokonferenzen wird halt erst beim client gemixt. hier ne lösung wie das mit der java sound api geht: http://www.java-forum.org/de/viewtopic.php?t=47442
 
T

tuxedo

Gast
Naja, aber wenn ich erst beim Client mische hab ich x-fachen Traffic auf der Leitung. Teamspeak z.B. mischt definitiv serverseitig.

Hmm, okay. Je länger ich darüber nachdenke desto mehr denke ich dass der Mischvorgang komprimierter Streams wenn dann Codec-Abhängig ist. D.h. ich müsste für jeden Codec den ich in erwägung ziehe zu unterstützen eine eigene Misch-Routine schreiben. Aber dafür müsste ich erstmal in den Codec "eintauchen" und verstehen wie er funktioniert. Und selbst dann wird noch unklar sein obs überhaupt machbar ist.

- Alex
 
S

SmilingJ

Gast
nope .. TS mische definitif Clientseitig, so wie auch Vent und Mumble ... sonst wäre die down-stream rate nicht von der # der clients abhängig
 
T

tuxedo

Gast
??? Egal wieviele in einem TS-Channel sprechen, ob 1er oder 3 gleichzeitig: Ich habe immer nen konstanten Downstream... (zw. 3 und 4kbyte bei Speex 25kbit)

Wie erklärst du das dann?

Ich meine ich kann mich auch irren, aber du darfst mich gerne vom Gegenteil überzeugen....

- Alex
 
T

tuxedo

Gast
Hmm, muss mich korrigieren. Ich scheine immer im falschen Moment auf mein DU-Meter geschaut zu haben. TS mischt tatsächlich Clientseitig und schickt vom Server zum Client jeden Sprecherstream einzeln.

- Alex
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben