2 Stimmen

Wie könnte getUserMedia effizient an einen Server streamen?

Derzeit kann ich mit getUserMedia eine Blob-URL verwenden, um die (Audio-)Daten direkt zurückzuleiten. Ich möchte jedoch in der Lage sein, Rohdaten daraus zu erhalten. Ist die Blob-URL eine Art "schwarze Magie", die nutzlos wird, sobald die Seite geschlossen ist? Enthält sie tatsächlich Daten oder nur einen Zeiger auf einen Speicherstrom? Wenn ich versuchen würde, diesen Blob in einem anderen Browser zu öffnen, würde das gelingen?

Noch mehr, was ist der beste Weg, um das Stream-Objekt direkt von getUserMedia zu erhalten und die Rohaudio-Daten zu senden (ich interessiere mich nicht für den Socket-Code selbst, sondern wie würden Sie einfach ein Beispiel nehmen)? Ich möchte letztendlich mit einer minimalistischen VoIP-ähnlichen App herumspielen.

Aktuell verwende ich ein Codebeispiel wie dieses:

navigator.webkitGetUserMedia({audio: true}, function(stream){
 console.log(window.URL.createObjectURL(stream));
}, function(){
    console.log("ABLEHNUNG!");
});

Ich möchte jedoch in der Lage sein, die Stream-Variable zu nehmen und tatsächlich greifbare Daten zu erhalten, etwas, das ein anderer Client analysieren und verarbeiten könnte.

1voto

@bobbybee, wie @konga-raju in seiner Antwort auf eine sehr ähnliche Frage hinweist, ist die Implementierung in den Browsern noch nicht fertig. Sie können jedoch versuchen, dies zu umgehen, indem Sie das Video als WebM aufzeichnen (mit einem Canvas-Trick) + Audio (codiert in WAV/MP3 mit RecorderJS) in separaten Tracks aufnehmen, sie auf Ihren Server schieben und sie wieder zusammenfügen. Siehe RecordJS dafür und diese zwei Fragen. Im Moment macht es jedoch noch keine AV zusammen, sodass Sie damit herumspielen müssten, um dies zu ermöglichen.

Oder Sie könnten einfach ein paar Wochen warten, bis die Aufzeichnungs-Implementierung in einer Version von Chrome landet. :)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X