2009-07-10 7 views
9

Ich habe gegoogelt und ich bekomme es immer noch nicht. Manche Leute sagen: Hier gehts, benutze es einfach. Andere behaupten, dass es bestimmte Einschränkungen hat, die es dir nicht erlauben, p2p so zu verwenden, wie du es in Flash willst.Funktioniert Flash10 + P2P wirklich?

Also, hier ist eine einfache Frage: ist es möglich, eine Flash10-Anwendung zu implementieren, die einige der vorhandenen Torrent-Dateien verwendet, um Video/Audio direkt in den Browser des Benutzers zu streamen?

Wenn nein - warum? Gibt es eine mögliche Problemumgehung für dieses "Nein"? Wenn ja - was sind die Schwierigkeiten bei der Implementierung und warum hat es noch niemand gemacht?

Antwort

12

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:

  1. 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.
  2. 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.

+0

Danke, ziemlich vollständige Antwort. – snitko

+0

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

0

Hmmm ... das ist ein interessanter Vorschlag, behalten Sie die heruntergeladene Datei nur im Flash-Speicher. Ich denke, es ist sicherlich möglich, aber wahrscheinlich langsam und Sie würden auf ein paar hundert Megabyte begrenzt werden.

EDIT: Es ist nicht möglich, weil Sie Ports mit nur Flash nicht hören können, der Browser hat diese Art von Fähigkeit nicht.

+0

Soweit ich weiß, ermöglicht Flash10 bereits das Speichern von Dateien auf der Festplatte. – snitko

2

Flash ermöglicht es Ihnen nicht, auf einen Socket für eingehende Verbindungen zu hören. Dies würde es wirklich schwierig machen, mit vorhandenen Torrents zu arbeiten. Angesichts der Sicherheitsprobleme um dieses, ich sehe es nicht passiert.

Adobe hat jedoch eine eigene Version eines P2P-Systems namens Stratus gestartet. Hier können Sie darüber lesen http://labs.adobe.com/technologies/stratus/

2

Alle diese Informationen sind nicht mehr aktuell.