Die Antwort ist ziemlich nein ... nun, es ist einfach nicht, um ehrlich zu sein.
@drudru wies die richtige Technologie für Flash P2P, d.h. Stratus.
Flash p2p basiert auf RTMFP, das auf UDP basiert. Eigentlich bindet Flash einen Port, aber das kommt von den Interna. Es gibt keine API, um das manuell zu tun.
RTMFP erlaubt grundsätzlich zwei Dinge:
- UDP-Streaming (unzuverlässig, aber schnell) für Video und Audio. Von Flash-Seite können Sie nur Ihre Kamera und Mikrofon-Stream veröffentlichen. Vom Server fast alles.
- Ausführen von Remoteaufrufen an den anderen Endpunkt der P2P-Verbindung. Dies kann zum Übertragen von Daten verwendet werden. Diese Kommunikation ist gesichert, d. H. Die Reihenfolge und Integrität der Pakete wird durch den Flash-Player aufrechterhalten.
Der P2P basiert auf NAT-Durchgriffen. Stratus selbst ist der Einführungsserver. Aus Sicherheitsgründen bedeutet eine P2P-Verbindung auch, dass beide Clients eine Verbindung zum Server haben müssen, wenn sie sich im Leerlauf befinden (wenn ich mich richtig erinnere). Ich denke, ein bisschen Daten werden natürlich übertragen, aber nicht die Nutzlast.
Allerdings ist das Torrent-Protokoll davon sehr verschieden. Daher ist dies keine Option. Sie könnten ein gleichwertiges Protokoll oben auf RTMFP aufbauen, den Stratus-Dienst reverseengineering (oder warten, bis es offen ist). Dies könnte natürlich auch von Nicht-Flash-Clients verwendet werden. Aber noch einmal, Sie wären nicht in der Lage, die übertragenen Daten als Video zu sehen, da Sie als Parameter für einen Anruf an den Client Ihrer NetStream
, wahrscheinlich eine ByteArray
erhalten. Und Sie können nicht ByteArray
s wiedergeben. Sie könnten Nicht-Flash-Clients schreiben, die Videos als Stream veröffentlichen, aber das wäre weit entfernt von dem, was Sie wollten, denke ich.
Wenn Sie wirklich so etwas machen wollen, brauchen Sie Java. Sie können Java-Applets signieren, und wenn Benutzer das Zertifikat akzeptieren, haben sie praktisch uneingeschränkten Zugriff, z. Sie könnten Ports binden. Da Java UDP ausführen kann, könntest du ein Java-Applet haben, das das Torrent-Verfahren ausführt (vielleicht nur die Vuze-Codebase) und wenn du es wirklich im Flash anzeigen willst (was wiederum flv erfordert), dann könntest du ein lokales " Flash Media Server "und veröffentlichen Sie das Video auf localhost: someport. Aber wirklich, das Flash-Bit scheint lächerlich kompliziert und nutzlos für mich. Versuchen Sie lieber mit Java zu spielen, das hoffentlich eine Option dafür hat.
Danke, ziemlich vollständige Antwort. – snitko
Das klingt so sehr nach dem, was Ninjavideo mit ihrem Ninjavideo-Helfer macht, außer dass sie sich mit localhost verbinden, indem sie den divx-Web-Player nicht flashen. – Enriquev